About The Author

I’m Graham Lee. I do a lot of things, but in particular I help programmers to become software engineers. I’ve been in software for around two decades, working on UNIX tools, mobile apps, desktop software, micro services, supercomputing…I’ve seen a lot. I share what I’ve learned in multiple places, so here are some links.


This website’s blog covers a range of topics, broadly related to software engineering and its culture and values. The name is “Structure and Interpretation of Computer Programmers”, a pun on a famous computer science textbook. Check out the full archives here.


The SICPers podcast goes into detail on the history and context of software engineering ideas, and the trade-offs we make when building software.

De Programmatica Ipsum

De Programmatica Ipsum is a monthly magazine on software engineering, co-edited with my friend Adrian Kosmaczewski. Its scope is “individuals, interactions, and the true valuation of the things on the left” in software development.


Graham Lee, presenting at UIKonf 2015.

This YouTube playlist contains many of the conference talks and seminars I have given on topics of testing, software quality, and software design paradigms.

Along with my friend Steven Baker I stream on two software engineering topics. In Dos Amigans, we write software for the Amiga computer using tools native to the platform. In [objc retain]; we use free software tools to develop free software in the Objective-C language.


APPropriate Behaviour is a guide to the things programmers need to know, other than the programming. It’s still getting updated!

OOP: the easy way is my attempt to rehabilitate Object-Oriented Programming. It got very complicated over the 1990s and 2000s, despite being introduced as a paradigm for children to write programs easily. I show that there’s a simple idea lurking at the core.


You can email me: grahamlee@acm.org or find me on Fosstodon @leeg@fosstodon.org.