010 — API Design Mistakes

and what to ship instead

Five API design mistakes and what to ship instead:

✕ 200 OK with "error" in the body ✓ Use the status code — 400, 404, 409
✕ /getUserData, /createNewUser ✓ Nouns plus methods — GET /users, POST /users
✕ Returning every field, every time ✓ Page it, filter it, let callers ask for less
✕ Breaking changes on the same URL ✓ Version it, and deprecate loudly
✕ Stack traces in the error response ✓ A stable error code and a safe message

📺 Watch the Short · published Aug 4


011 — Security Habits

no security team required

Five security habits that take about five minutes each:

✕ Secrets committed to the repo ✓ Environment variables or a secret store
✕ SQL built by string concatenation ✓ Parameterized queries, every time
✕ Trusting input because the UI validated it ✓ Validate again on the server — always
✕ Rolling your own password hashing ✓ bcrypt, scrypt, or Argon2 — never MD5
✕ Dependencies untouched for a year ✓ Automate the update PRs, patch the CVEs

📺 Watch the Short · published Aug 5


012 — Flaky Tests

before you hit re-run again

Five moves when a test is flaky — because flaky is a bug, not bad luck:

  • → Stop hitting re-run — flaky is a bug, not bad luck.
  • → Run it 100 times in a loop to catch the failure.
  • → Hunt shared state left behind by other tests.
  • → Replace sleeps with a wait on a real condition.
  • → Freeze the clock instead of asserting on real time.

📺 Watch the Short · published Aug 6


013 — Client Problems, Not Code

they want the problem gone

Five habits that separate a developer from an engineer a client keeps calling back:

✕ Building exactly what they asked for ✓ Finding out what they actually need
✕ Quoting the build before you understand it ✓ Asking what happens if they do nothing
✕ Writing code when a tool already does it ✓ Recommend the tool — lose the job, keep the client
✕ Measuring success in features shipped ✓ Measuring it in the problem disappearing
✕ Being the developer they hired once ✓ Being the engineer they call next time

📺 Watch the Short · published Aug 11


014 — Estimates

before you say a number

Five moves for the moment someone asks how long it'll take:

  • → Never answer with a number on the spot.
  • → Estimate the unknowns, not the code.
  • → Break it down until each piece is a day or less.
  • → Give a range, and say what would widen it.
  • → Re-estimate out loud the moment scope moves.

📺 Watch the Short · published Aug 12


015 — Tech Debt

what to fix, what to leave

Four checklists for tech debt — how to tell real debt from personal taste, which debt is worth paying now, and how to actually get time for it:

Before you call it tech debt

  • It slows every change down
  • It causes the same bug twice
  • It blocks the next feature
  • Not just "I'd write it differently"

Debt worth paying now

  • You touch that code weekly
  • It's behind repeat incidents
  • New joiners trip on it
  • The fix is smaller than the pain

Debt you can live with

  • Nobody has touched it in a year
  • Ugly, but covered by tests
  • It's getting deleted next quarter
  • It's boring and it works

How to get time for it

  • Attach it to a feature you're shipping
  • Quantify it in hours lost per week
  • Fix it while you're already in there
  • Never ask for a "refactor sprint"

📺 Watch the Short · published Aug 13


016 — Caching Mistakes

and what each one costs

Five caching mistakes and the fix for each:

✕ Caching before you've measured ✓ Find the slow call first, then cache it
✕ A cache key with no expiry ✓ Set a TTL you can actually defend
✕ Caching per user what everyone shares ✓ Cache the shared thing once
✕ Serving stale data silently ✓ Invalidate on write, not on hope
✕ An outage when the cache goes down ✓ Fall back to the source — degrade, don't die

📺 Watch the Short · published Aug 18


017 — Error Handling

that decide how bad the bug gets

Five error handling habits:

✕ Returning null when something fails ✓ Throw, or return a typed result
✕ Catching Exception at every layer ✓ Catch only where you can recover
✕ "Something went wrong" ✓ Say what failed and what to do next
✕ Retrying forever on any failure ✓ Bounded retries, exponential backoff
✕ Validating deep in the call stack ✓ Reject bad input at the edge

📺 Watch the Short · published Aug 19


018 — Saying No

without being difficult

Five ways to say no without becoming the difficult one:

  • → Say yes to the goal, no to the approach.
  • → Show the trade: "yes, and this slips."
  • → Ask which item they'd drop instead.
  • → Offer the smaller version that ships this week.
  • → Put the no in writing — kindly, and once.

📺 Watch the Short · published Aug 20


019 — Git Undo

before you panic

Five git recovery moves for when something's gone wrong:

  • → Wrong branch? Cherry-pick it over, then reset.
  • → Bad message? git commit --amend, before you push.
  • → Already pushed? git revert — never reset a shared branch.
  • → Lost a commit? git reflog remembers what log forgot.
  • → Half-done work in the way? git stash, then carry on.

📺 Watch the Short · published Aug 25


020 — Asking For Help

that make you look senior

Five ways to ask for help that read as senior rather than junior:

✕ "It doesn't work" ✓ "X fails with Y — I tried Z"
✕ Asking before you've tried anything ✓ Showing what you already ruled out
✕ DMing one person and waiting ✓ Asking in the channel, where anyone can answer
✕ Burning a day rather than admitting it ✓ Time-box it — 30 minutes, then ask
✕ Disappearing once they've helped ✓ Post what actually fixed it

📺 Watch the Short · published Aug 26


021 — Git Habits — Branching

the branching ones

Five more git habits that read as junior, this time about branching and history:

✕ A branch called "fix" or "test2" ✓ Name it for the change: fix/login-timeout
✕ Merging main into your branch five times ✓ Rebase onto main, keep the history linear
✕ One branch alive for three weeks ✓ Merge small, merge often
✕ Resolving conflicts by taking yours ✓ Read both sides, then re-run the tests
✕ git pull leaving merge commits everywhere ✓ git pull --rebase, and make it the default

📺 Watch the Short · published Aug 27


More Quick Tips

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