001 — Code Review Habits

and exactly what to say instead

Five code review habits that read as junior, paired with the senior version of the same moment:

"This is wrong." "This breaks on empty input — try X instead."
Approving without reading Pull the branch and run the diff locally
Nitpicking style in every comment Let the linter own style, comment on logic
Silent LGTM on a 500-line PR Ask for smaller PRs before you review
Reviewing only the code Review the tests — they show what was missed

📺 Watch the Short · published Jul 15


002 — Prod on Fire

before you touch the code

Five first moves when production is down. The instinct is to dive into the code — the senior move is to stabilize, communicate, and preserve evidence first:

  • → Stop the bleeding before you find the cause.
  • → Roll back first — debug forward later.
  • → Post a status every 15 minutes, even "still investigating."
  • → Capture logs and traces before they rotate away.
  • → Write the timeline live, not from memory afterward.

📺 Watch the Short · published Jul 15


003 — Engineering Checklists

steal them

Four steal-worthy checklists for the moments that decide whether your weekend gets interrupted:

Before you open a PR

  • Self-review the diff first
  • Say what changed and why
  • Keep it under ~400 lines
  • Tests cover the new path

Before you deploy

  • Migrations are backward-compatible
  • A kill switch is ready
  • Dashboards open, alerts armed
  • You know the rollback command

Before you call it done

  • Edge cases and empty inputs
  • Error paths, not just the happy path
  • Logs and metrics in place
  • Docs and README updated

Before you touch prod data

  • Take a backup first
  • Dry-run on a copy
  • Wrap writes in a transaction
  • Know how to undo it

📺 Watch the Short · published Jul 17


004 — Git Habits

and the senior fix for each

Five git habits that read as junior, and the senior version of each:

git commit -m "fixes" Say why the change exists, not just what
git push --force on a shared branch git push --force-with-lease
One giant commit at the end of the day Small, atomic commits as you go
git add . without looking Stage the hunks you actually mean to ship
Committing straight to main Branch, PR, review — even when you're solo

📺 Watch the Short · published Jul 21


005 — Naming Things

names are the cheapest docs you'll write

Five naming habits that separate readable code from a puzzle:

data, temp, obj, result2 Name the thing it actually holds
getUser() that also writes to the DB Name it for what it does — or split it
isNotDisabled Positive booleans — isEnabled
Abbreviations only you understand Full words; your editor autocompletes them
Manager, Helper, Util catch-alls Name the responsibility, not the vibe

📺 Watch the Short · published Jul 22


006 — Bug Won't Reproduce

before you start rewriting things

Five moves when a bug won't reproduce. The instinct is to start rewriting — the senior move is a reliable repro first:

  • → Get a reliable repro before you fix anything.
  • → Read the stack trace top to bottom — the answer's usually there.
  • → Change one thing at a time, then re-test.
  • → Use git bisect instead of guessing what changed.
  • → Add a failing test first, so it can never come back.

📺 Watch the Short · published Jul 23


007 — Logging Habits

logs are a message to future you

Five logging habits that decide whether the logs actually help you at 3am:

log.info("here") Log the what, the why, and the ids
Logging the password or the token Redact secrets and PII before they hit disk
Everything at INFO Use levels — WARN and ERROR should mean something
catch (e) { } swallowing it Log the exception with context, then rethrow
Plain-text strings you can't query Structured logs with fields you can filter on

📺 Watch the Short · published Jul 28


008 — Slow Queries

and the one-line fix for each

Five reasons your query is slow, each paired with the one-line fix:

No index on the column you filter Index what you filter and join on
SELECT * dragging columns you never use Select only the columns you actually need
N+1 queries firing inside a loop Batch it — one query with a join or IN
Filtering the results in app code Push the WHERE down to the database
Guessing which part is slow Read the query plan — EXPLAIN ANALYZE

📺 Watch the Short · published Jul 29


009 — New Codebase

be useful by Friday

Four checklists for your first week in a new codebase:

Before you write any code

  • Get it running locally
  • Find where requests come in
  • Read the README and the tests
  • Learn how they ship to prod

When you're lost

  • Follow one request end to end
  • Search for a string you see in the UI
  • Read recent PRs, not just the code
  • Ask — then write the answer down

Before your first PR

  • Match the style already there
  • Keep it tiny and boring
  • Run the tests locally first
  • Read a merged PR for the norms

In your first week

  • Fix one small thing yourself
  • Write down every setup gotcha
  • Map who owns what
  • Keep notes you'll want in month two

📺 Watch the Short · published Jul 30


More Quick Tips

New ones land most weeks — see everything tagged tips, or subscribe on YouTube.