The Last 20% Is Still the Job
AI can one-shot a convincing first pass, but the work that makes software valuable still lives in judgment, boundaries, and tradeoffs.
Writing
Writing for senior engineers, engineering leaders, and anyone who cares about internal systems, production software, and the technical decisions behind them.
AI can one-shot a convincing first pass, but the work that makes software valuable still lives in judgment, boundaries, and tradeoffs.
Slowing down, explaining your thinking, and focusing on process can make hard debugging work much easier.
Before turning a small ticket into a rewrite, ask whether the business actually needs the bigger fix right now.
A basketball analogy for software tradeoffs: sometimes the right engineering decision maximizes upside, and sometimes it maximizes the chance of success.
How to make a whole card clickable without nesting links or relying on JavaScript.
Libraries are useful, but they are not free. Sometimes the right move is to write the code yourself first.
Remix already gives forms a strong foundation, but complexity can still justify bringing in a library.
Two clean ways to make Remix breadcrumb handles work with i18n without fighting where translation context lives.
A practical way to wire third-party services into Remix by treating runtime boundaries, environment variables, and SDK placement as separate problems.
A practical guide to moving heavy work out of request handlers without overengineering it on day one.
When equations depend on each other, the real problem is dependency ordering. A graph plus topological sort makes that explicit.
End-to-end tests get flaky fast when a real database is involved. Reliable suites start with isolated state and predictable execution.
Breadth-first and depth-first search solve different problems. The useful part is knowing when the traversal order changes the answer.