Bug Hunting

“In our business, ‘one in a million’ is next Tuesday.”

All software has bugs. Most of the time, finding and fixing them is a question of prioritisation – you find the bug, work out how to replicate it, fix it, and ship the fix in your next release.

But sometimes, you get bugs that are… elusive. Bugs that never happen on your development systems; bugs you can’t reproduce; bugs that absolutely, positively cannot be happening – except they are. Trying to track down and fix these kinds of bugs can be a nightmare – but there’s a whole raft of advanced diagnostic techniques we can use to find them and fix them.

I’ve used high-volume load tests to flush out bugs that only happen once in a million cases. I’ve used network traffic analysers to break traffic down into individual frames and figure out why specific browsers won’t render a problematic web page correctly. I’ve fixed “network bugs” that turned out to be memory problems, “memory leaks” that turned out to be faulty network drivers, and I’ve built custom instrumentation into production systems to track down race conditions and data conflicts.

It often isn’t cost-effective to spend time and resources tracking down every last bug and edge case in your system, but when your customer data or your system security is at stake, it might be worth it. Get in touch if you think I might be able to help.