The Blog
Building with AI, in practice
Practical tutorials and guides on AI-assisted development — Laravel, PHP, Next.js and Vue.js, developer tools, and technical career notes.
-

From senior engineer to tech lead: what actually changes
Most people become a tech lead by being the best engineer on the team, and then spend the first few months confused…
-

Find the commit that broke it with git bisect
A bug shows up. It wasn’t there last week. Somewhere in the 200 commits since, one of them introduced it — but…
-

What is Model Context Protocol (MCP), and why it matters
An AI model on its own is a very smart box with no hands. It can reason about your code but can’t…
-

How to prepare for a senior backend engineer interview
If you prepare for a senior backend interview the way you did for your first job — grinding algorithm puzzles — you’ll…
-

Zero-downtime deploys with Docker and GitHub Actions
The naive deploy is “SSH in, stop the old container, start the new one.” It works — and it drops every request…
-

Retrying failed Laravel queue jobs without duplicate side effects
Retrying a failed queue job sounds simple: set $tries = 3 and move on. But retries have a sharp edge. If a…
-

A practical Claude Code workflow for real projects
Claude Code isn’t autocomplete. It reads your repository, runs commands, and edits files across your project — which makes it powerful and…
-

What actually advances a developer’s career
Early in your career, getting better at coding advances you. Then one day it stops working. You’re a strong engineer, you ship…
-

Developer tooling that actually makes you faster
There’s an endless supply of “top 50 tools every developer needs” lists, and most of them are noise. New tools have a…
