Security
The Debug Endpoint That Was Still Enabled in Production
The route was added for one investigation and guarded by a flag nobody set back, so it served the environment and the stack traces to anyone who guessed the…
Method rather than tooling: forming a hypothesis, choosing the cheapest experiment that falsifies it, and finding the wrong assumption underneath a bug.
Security
The route was added for one investigation and guarded by a flag nobody set back, so it served the environment and the stack traces to anyone who guessed the…
Tooling
The domain resolved differently depending on who was asked, and querying each resolver in turn separated the stale cache from the broken record, and the…
Tooling
Two payloads looked identical to the eye and differed in one nested field, and the filter diffed them in one line where the visual comparison had taken an…
Tooling
The connection dropped at the same byte count every time, and the capture showed the reset arriving from the load balancer rather than from the application…
Tooling
Three hundred commits sat between the working build and the broken one, and the binary search narrowed it to a single change in nine tests instead of three…
Tooling
The report was a screenshot and a guess, and the reproduction was one command with the right headers, and the command turned an hour of speculation into a…
Shopify
The delivery timed out after the handler had already run, so the platform retried, and the handler, which assumed delivery meant not processed, booked the…
Engineering Culture
What I learned writing a hundred debugging writeups, including which ones people actually read and what that says about technical content.
Code Review
The shared list default is the famous one, and reviewers catch it on sight. The module level cache, the captured dict and the class attribute list are its…
Tooling
The config was ignored and the logs said nothing, and the syscall trace showed the open call failing on a path that differed by one character from the path…
Tooling
The kernel already exports every counter you would install an agent to collect. The files under /proc are the metrics endpoint, and reading them is the…
Debugging
The agent broke the build once, and no rerun would do it again, because the failure was a draw from a distribution, not a function of the input.