Adam Tornhill
Swedish programmer with degrees in engineering and psychology, author of Your Code as a Crime Scene and founder of CodeScene.
Adam Tornhill did not write this page. ppll compiled it from their own words, each linked to the source. Is this you? · Report a mistake
Latest x.com
- A decade before any Claudes or Copilots, research showed that coding represented just 5% of our work week. So why do so many miss it so much? Probably because agents automated a disproportionately fun part. Few enjoyed digging through walls of code or chasing colleagues to understand how a feature worked. But coding? Everyone loved that. Interestingly enough, I haven’t really missed it. In my new post I explain why, and look at the developer skills that transfer to agentic coding. adamtornhill.substack.com
Feed
As its own page →Hiding
16 October
6 October
28 September
25 September
22 September
10 September
8 September
3 September
1 September
26 August
25 August
12 August
11 August
-
Lovedrcmnd.app
Smalltalk Best Practice PatternsTheir words
Smalltalk Best Practice Patterns. True, Kent Beck is better known for his later work, which is excellent too. But Smalltalk Best Practice Patterns is particularly strong on coding style. I learned a lot by just reading the code examples. Small tweaks to names and abstractions add up. No one captures that better than Kent.
-
Lovedrcmnd.app
Structure and Interpretation of Computer ProgramsTheir words
Structure and Interpretation of Computer Programs (SICP) by Gerald Jay Sussman and Hal Abelson. SICP is my all-time favourite programming book. It's also where I learned about the power of wishful thinking when coding. SICP uses wishful thinking as a design tool: write code as if the abstraction already existed. Pretend. Then, once the ideal abstraction has taken shape, you go ahead and implement those functions. This meta-level is what made SICP so valuable. Ultimately, it's a book that teaches how to think about code and problem solving. I'm tempted to even say that SICP is more a work of art than a pure coding book, but I won't go there. A beautiful book.
-
Lovedrcmnd.app
Paradigms of Artificial Intelligence ProgrammingTheir words
Paradigms of Artificial Intelligence Programming by Peter Norvig. Learning the AI described in this book probably won't land you a job today. But reading the code examples will transform how you think about source code. The book shines when it comes to code comments, a topic that I've never seen demonstrated well in other sources. Here we get to see how comments become valuable as a narrative that explains both intent and reasoning. Brilliant, just brilliant.
+ 10 more
-
Recommendsrcmnd.app
Facts and Fallacies of Software EngineeringTheir words
Facts and Fallacies of Software Engineering by Robert L. Glass. In essence, this is a book about an industry that refuses to learn. That was true 25 years ago when this book was published, and it's probably twice as true today. (Just think about all the AI adoption metrics being rolled out — back to productivity mistaken for lines of code produced, only more elaborate. And expensive). What I like about this book is that Glass doesn't present anything new. Quite the opposite, actually. Rather, it's about research lessons that we all should know, but tend to forget. Ever had to do an estimate, or plan according to a requirements spec? Or maybe you thought that enough eyeballs make all bugs shallow? Then this book is for you. A great work by a fantastic author.
-
Lovedrcmnd.app
Thinking ForthTheir words
Thinking Forth by Leo Brodie. I used to have this habit where I learned various programming languages. To challenge my perspective, I chose languages from families and paradigms that were fundamentally different from what I already knew. Occasionally, I stumbled upon greatness. Thinking Forth presents programming as a creative process, and it delivers those lessons in an entertaining and pedagogical way. The book is particularly strong on software analysis and design, but it's the execution and technical writing that brought the book to my top five. This is the book for anyone writing about software — Leo's way is the way to do it.
-
Lovedrcmnd.app
The Nature of CodeTheir words
This book is a beautiful introduction to simulations of natural systems. We get concise prose, clear illustrations, and carefully chosen systems with a guided tour through the math. All done in the Processing language, which is fun and easy to pick up. The reason I like this book so much is probably due to timing. In 2013, I was on the verge of abandoning software development. I was fed up. (That's a story for another time.) Instead, I planned to go into cognitive psychology full-time as a researcher. This book brought back the joy in programming for me. Sometimes, a good book is the book that motivated you.
-
Mixed onrcmnd.app
Clean CodeTheir words
Clean Code is another standard recommendation, but that one wasn't for me. There are useful design principles in there worth studying, but the book as a whole is too narrow and a bit too dogmatic for my taste. Your mileage might vary.
-
Recommendsrcmnd.app
The Mythical Man-MonthTheir words
First, Refactoring, Domain-Driven Design, and the Pragmatic Programmer are all classics for a reason. Amazing books, and mandatory reads. Working Effectively with Legacy Code deserves all its praise, and of course everyone (yes, really) should check out the Mythical Man-Month.
-
Recommendsrcmnd.app
Working Effectively with Legacy CodeTheir words
First, Refactoring, Domain-Driven Design, and the Pragmatic Programmer are all classics for a reason. Amazing books, and mandatory reads. Working Effectively with Legacy Code deserves all its praise, and of course everyone (yes, really) should check out the Mythical Man-Month.
-
Lovedrcmnd.app
Let Over LambdaTheir words
Let Over Lambda by Doug Hoyte is perfect for those three people in the world who find The Art of the Metaobject Protocol underwhelming. One of the most impressive books I've read.
-
Likedrcmnd.app
The Design of DesignTheir words
The Design of Design by Frederick P. Brooks. It never received the attention that The Mythical Man-Month got, yet The Design of Design shares many of its qualities. It's a book that grows, and there's a wealth of insights on offer.
-
Recommendsrcmnd.app
The Little SchemerTheir words
The Little Schemer by Friedman and Felleisen. This book won't teach you Scheme. Rather, it teaches something more valuable: it teaches how to think recursively.
-
Likedrcmnd.app
Multi-Paradigm Design for C++Their words
Multi-Paradigm Design for C++ by James O. Coplien. Twenty years after reading this, the core techniques are still with me. These are commonality analysis, where the purpose is to identify families of systems, and variability analysis, which focuses on capturing the domain parameters that vary. In essence: the foundation of great software design.
10 August
29 June
16 June
Nothing matches.
Recommends rcmnd
rcmnd What they recommend 13 things — each backed by an exact quote.
Compiled by rcmnd.app, not by them: the quotes are theirs, and each links to the post it was copied from.
Recent
Liked Multi-Paradigm Design for C++
Multi-Paradigm Design for C++ by James O. Coplien. Twenty years after reading this, the core techniques are still with me. These are commonality analysis, where the purpose is to identify families of systems, and variability analysis, which focuses on capturing the domain parameters that vary. In essence: the foundation of great software design.
adamtornhill.substack.com 11 Aug 2026
Recommends The Little Schemer
The Little Schemer by Friedman and Felleisen. This book won't teach you Scheme. Rather, it teaches something more valuable: it teaches how to think recursively.
adamtornhill.substack.com 11 Aug 2026
Liked The Design of Design
The Design of Design by Frederick P. Brooks. It never received the attention that The Mythical Man-Month got, yet The Design of Design shares many of its qualities. It's a book that grows, and there's a wealth of insights on offer.
adamtornhill.substack.com 11 Aug 2026
Show 10 more
Loved Let Over Lambda
Let Over Lambda by Doug Hoyte is perfect for those three people in the world who find The Art of the Metaobject Protocol underwhelming. One of the most impressive books I've read.
adamtornhill.substack.com 11 Aug 2026
Recommends Working Effectively with Legacy Code
First, Refactoring, Domain-Driven Design, and the Pragmatic Programmer are all classics for a reason. Amazing books, and mandatory reads. Working Effectively with Legacy Code deserves all its praise, and of course everyone (yes, really) should check out the Mythical Man-Month.
adamtornhill.substack.com 11 Aug 2026
What others say about Working Effectively with Legacy Code →
Recommends The Mythical Man-Month
First, Refactoring, Domain-Driven Design, and the Pragmatic Programmer are all classics for a reason. Amazing books, and mandatory reads. Working Effectively with Legacy Code deserves all its praise, and of course everyone (yes, really) should check out the Mythical Man-Month.
adamtornhill.substack.com 11 Aug 2026
Mixed on Clean Code
Clean Code is another standard recommendation, but that one wasn't for me. There are useful design principles in there worth studying, but the book as a whole is too narrow and a bit too dogmatic for my taste. Your mileage might vary.
adamtornhill.substack.com 11 Aug 2026
Loved The Nature of Code
This book is a beautiful introduction to simulations of natural systems. We get concise prose, clear illustrations, and carefully chosen systems with a guided tour through the math. All done in the Processing language, which is fun and easy to pick up. The reason I like this book so much is probably due to timing. In 2013, I was on the verge of abandoning software development. I was fed up. (That's a story for another time.) Instead, I planned to go into cognitive psychology full-time as a researcher. This book brought back the joy in programming for me. Sometimes, a good book is the book that motivated you.
adamtornhill.substack.com 11 Aug 2026
Loved Thinking Forth
Thinking Forth by Leo Brodie. I used to have this habit where I learned various programming languages. To challenge my perspective, I chose languages from families and paradigms that were fundamentally different from what I already knew. Occasionally, I stumbled upon greatness. Thinking Forth presents programming as a creative process, and it delivers those lessons in an entertaining and pedagogical way. The book is particularly strong on software analysis and design, but it's the execution and technical writing that brought the book to my top five. This is the book for anyone writing about software — Leo's way is the way to do it.
adamtornhill.substack.com 11 Aug 2026
Recommends Facts and Fallacies of Software Engineering
Facts and Fallacies of Software Engineering by Robert L. Glass. In essence, this is a book about an industry that refuses to learn. That was true 25 years ago when this book was published, and it's probably twice as true today. (Just think about all the AI adoption metrics being rolled out — back to productivity mistaken for lines of code produced, only more elaborate. And expensive). What I like about this book is that Glass doesn't present anything new. Quite the opposite, actually. Rather, it's about research lessons that we all should know, but tend to forget. Ever had to do an estimate, or plan according to a requirements spec? Or maybe you thought that enough eyeballs make all bugs shallow? Then this book is for you. A great work by a fantastic author.
adamtornhill.substack.com 11 Aug 2026
What others say about Facts and Fallacies of Software Engineering →
Loved Paradigms of Artificial Intelligence Programming
Paradigms of Artificial Intelligence Programming by Peter Norvig. Learning the AI described in this book probably won't land you a job today. But reading the code examples will transform how you think about source code. The book shines when it comes to code comments, a topic that I've never seen demonstrated well in other sources. Here we get to see how comments become valuable as a narrative that explains both intent and reasoning. Brilliant, just brilliant.
adamtornhill.substack.com 11 Aug 2026
What others say about Paradigms of Artificial Intelligence Programming →
Loved Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs (SICP) by Gerald Jay Sussman and Hal Abelson. SICP is my all-time favourite programming book. It's also where I learned about the power of wishful thinking when coding. SICP uses wishful thinking as a design tool: write code as if the abstraction already existed. Pretend. Then, once the ideal abstraction has taken shape, you go ahead and implement those functions. This meta-level is what made SICP so valuable. Ultimately, it's a book that teaches how to think about code and problem solving. I'm tempted to even say that SICP is more a work of art than a pure coding book, but I won't go there. A beautiful book.
adamtornhill.substack.com 11 Aug 2026
What others say about Structure and Interpretation of Computer Programs →
Loved Smalltalk Best Practice Patterns
Smalltalk Best Practice Patterns. True, Kent Beck is better known for his later work, which is excellent too. But Smalltalk Best Practice Patterns is particularly strong on coding style. I learned a lot by just reading the code examples. Small tweaks to names and abstractions add up. No one captures that better than Kent.
adamtornhill.substack.com 11 Aug 2026
Where they publish
Site adamtornhill.com His site: his books, talks and software-analysis research.
Link verified 5 Sept 2026.
Newsletter Code for Humans and Machines His newsletter on code quality, patterns and coding in the agentic era.
Open adamtornhill.substack.com
Link verified 5 Sept 2026.
x.com @AdamTornhill His X account.
Recent
- A decade before any Claudes or Copilots, research showed that coding represented just 5% of our work week. So why do so many miss it so much? Probably because agents automated a disproportionately fun part. Few enjoyed digging through walls of code or chasing colleagues to understand how a feature worked. But coding? Everyone loved that. Interestingly enough, I haven’t really missed it. In my new post I explain why, and look at the developer skills that transfer to agentic coding. 16 Oct 2026 adamtornhill.substack.com
- This is the first 400x task I've experienced: refactoring 300k LoC. My new article covers the strategy behind this large-scale refactoring: coding agents iteratively learn how to improve code as they go. 6 Oct 2026 adamtornhill.substack.com
- Getting ready for my new masterclass tomorrow at @GOTOcon in Copenhagen. 28 Sept 2026
Show 17 more
- Poor encapsulation creates excessive coupling, turning what should be a local change into shotgun surgery. My latest article looks at such dependencies as a multi-dimensional problem: 25 Sept 2026 adamtornhill.substack.com
- Some phishing attempts are entertaining: “Founder & CTO for an established business.” I’d expect AI to do better. 22 Sept 2026
- Test-Driven Development (TDD) has been my default programming mode for 25 years. TDD simply made me a better developer. It’s been invaluable. However, the time has come to bid farewell. TDD didn’t survive my transition into AI-native development: forcing an agent through increments optimized for human cognition negates many of the benefits. Dropping TDD feels like a drastic step. But it’s similar to what happened years earlier as I went all in on Clojure. I had to adapt my habits and workflows to a new context in order to take advantage of it. My new essay reflects on my decades as a TDD prac… 10 Sept 2026 adamtornhill.substack.com
- Large parameter lists that rely on positional string arguments are a weak interface for both humans and coding agents. Yet they’re just a symptom. More often than not, the root cause is a function that does way too much. In my new post, I explore the problem and walk through a refactoring that encapsulates data and behavior in explicit domain concepts. 8 Sept 2026 adamtornhill.substack.com
- The main difference with AI coding is that I no longer focus on individual building blocks. Rather, agents allow me to iterate on the whole system at the feature level. That characteristic is where the bulk of agentic coding gains come from. 3 Sept 2026
- Lambda functions optimize for writing code at the expense of reading code, which is arguably a much more frequent activity. 1 Sept 2026
- Understanding code we didn’t write ourselves is one of the hardest parts of software engineering. If we approach agentic coding the way we tackle manual coding, we’ll turn ourselves into legacy code maintainers. That’s unlikely to speed up anything. 26 Aug 2026
- A question like ”do we still need to read AI generated code” is pointless in isolation. The answer depends on the task, and more specifically on the uncertainty inherent in each type of task. 🧵 25 Aug 2026
- What are the top 5 programming books that changed how I think about code? The litmus test is: Did the book a) change my coding style, and b) was it a sustainable change that made a positive difference? Check out my list here: 12 Aug 2026 adamtornhill.substack.com
- I made a conscious effort to unplug during my vacation. Coming back, I noticed the lovely new Substack feature: Scan for AI text. Coincidentally, I had updated the About section for my Substack a while back with some notes on what my blog is *not*: "## What this isn’t Content creation isn’t my job. I write these articles because I a) love to write, and b) care deeply about our profession. It’s a fun hobby, not a job. Consequently, I don’t feel any pressure to publish on a schedule. I’d rather publish less and maintain a higher quality bar. So far, that has worked out to roughly one article pe… 10 Aug 2026
- Naming in software goes way beyond any aesthetics. Strong names sharpen our thoughts in the moment, as well as supporting our future selves *and* any coding agent trying to make sense of what’s already there. Here's my take: 29 Jun 2026 adamtornhill.substack.com
- One of the worst things you can do to your code is to hide a design decision. A common example is compressing design decisions into a boolean. A boolean parameter looks harmless. It is just one extra argument. 👇 16 Jun 2026
- The main problem with many function arguments isn't the number of arguments per se. Rather, it's why a method needs all those arguments. 10 Jun 2026
- After building both AI-native products and extending mature codebases, I wanted to capture the recurring design patterns in a more memorable form. The goal is to design codebases that are safer for agents to evolve and cheaper for humans to verify: 9 Jun 2026 adamtornhill.substack.com
- One of the most common naming issues I tend to see are generic placeholder names like Utils, Misc, or Helper. Names aren’t just passive labels. Names influence future behavior and perspective. A vague and imprecise name — like Utils — will attract code of those same qualities. 9 Jun 2026
- Recurring merge conflicts are a sign of socio-technical problems. They are the canary telling us that there is a misalignment between a) the work we do, and b) the type of work our architecture supports. 2 Jun 2026 adamtornhill.substack.com
- When it comes to merge conflicts, GenAI truly delivered on the 10x promise. 28 May 2026
Link verified 5 Sept 2026. Recent items update automatically from the channel.
About the English under a post
Some people here publish in a language other than English. Where they do, this site shows a machine translation beneath the post, in this typeface — the site's own, not theirs.
The post itself is never changed, moved or hidden: what is set in the serif above is exactly what the person published, and it is what to quote them on. A translation can be wrong in ways that matter, especially about tone.
Only the post's own words are translated. A quoted post, a linked article and a belief on korrents.com are left in their original language.




