Debugging is the most interesting part of the software development process, but it doesn't mean, that we should waste 90% of work time on it. In this talk, I'll tell you about the rules of effective debugging. With real-world examples, we'll see how following the debugging process helps fix bugs faster. Also, I'll share principles of proactive debugging and how to apply them. I'll show how debugging can be a part of application architecture.