If you're in trouble and cannot find an answer to a question which goes beyond Stack Overflow...
If you have a not-so-usual solution for your problems but need to justify it to your boss...
If you like to think on your own rather than blindly follow "common wisdom" and "profound truth"...
...then 'No Bugs' Hare on Soft.ware might be the right place for you.
Your mileage may vary. Batteries not included

If you have ever wrote a program larger than “Hello, World!”, which worked without debugging – it doesn’t mean that you’re a genius, it just means that out of a thousand of programs you’ve wrote, you’ve got lucky once.

Most of developers spend most of their time debugging, so we probably should pay some attention to this subject…

Debugging, page 1:

Production Crashes. Post-factum Debugging. Logging. Replayable Deterministic Re(Actors)

Quote: “I’ve seen game companies with hundreds of thousands of dollars lost per hour of unplanned server downtime.”
Another Quote: “deterministic debugging is by far the best thing I have seen for production debugging.”
[]

Deterministic Components for Distributed Systems

Quote: “Then you can recover from any single server failure in a perfectly transparent manner”
Another Quote: “after the program fails in production, we can get the input log and run it in the comfort of a developer’s machine, under a debugger, as many times as we want, and get exactly the same variables at exactly the same points as happened in production”
[]

Avoiding ugly afterthoughts. Part b. Coding for Security, Coding for i18n, Testing as a Part of Development

Quote: “Doing sanitization at IDL level automates quite a bit of tedious-and-error-prone work, which is always a Good Thing™”
Another Quote: “Hey, this whole thing can be made MUCH simpler, the only thing we need to acknowledge is that the best identifier for a string is the string itself!”
[]

Avoiding Ugly Afterthoughts. Part a. From Writing for Cross-Platform, to Writing for Debugging and Production Post-Mortem, with Error Handling in between

Quote: “It is strongly recommended to have your build server to compile your game for at least two sufficiently-different platforms from the very beginning”
Another Quote: “If allocation of 50 bytes causes an “out of memory” error, we’re probably already long dead because of unacceptable swapping. And even if we disabled swap file – chances that we will recover from this condition, are infinitesimally small”
[]

Chapter V(c). Modular Architecture: Client-Side. On Debugging Distributed Systems, Deterministic Logic, and Finite State Machines

Quote: “After your logic has failed in production, you can “replay” this inputs-log on your functionally identical in-house system, and the bug will be reproduced at the very same point where it has originally happened.”
Another Quote: “You can implement your Finite State Machine as a deterministic variation of a usual event-driven program”
[]

Multi-threading at Business-logic Level is Considered Harmful

Quote: “However, the window for triviality is very narrow: for example, even going into two interrelated mutexes instead of one, can easily make multi-threading non-trivial”
Another Quote: “Technically you are able to jump to any point of your program, but the variables you see may (and if you have a multi-threaded bug – will) differ every time you jump there.”
[]