use ADA !
20 years ago, when I was in dev, one of my favourites was to unblock a colleague who had spent one week wondering why his computing code would give different results, with the same dataset, depending on which arch it was running on (we had lots of them, little endian, big, different OSes).
Everytime, it was a fatal mistake of using and abusing fancy things like (++X) = function(X++);
Back in ANSI C 89, the language itself was not saying *in which order* the compiler should evaluate before = and after !
So, a lot of potential mistakes. This plus never-ending pointers fatalities.
At the end, I switched to ADA which is a lot more secure.
Ah yes, there was also that dude who spent 2 days not understanding the situation, putting shitloads of printf() everywhere, which never appeared at run-time.
Turned out, he was too lazy to read make(1)'s manual, and took a clumsily modified Makefile from the X-windows deamon for his 3 modules program.
Whatever he was modifying in the source was never re-compiled ! Ah good memories.