Tag: software-engineering

  • Making Impossible States Impossible

    - The idea of making impossible states impossible in simple terms, means designing your data types and APIs so that certain invalid or nonsensical program states simply can't happen, the compiler...

  • Product Engineers

    - Product Engineers don't measure success by tickets closed or code merged they're focused on outcomes. This mindset is the real multiplier for teams that consistently deliver customer value.

  • Build vs Buy vs Run

    - Self-hosting open-source tools sits between building and buying. Sometimes it's the right call, if you respect the operational cost.

  • Reconsidering Tech Debt

    - There's a phrase I've grown wary of over the years: tech debt. It shows up in all kinds of conversations, often spoken as a half-apology, half-warning. The metaphor is sticky,...

  • Choose Boring Tech

    - This isn't new advice, but some reminders deserve another run: choose boring tech if you're in the business of product engineering.

  • From Scepticism to Collaboration with LLMs

    - Modern LLMs are reshaping software practice, for better or worse. I began doubtful over the promise of instant productivity with these tools, but over time I've arrived at a surprising...

  • Doing Leveraged Work

    - For Staff and Principal Engineers, the goal is to identify and deliver leveraged work, efforts that multiply both throughput and quality across the organisation.

  • Notes on An Elegant Puzzle

    - Will Larson's excellent "An Elegant Puzzle" deep dives into every aspect of being a tech leader at modern software companies

  • How to quickly plan and estimate an MVP

    - This post outlines my tried & tested strategy for quickly planning and estimating MVP projects. This process departs a little from Agile/Scrum best practices. There are no guarantees on estimation...