Life Beyond Fife

I love hacking together code to make awesome things; mainly I love sharing what's worked for me.

Recent Posts

The Three Layers of Software Engineering
essays

The Three Layers of Software Engineering

Code being written instantaneously by AI makes expertise in the craft of software engineering more valuable, not less. What a good software engineer looks like will have many subjective answers depending on who you ask. Some might want a driven finisher, some might want a meticulous bug fixer. But those aren't skills of a software engineer so much as personality traits; important ones to balance across a team. Training to become an entry-level software engineer, and the journey progressing to senior, takes a decade or more. In the past, engineers could choose the pace of their progress to some degree...

13 min readRead more →
Speedrunning A Failed Business
follies

Speedrunning A Failed Business

I've worked at two scale-ups over the last 12 years, and after two exits, I'm taking a break to work out what I want to do next. I have a list of projects that sound interesting to me, but mostly I'm staying curious and not being prescriptive about the path to take for a while. One of these impromptu projects led to me speedrunning a failed business in two weeks. In the summer of 2013 I completed a Coursera MOOC called Startup Engineering. Knowing how to code, but not a thing about making a business, I took away a key...

10 min readRead more →
Software Engineer Dystopia or Hegemony
follies

Software Engineer Dystopia or Hegemony

I've finished rewriting my 15 year WordPress blog from the ground up as a static Next.js site. This was attempt number three, and I'm ~happy~ relieved to say this one was successful. Early in my career, my default was to over-engineer. When I started a blog in 2011, I wanted to own the entire stack myself, and despite knowing nothing about CMS tech, I wanted the most configurable solution available. I chose Drupal. After publishing 26 blog posts, I made the sensible switch to the more lightweight WordPress. Still requiring a server and database, and built on PHP (a truly...

18 min readRead more →
I have a book for that
management

I have a book for that

I realised I had gained a reputation for recommending books when it became a joke on Slack. I'm not even particularly well read, but there are some foundational concepts in teamwork, management, leadership, and tech, that come up time and time again. Sometimes the key lesson only takes a sentence to explain, but a book will reinforce the idea much more strongly. Here are the most impactful books I invariably keep coming back to. First, Break All The Rules by Marcus Buckingham — This is the book every new manager must read. Based on over 80,000 interviews with real managers,...

4 min readRead more →
Defend your codebase against AI comments
essays

Defend your codebase against AI comments

Generative AI tools such as Claude Code, Cursor, Devin, Roo Code, Windsurf have fundamentally changed the process of how software is written. As teams increasingly rely on AI-generated code, they need to rethink how they merge this code into their codebase, especially regarding comments. I’ve long taken a policy against most comments when writing code. It has been perfectly summed up by this tweet. Maybe at one point the plastic container did hold basmati rice, but today, it’s clearly storing biscuits. This is it, the fundamental point: the compiler ignores your comments, so their relationship to the truth holds no...

5 min readRead more →
The Slow Path to Everything
essays

The Slow Path to Everything

Over twenty years in software development, I’ve witnessed an evolution in how code integrates with other code. Each step has enabled more complex and distributed systems capable of progressively more impressive achievements. This comes with the price of understanding each new layer’s abstraction, moving us further from fast, direct execution and closer to slow, human communication. This journey reveals where we could be heading next. It’s all code, in one place My first job as a software developer in the early 2000s was a lesson in how not to do things. The best example I can give is how version...

7 min readRead more →