







The differences between system administrators and software developers as well as why all software developers should have some amount of sysadmin experience.
Reasons to hire inexperienced engineers
There are many reasons to consider hiring inexperienced software engineers into your team, beyond the commonly discussed factors of cost and social responsibility. Hire to maximise team effectiveness; not to maximise team size. Adding more people increases the communication and synchronisation overhead in the team. Growing a team has rapidly diminishing returns. However, adding the... Read more »
What Makes A Senior Software Developer?
The notion of a "senior" developer is extremely subjective. How can we define it better?

Eight Habits of Expert Software Designers: An Illustrated Guide
The best designers employ specific habits, learned practices, and observed principles when they work. Here are a few of them.

Leveling Up: Career Advancement for Software Developers | Peter Lyons
Staff Engineer, Back End

The Product-Minded Software Engineer
Product-minded engineers are developers with lots of interest in the product itself. They want to understand why decisions are made, how people use the product, and love to be involved in making product decisions. They're someone who would likely make a good product manager if they ever decide

The Economics of Software Teams: Why Most Engineering Organizations Are Flying Blind
A breakdown of what software development teams actually cost, what they need to generate to be financially viable, and why most organizations have no visibility into either number.

Programming as Theory Building: Why Senior Developers Are More Valuable Than Ever
Peter Naur's 1985 theory of programming explains why experience matters more in the age of AI-generated code

The LLM Curve of Impact on Software Engineers
In this article, I share my personal mental model of how LLMs affect software engineers at different levels, and why this leads to both excitement and scepticism.

Undervalued Software Engineering Skills: Writing Well
I have been coaching several experienced software engineers to further grow professionally, since transitioning [https://blog.pragmaticengineer.com/things-ive-learned-transitioning-from-engineer-to-engineering-manager/] to being an engineering manager. I have noticed a few skills that people often underestimate the importance of developing. Skills that add a
Why Software Development Requires Servant Leaders
The idea of “servant” leaders has been on the rise in the agile community of late. Robert K. Greenleaf coined the term in a 1970 essay, but the idea is timeless.
Developers spend most of their time figuring the system out
I am often asked what I mean when I say that developers spend most of their time figuring the system out. Let’s unpack the statement.
Developer Experience is User Experience
Developer experience encompasses all aspects of the developer’s interaction with the company, its services and its products
Theory and Memory: Two Forces Shaping Software Team Knowledge
How insights from cognitive science and social psychology explain why software knowledge is so hard to preserve

The Local Relational Technologist
Who can we rely on for meaningful software in our communities?

The Era of Software Quality, or the Era of Ostriches?
Humans are bad at writing secure code, and GNOME developers are no exception. GNOME is primarily written using unsafe programming languages where simple mistakes in our code lead to devastating...
”The distinction between programmer and user is reinforced and maintained by a tech industry that benefits from a population rendered computationally passive. If we accept and adopt the role of less agency, we then make it harder for ourselves to come into more agency.”
always-already-programming.md
gist.github.com