Take-Home Assignments That Don’t Waste People’s Time
I’ve been on both sides of the take-home. The good ones share scope, time boxes, and a clear rubric. Here’s what we changed and why.
All posts, sorted by most recent.
I’ve been on both sides of the take-home. The good ones share scope, time boxes, and a clear rubric. Here’s what we changed and why.
Flexbox for one dimension, Grid for two. The simple mental model that turned years of guessing into a real skill.
A short manifesto: practical engineering notes, real mistakes, no hype. Here’s what to expect and how I write.
After thousands of PR reviews, the same handful of comments keep coming up. Here are the patterns and why each one matters.
How I migrated a pile of brittle Node and Bash scripts to n8n workflows, what I kept, what I threw away, and the gotchas nobody mentions.
Five days without the internet’s biggest copy-paste reservoir. The replacements weren’t magic — but they changed how I diagnose problems.
Slack is loud. PagerDuty is serious. Email is the boring pipe that quietly outlives every chat app of the year. Here’s when I still reach for it.
I’ve been paid to write code in all three. What actually made me faster wasn’t the editor — it was learning my debugger and stopping the chair-rearranging.
Versioning, pagination, and the overloaded boolean that meant three different things. Real mistakes, real fixes, and what I’d do differently.
A repeatable order of operations for navigating a new codebase: entrypoints first, data flow second, opinions last.
The exact things I verify before telling a client a site is live — env vars, redirects, OG images, and the canonical URL that wasn’t.
One Saturday outage taught me why JSON logs, request IDs, and consistent field names aren’t resume fluff. The before/after, with examples.
How I figured out a date-formatting dependency was bloat, not a best practice, and replaced it with 20 lines of code.
Wall-clock speed, developer experience, packaging, and the moment I missed Python’s dicts more than I expected. Real numbers, not benchmarks.
None of these are flashy. That’s exactly why they’ve survived two job changes and my own laziness.
Spoiler: it wasn’t. A Postgres story about locks, bad timing, and the checklist I now run before every DDL change.