What Happens When You Type a URL and Press Enter
DNS lookups, TCP and TLS handshakes, HTTP requests, servers, and the browser's rendering pipeline. The whole journey of a web page, explained so it finally clicks.
Read →Good code reviews catch bugs, spread knowledge and make teams faster. Bad ones create bottlenecks and resentment. How to write pull requests people want to review, and how to review them kindly.
Code review is one of the highest-leverage habits a team can have. It catches bugs before users do, spreads knowledge so no one person is a single point of failure, and keeps a codebase consistent. It can also become a slow, frustrating bottleneck full of nitpicks and defensive arguments.
The difference comes down to a few habits on both sides of the pull request.
Small pull requests get reviewed faster and more thoroughly. A 2,000-line PR gets a skim and an "LGTM." A 150-line PR gets real attention.
If a feature is big, split it: a migration, then the API, then the UI. Feature flags let you merge incomplete work safely. (Branching strategies.)
Include:
Read your own diff before requesting review. You'll catch leftover debug logs, commented-out code, missing tests and typos, which saves a round trip.
Mixing "rename everything" with "change the pricing logic" hides the important change among hundreds of trivial ones. Do them in separate PRs, or at least separate commits.
Tests, linting and builds should be green before you ask a human to look. Automation is cheaper than people. (CI with GitHub Actions.)
Review in roughly this order of importance:
Label comments so the author knows what's required:
This prevents authors from treating every comment as a demand, and prevents important issues from getting lost among nitpicks.
"Nice, this is much clearer than before" costs nothing and makes reviews feel collaborative instead of adversarial.
A PR waiting two days blocks the author and invites merge conflicts. Many teams aim to give a first response within a working day. If you can't review properly, say so, so someone else can.
If the code is correct, clear and fits the project's conventions, approve it, even if you'd have written it differently. Preferences aren't defects.
A short, shared checklist keeps reviews consistent:
Small enough to review carefully in one sitting, often a few hundred lines or less. Split large features into smaller, independently reviewable pieces.
Correctness, security, design, tests and readability, in that order. Leave formatting and style to automated tools.
Focus on the code rather than the person, explain why something matters, label how important each comment is, ask questions when unsure and acknowledge good work.
DNS lookups, TCP and TLS handshakes, HTTP requests, servers, and the browser's rendering pipeline. The whole journey of a web page, explained so it finally clicks.
Read →There are dozens of HTTP status codes, but about fifteen cover nearly everything. What each one means, when to return it, and the mix-ups (401 vs 403, 301 vs 302) that confuse everyone.
Read →A, AAAA, CNAME, MX, TXT and NS records in plain English, why DNS changes seem slow, and the troubleshooting commands that tell you what is really going on.
Read →