Blog
People, principles, process, then product
A reflection on Mike Fisher's framework that prioritizes people, principles, and process before focusing on the product itself.
Networking for people who do not network
A practical guide to networking from Stay SaaSy for those who, like me, are not natural networkers.
Aligned autonomy: from military strategy to engineering teams
An exploration of how the concept of aligned autonomy in business mirrors the effective military doctrine of mission command.
What makes a principal engineer different from a senior?
A look at Amazon's Principal Engineer role, exploring the key differences in scope, autonomy, and how it compares to senior technical roles in other engineering cultures.
Roger Martin on going on the offensive with creative strategy
A reflection on Roger Martin's argument that creative innovation requires an offensive mindset, challenging the business world's reliance on historical data for future predictions.
Include your tests in coverage reports
A short post on why, inspired by Ned Batchelder, you should include your test code in your coverage analysis.
Lessons on building software quickly
A look at Evan Hahn's practical advice for efficient software development, focusing on key takeaways like rough drafts and focused work.
The Pragmatic Engineer 2025 survey
A look at the key findings from The Pragmatic Engineer's 2025 developer tools survey, including some surprising trends in AI, IDEs, and project management tools.
Practical lessons from Meta on improving code
Exploring Meta's data-driven and cultural approach to code improvement and how we can apply these lessons to our own projects.
A deeper dive into systems engineering: from design to disposal
A summary of the core concepts from the second half of my systems engineering course, covering the journey from detailed design to system retirement and management.
Has self-service BI finally arrived with AI?
A look at how conversational AI and Model Context Protocol (MCP) could revolutionise business intelligence, with a dose of healthy scepticism.
Frameworks for measuring developer productivity
A look at the DX frameworks for measuring AI and developer productivity, placed in the context of other models like DORA and SPACE.
The state of software engineering with LLMs in 2025
A look at how LLMs are changing software development, inspired by Gergely Orosz's recent article, and my own plans for adopting these new tools.
A simple trick for better dictation with AI
A practical tip from Matt Webb on using a persona to give instructions to an LLM while dictating, making the process cleaner and more efficient.
The human cost of technical debt
A reflection on how technical debt impacts not just our codebases, but also team morale and confidence.
From platform engineering to platform democracy
An exploration of the evolution from platform engineering to a more collaborative 'platform democracy', driven by developer needs and efficiency.