Everyone faces bugs in software for a computer or a phone: an app hangs up or glitches - reboot and everything is ok!
However software is installed not only in smart things but in many other 'dumb' ones: refrigerators, coffee machine, cars ... There is no sense in making a list: everything that can perform a few instructions has software inside. So if there is software it may contain bugs. I haven't seen bugs in such appliances. Well, I almost haven't.
Let me introduce our office coffee machine - De'Longhi. It's a good machine: it can make several types of coffee and cappuccino; it can use either coffee beens or ground coffee. You can even set grinding level. Great machine! But is has a bug: if it is in the process of making coffee and there are not enough coffee beans for a cup, it hangs up with a strange message.
What message can it be? "Not enough coffee" is a standard message for an empty coffee bay. But it shows "grounds container is full" (it's not!). So you try to simulate container cleaning, you take and put back the container (empty container) and check the message. No, it still flashes "container is full". Only reboot helps.
Every time I face such a behaviour, I can't understand - why, why a coffee machine behaves like that and not otherwise? Why does the absence of coffee cause malfunctioning in a completely different node? Maybe there is 'if' statement missing? Or ')}' is left unclosed? Or maybe 'break' is missing? I don't know.
In our world, the world of web-development, bugs are frequent guests. 500/404 error? Fix it asap and deploy. Not a big deal. Same story for apps for phones or desktop.
What if one of the requirements is 'no bug fixing at all' - once software is created, it goes into production. And this software lives forever, until the machine breaks. Can you write such software? I can't. At least for now.