Articles
Writing on PHP, Laravel, APIs, and engineering leadership.
- When CRUD Isn't Enough: How Real APIs Outgrow Their Design Most Laravel APIs start as clean CRUD systems. This article walks through why that breaks down, and how an action-based design fixes the mess.
- Introducing Signal: documentation that lives in your code Signal is a PHP library that generates living documentation from native attributes. Annotate your classes, run one command, get accurate docs.
- Building Modern Laravel APIs: Lead Scoring and Prioritisation Building a configurable lead scoring engine in Laravel 13 - config-driven weights, query objects for prioritised retrieval, rescoring commands, and a top leads endpoint.
- Building Modern Laravel APIs: The Action Pattern Building a lead enrichment and scoring pipeline in Laravel 13 using the AI SDK, structured agents, composable Action classes, and PHP enums for type-safe status management.
- Building Modern Laravel APIs: Authentication with JWT Add JWT auth to a Laravel API with register, login, refresh, and logout flows using Form Request DTOs, Action classes, and auth:api middleware.
- Building Modern Laravel APIs: Foundations and Project Structure Start the Modern Laravel APIs series by structuring Pulse-Link for production with clear layers, ULIDs, action classes, DTO requests, and versioning.
- Building Modern Laravel APIs: Ingesting Leads Implement lead ingestion in Laravel with Form Request validation, typed DTO payloads, Action classes, and JSON:API responses for POST /v1/leads.
- Managing Expectations in the AI Era How to have honest conversations with stakeholders about AI productivity — what actually changes, what doesn't, and how to set realistic expectations.
- Building Modern Laravel APIs: Routing, Versioning, and API Contracts Learn how to version Laravel API routes, signal deprecations with Sunset headers, and keep API contracts aligned with your implementation.
- Running A Better Table How to run a Shape Up betting table — the planning meeting where pitches get selected and cycles begin or quietly collapse.
- Redefining Engineering Roles in the AI Era AI makes implementation cheaper and judgment more valuable. Learn how engineering roles, hiring, and team design are changing.
- Reviewing AI Generated Work How to review AI-generated code effectively, what failure modes to watch for, and how to maintain quality standards as code volume increases.
- Spec Driven Development With LLMs How to write specifications that produce useful LLM output, covering interface definitions, edge cases, and why the spec is your highest-leverage artifact.
- Shape Up: A Practical Introduction A practical introduction to Shape Up - the planning methodology built on appetite over estimation, fixed time with flexible scope, and small autonomous teams.
- Writing Pitches That Work How to write Shape Up pitches that give engineering teams real clarity - problem definition, appetite, solution shaping, rabbit holes, and no-gos explained.
- Why Sprints Are Broken Technical debt is inevitable. What matters is whether you manage it deliberately. A practical framework for prioritisation and stakeholder communication
- Career Growth: From Junior to Staff Engineer A practical guide to engineering career progression, from junior to staff, covering promotion criteria and the conversations that move careers forward.
- Leading Through Uncertainty: Crisis Management for Tech Teams How engineering leaders make decisions under pressure, communicate through uncertainty, and keep teams focused when the path forward is not clear.
- Technical Debt: When to Fix, When to Ship Technical debt is inevitable. What matters is managing it deliberately. Here is a practical framework for prioritisation and stakeholder communication.
- The Engineering Manager as Coach, Not Boss How to develop your coaching skills as an engineering manager, with practical techniques for performance conversations, growth planning, and career development.