I’ve been working for over 20 years in the field of “developer experience,” where we help developers be more effective, efficient, and happy, by improving tools, systems, and processes. I have been…
Sometimes, I have to explain software development to people who are not software developers. Over the years, I have come up with an analogy that explains what software development is like and…
About a year ago, a Twitter user tagged me and some other programming authors in a thread where they described the barriers to accessing computer programming books in their country. I’ve been…
I have now worked in developer productivity organizations at a company with a very advanced mono-repo (Google) and a company with a very advanced multi-repo system (LinkedIn), and I have to tell…
One of the most important properties about any software system is the ability to understand what it is going to do without having to run it. This concept is usually referred to…
Many years ago, I wrote a blog post explaining what was wrong with computers, and essentially saying the problem was complexity. Several years after that, I published Code Simplicity, which was essentially…
There’s a point that I’ve been making to engineers recently that I realized would be valuable if shared more widely. When you do engineering work, there are different types of tasks that…
There are three key factors to being or becoming a great programmer: awareness, understanding, and responsibility. I’ve talked a lot about the subject of understanding. Heck, I even named my most recent…
It is very easy to think of software development as being an entirely technical activity, where humans don’t really matter and everything is about the computer. However, the opposite is actually true.…