







There are lots of different ways to be a software engineer. You can grind out code for twelve hours a day to make the world a better place. You can focus on…
Note on 24th September 2026
The more time I spend working with coding agents, the more convinced I am that they make software engineering even harder. We can do amazing things with them, but unlocking …
Teach Yourself Programming in Ten Years
The conclusion is that either people are in a big rush to learn about programming, or that programming is somehow fabulously easier to learn than anything else. Felleisen et al. give a nod to this trend in their book How to Design Programs, when they say "Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies." The Abtruse Goose comic also had their take.
The Future of Software Engineering Isn’t What You Think
Over the past two decades, I’ve watched software eat the world, then hardware catch up, then Generative AI reshape both at the same time…
You can code only 4 hours per day. Here’s why.
Most of us have felt it: after a few solid hours of coding, your brain starts shutting down.

Why AI hasn’t replaced software engineers, and won’t
Arvind Narayanan and Sayash Kappor take on the question of AI job losses through the lens of a profession that is uniquely suited to AI disruption - software engineering. In …
Why AI hasn’t replaced software engineers, and won’t
Coding agents as normal technology

You can't design software you don't work on
Only the engineers who work on a large software system can meaningfully participate in the design process. That’s because you cannot do good software design without an intimate understanding of the concrete details of the system. In other words, generic software design advice is typically useless for most practical software design problems.

You have to beat the models at something
In 2025, I wrote that software engineers ought to be assessed by “value over replacement”: not how much money they made for their company, but how much they…
Laws of Software Engineering
A collection of principles and patterns that shape software systems, teams, and decisions.

Programming (with AI agents) as theory building
Back in 1985, computer scientist Peter Naur wrote “Programming as Theory Building”. According to Naur - and I agree with him - the core output of software engineers is not the program itself, but the theory of how the program works. In other words, the knowledge inside the engineer’s mind is the primary artifact of engineering work, and the actual software is merely a by-product of that.

Coding After Coders: The End of Computer Programming as We Know It
In the era of A.I. agents, many Silicon Valley programmers are now barely programming. Instead, what they’re doing is deeply, deeply weird.

I'm addicted to being useful
When I get together with my friends in the industry, I feel a little guilty about how much I love my job. This is a tough time to be a software engineer. The job was less stressful in the late 2010s than it is now, and I sympathize with anyone who is upset about the change. There are a lot of objective reasons to feel bad about work. But despite all that, I’m still having a blast. I enjoy pulling together projects, figuring out difficult bugs, and writing code in general. I like spending time with computers. But what I really love is being useful.

I Started Programming When I Was 7. I'm 50 Now, and the Thing I Loved Has Changed | James Randall
I still love developing but the shifts that AI have brought are tectonic and are forcing me to re-evaluate my own relationship to building things

Science is open software
TL;DR I claim that modern science is synonymous with open source software. This post explains why, why it matters, and what you can (and should) do next. Why do you care about (open source) software? - Everyone I spend a lot of my time working on software. I have been asked why software matters more times than I can remember. Software is, people say, not science. It’s a time sink, something to rush past in the pursuit of what really matters: results (and papers if you’re in academia).
Engineers do get promoted for writing simple code
It’s a popular joke among software engineers that writing overcomplicated, unmaintainable code is a pathway to job security. After all, if you’re the only person who can work on a system, they can’t fire you. There’s a related take that “nobody gets promoted for simplicity”: in other words, engineers who deliver overcomplicated crap will be promoted, because their work looks more impressive to non-technical managers.

"Code was never the hard part" is an insult to all programmers — Senko Rašić
The software development profession is in the midst of upheaval. Nobody knows how the AI revolution will play out in the end, but it is c...
