Designing for the Bad Days
Guardrails for a publishing pipeline: reject bad input at the source, make silent failures loud, gate the deploy, and handle the lifecycle โ unpublish, rename, schedule.
Guardrails for a publishing pipeline: reject bad input at the source, make silent failures loud, gate the deploy, and handle the lifecycle โ unpublish, rename, schedule.
The unglamorous half of a publishing pipeline: cross-repo orchestration, idempotency, manifest-as-state, and the bugs that only surface once it runs unattended.
The implementation behind a publish-flag pipeline: cross-repo triggers, pulling a private vault, converting Obsidian Markdown, and the write-back loop to avoid.
Why I turned my Obsidian vault into a headless content source โ write where you think, flag a note to publish, and let the site build itself.
A repeatable framework for technical decisions you won't regret โ frame the trade-offs, decide for your stage, and write down the why.
How to make code review actually improve the codebase โ automate style, focus on design, ask questions, and keep PRs small.
Lessons from leading backend teams โ shifting from output to outcomes, sharing context, owning interfaces, and multiplying your impact.
What to instrument for observability โ structured logs, RED/USE metrics, and distributed traces โ and how to alert only on what's actionable.
How to design REST APIs that age well โ versioning, pagination, consistent errors, and backward compatibility that won't break clients.
A backend engineer's mental model for database indexing โ what to index, the leftmost-prefix rule, and why a query still does a full scan.