RSSAmplifier

Blog

Josh Hornby

Recent content on Josh Hornby's blog

joshhornby.comRSS feed ↗10 posts

Latest posts

Vibe Coding vs Agentic Engineering

“I built it with AI” now tells you almost nothing. It might mean someone chatted at a model until the screen looked right. It might mean someone wrote a spec, fenced the agent in, and read every risky line that came back. Same tool, same afternoon, and I would trust those two results very differently. People use both terms loosely, so let me be precise. Andrej Karpathy coined vibe coding for the…

The Tech Lead Trap

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. A former colleague spent eight years as a tech lead. Same level, different teams. He was good at the job: respected by his teams, trusted by stakeholders, reliable. But when he started looking for his next role, he found that his skills hadn’t grown much in five years. He’d…

Inheriting a Struggling Team

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. Inheriting a struggling team is one of the hardest things a tech lead can face. The problems run deep and the trust is gone. But a team in crisis is also the easiest kind to improve, because almost anything you fix gets noticed. Understanding what you’ve inherited Before you…

Giving Hard Feedback

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. Giving hard feedback is uncomfortable. That’s why most people avoid it. But avoiding it doesn’t make the problem go away. It just delays the conversation until it’s worse for everyone. Why hard feedback matters People can’t fix what they don’t know is broken. When you see a…

Making Technical Decisions Stick

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. Decisions that aren’t documented don’t exist. They live in the memories of people who were in the room, until those people leave or forget. A decision made in a Slack thread that scrolled past last month might as well never have happened. Making technical decisions is one part…

Scope Creep and How to Fight It

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. Scope creep doesn’t announce itself. It arrives as reasonable requests. Each addition seems small. Each conversation is “while we’re building this anyway.” Nobody makes a bad decision. You just make a lot of small decisions that add up to a bad outcome. Recognising the pattern…

Sentry AI Tracing with Laravel's AI SDK

In my previous post , I showed how to manually wrap OpenAI calls with Sentry spans to get LLM monitoring in PHP. It worked, but every AI call needed to pass through a tracing method. You had to remember to use it. Laravel now ships an official AI SDK ( laravel/ai ) that changes this. The SDK fires events for every agent interaction, which means tracing becomes a listener. Write it once, and every…

When to Say No

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. Learning to say no is one of the hardest parts of becoming a tech lead. It feels like failing people. It takes time to understand that thoughtful no’s are how you protect your team’s ability to deliver. The instinct is to say yes. Yes to the PM’s feature request, yes to the…

Managing Up

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. My first serious mistake as a tech lead came from not managing up. The team had been struggling with a legacy system for months. I mentioned it in passing to my engineering manager, assuming she knew how bad it was. She didn’t. When the system finally caused a major incident,…

Working with Designers

This post is part of my Tech Lead Series , a collection of practical advice for engineers stepping into leadership roles. A designer once handed me a Figma file with a custom animation for a loading spinner. It was beautiful. It was also going to take a week to implement, on a feature that needed to ship in three days. When I asked if we could use a simpler animation, she was visibly frustrated.…