[{"data":1,"prerenderedAt":131},["ShallowReactive",2],{"post-\u002Fblog\u002Fi-eat-bugs":3},{"id":4,"title":5,"body":6,"date":117,"description":118,"draft":119,"extension":120,"meta":121,"navigation":122,"path":123,"readingTime":124,"seo":125,"stem":126,"tags":127,"__hash__":130},"blog\u002Fblog\u002Fi-eat-bugs.md","I eat bugs for breakfast",{"type":7,"value":8,"toc":110},"minimark",[9,13,19,27,32,38,41,46,49,54,57,62,74,78,81,97,100,104,107],[10,11,12],"p",{},"There is a famous line I keep on my desk:",[14,15,16],"blockquote",{},[10,17,18],{},"Debugging is being the detective in a crime movie where you are also the murderer.",[10,20,21,22,26],{},"Nobody likes discovering a bug. Everybody ",[23,24,25],"em",{},"should"," like fixing one, because it is the closest thing our job has to a puzzle with a guaranteed answer.",[28,29,31],"h2",{"id":30},"my-not-so-secret-process","My not-so-secret process",[10,33,34],{},[35,36,37],"strong",{},"1. Reproduce it. Every single time.",[10,39,40],{},"If you cannot make it happen on demand, you are not debugging — you are guessing. Get the smallest possible reproduction first.",[10,42,43],{},[35,44,45],{},"2. Read the actual error.",[10,47,48],{},"By which I mean the whole stack trace, not the first line before your eyes glaze over. The answer is almost always down there.",[10,50,51],{},[35,52,53],{},"3. Change one thing at a time.",[10,55,56],{},"If you change three things and it works, you have learned nothing. If you change three things and it still fails, you have three problems and one of them is now hidden.",[10,58,59],{},[35,60,61],{},"4. Assume your code is wrong, not the universe.",[10,63,64,65,69,70,73],{},"The framework probably is not broken. The browser is probably not lying. ",[66,67,68],"code",{},"console.log"," the thing you are ",[23,71,72],{},"sure"," is correct — it is the number one place bugs hide.",[28,75,77],{"id":76},"the-bugs-you-actually-want-to-eat","The bugs you actually want to eat",[10,79,80],{},"Some bugs are gifts. The crash on first load, the missing null check, the off-by-one — those are loud and fixable. The dangerous ones are quiet:",[82,83,84,88,91],"ul",{},[85,86,87],"li",{},"The form that silently drops a field",[85,89,90],{},"The empty state nobody designed",[85,92,93,94],{},"The error swallowed by an empty ",[66,95,96],{},"catch",[10,98,99],{},"Those are the bugs that live in production for a year. Hunt them first.",[28,101,103],{"id":102},"a-snack-not-a-meal","A snack, not a meal",[10,105,106],{},"Fixing a bug should leave a small trail behind: a test, a comment, a note in the changelog. Otherwise the same bug walks back in through the front door like it pays rent.",[10,108,109],{},"So yes — I eat bugs. But I leave notes on the plate, so nobody has to serve that dish twice.",{"title":111,"searchDepth":112,"depth":112,"links":113},"",2,[114,115,116],{"id":30,"depth":112,"text":31},{"id":76,"depth":112,"text":77},{"id":102,"depth":112,"text":103},"2026-07-30","A short, unserious guide to debugging — the part of the job where you are the detective, the suspect, and the crime scene all at once.",false,"md",{},true,"\u002Fblog\u002Fi-eat-bugs","5 min read",{"title":5,"description":118},"blog\u002Fi-eat-bugs",[128,129],"debugging","craft","NQSzYIjH3McwicCmUrWA_NbueSazxb3jcZEIso6OYYQ",1789383482963]