

Not sure if this counts, but as a software engineer, pretty much all major software you use is hacks on top of hacks on top of something someone built as a ‘temporary’ solution or as a proof-of-concept that’s still in use years later. It’s amazing that anything works properly at all. Stable software is basically just software with 10+ years of bug fixes layered on top of it.
Part of the reason that Windows backwards compatibility is so good (plenty of Windows 95/98 apps still work fine on Windows 11!) is because Windows automatically applies compatibility fixes, including simulating bugs that were in older versions of Windows, because old apps could be relying on those bugs.
My wife gets very frustrated when she encounters bugs, whereas I’m usually like “well, it’s not nearly as bad as it could be” lol












Accurate. At work I’m finally getting around to paying down tech debt from a temporary hack that was supposed to only be in the code for a month or so, but now it’s been in our production code for around five years.
It would have been maybe a week or so to do it the right way initially, but we had hard deadlines and were pressed for time and just couldn’t get around to doing it. Now it’s over a month of work for one senior engineer (me) to clean up, because there’s so many interdependencies between the hacky code and other parts of the system that depend on side effects of the hacky code, or the order of updates performed in the hacky code. What a mess.
At least AI can help a bit. Even the newest models aren’t so great at system architecture in brownfield projects though (projects building into existing systems).