Charlie Munger is a fascinating character. Rich, but not quite as famous as his partner Warren Buffet, he’s been very successful and has tried to pass on his experience, knowledge and wisdom without much fanfare. Buffet credits him more for the success of Berkshire Hathaway than he does himself. There’s a bit of humility in that, but I think Charlie indeed has contributed immensely to that business.
Charlie passed away in 2023 and I was inspired to pick up a book and read about him. I always knew he was interesting and this was a good nudge to learn more about his life philosophy. Incidentally Stripe press published Poor Charlie’s Almanack at a similar time, so I bought a copy. It’s the closest thing to an autobiography of Charlie. It’s a collection of several talks Charlie has done over his lifetime, which he has then revisited and edited with new additional comments and reactions. This is my attempt to summarise what I learned from that book.
Throughout the book, one clear theme is Charlie’s insistence that not using multi-disciplinary skills is the biggest mistake you can make. He talks a lot about building a latticework of mental models in your head, so you can solve different types of problems. Most of those models aren’t just expertise in a particular field, but stealing the best ideas from what he calls “hard sciences” - physics, math, biology. Charlie also particularly values lessons from psychology - the behavioural rather than clinical kind.
While the debate about broad vs deep expertise has been ongoing for a long time, I find it interesting how strong Charlie’s opinion in favour of breadth is. This aligns strongly with my experience so that was reassuring. In most complex disciplines, being good at one thing is not enough. People can still succeed, but they cannot be in the top percentiles of performers if they only rely on a single field.
One interesting aspect of Charlie’s success is that he has a set of traditional, old-school values. Charlie grew up and lived during a time when people had social mechanisms upholding morality and behaviour. He himself talks about how religion was what policed and ensured that society was held accountable when it comes to morality. So that traditional upbringing and behaviour distinguishes him. Being reliable and doing what you say you are going to do, or optimising for “good” are things he constantly talks about in his talks. He makes decisions which improve his overall quality of life and that of others around him, not just decisions that benefit him in the moment.
The reason his values stuck in my head while reading the book, is because it’s not something often talked about. Everyone has values, even if they don’t define them explicitly or share them publicly. But it’s hard to know what most people’s values are in our modern society. We’ve become so good at embracing our differences that we’ve lost the public discourse about our common values. We also don’t understand how each of us should embrace the values of the society we live in. So it’s memorable to read about someone who does adhere to his. It’s a sign of independence.
Charlie’s goal, in his writing and talks, but also in life, is to acquire worldly wisdom. The word “wisdom” isn’t really used often in modern times. Many leaders, even the ones avoiding sensationalism today, look for success, power, knowledge or popularity. But few look for wisdom, or if they do, they don’t call it that. I like the word wisdom. Charlie obviously does too. I think it captures a well-rounded outcome that is bigger than just success or knowledge. Wisdom is knowing how to lead a better life. It’s knowing good from bad and being able to stand up for what you believe in. I find that a much more appealing ideal than just being successful, and I’ll try to embed that into my life too.
In one of his talks, Charlie used his favourite method of inversion to demonstrate the value of being reliable. He did the opposite: he talked about how being unreliable is a guaranteed way to failure. He talks about this mental model of inversion at great length in the book, and it’s great to see it applied in this particular chapter as well. Being reliable underpins any other character trait or skill. Regardless of someone’s intelligence, expertise or knowledge, Charlie argues you cannot succeed if you can’t apply that consistently and work with other people. We often reach for quick wins or optimise for the next immediate milestone by cutting corners. Reliability requires us to think about the long-term value we create for others too.
In the last chapter of the book, we can find Charlie talking about incentives:
I think I’ve been in the top 5% of my age cohort almost all my adult life in understanding the power of incentives, yet I’ve always underestimated that power.
It shows how much he believes in incentives. Another example of how important this is for him is that he quotes Benjamin Franklin often
If you would persuade, appeal to interest and not to reason
Humans are most productive and persistent when they have something to gain or lose from what they are doing. This basic principle is so foundational, that it may be the cornerstone of the entire capitalistic market economy system. Maybe market economies with democratic values win, because they trust this as a fundamental human trait. Charlie reminds us of it, but grounds it in practice. He teaches us we can often solve a problem not by thinking harder of the solution, but by changing the incentives for the people involved.
When learning from someone, it’s helpful to ask what they are not good at, or what some of their shortcomings may be. It helps make popular people human and fallible, and grounds what you can learn from them in reality. So what are Charlie’s weaknesses (as I see them) or what are things he recommends that I wanted to ignore?
I don’t know if this is just style, but I felt Charlie often assumes there is one best solution to each problem - the one that he has learned. He often explicitly says other solutions are inferior and does not present options and contrasting viewpoints in his talks. This could be an attempt to synthesise, or sound confident and direct. But I found it to be a “strong opinions, strongly held” approach. I doubt Charlie is a person who refuses to acknowledge he is wrong, but that’s how he comes across in the book.
When demonstrating why a specific mental model works, Charlie gives examples. What I found lacking in those examples was evidence that specific success or failure was caused by what Charlie describes. Yes, there was often correlation, but no direct causation.
Charlie was immensely successful in his career. He is well respected by many other successful people and someone that we should definitely learn from. The one aspect of the book I didn’t like is Charlie’s writing and talking style. He is very direct, and likes to invent his own words. What he is not, is a professional writer. He is not someone who will keep you glued to a chair looking forward to finishing a chapter. He succeeds at being non-sensational, but that also takes away some of the “fun” from the book. His reputation and experience carries enough weight to encourage us to learn from him. But if you expect a thriller, this is not the book you should start.
I recommend that everyone reads Poor Charlie’s Almanack or at least some of his thinking and background. I learn the easiest by trying to understand the thinking and character of other great thinkers and leaders, which is why I love biographies. Charlie is such a colourful and rich character that I’m sure most of us will find something to learn from him. I know I did.
Large language models have taken the world by storm. By now, it’s pretty clear that they are capable of more than originally expected, both by the public as well as their creators. Software developers in particular have been surprised by how good LLM-based tools are at writing code, and even entire applications. With this success of AI comes the argument that it will kill jobs. Like cars and computers did in their day, it raises the ghost of the fear of growing unemployment. For previous technology innovations, that didn’t happen. Is this time different?
It’s not. AI will not kill jobs for software developers. In fact, my prediction is that AI will create more jobs for them than it kills. Those engaging in the fear-mongering misunderstand the fundamental goal of a software developer. Yes, they write code. But code itself is not the final output of a software developer. The goal is solving a problem for a user. And while the current AI tools are good at writing code, they can’t yet solve the problem independently. That may change soon. But this change requires another breakthrough comparable to the creation of LLMs. Today’s AI models don’t have agency. Moving to agent-like systems requires solving many difficult problems in AI - a fact acknowledged by many of the experts in the area (e.g. see this interview with Demis Hassabis).
Even if we create AI which can independently solve a problem for a user, someone still needs to direct that AI. Software developers are ideally placed to do this. Having experience in pre-AI technology puts you in a unique position to understand the mistakes it would make, and correct them. One of the reasons for my mindblowing experience with Cursor was that I was able to debug and fix problems, not just write code. But that still requires a human behind the wheel who knows what to ask, how to write a prompt for the AI and think critically about the offered solution. Solving a problem through software is still an iterative process. It requires adaptive learning in a complex domain. It sometimes requires trial and error to discover solutions. Humans are still best at these activities.
Lastly, I’m sure LLMs will become better with time. Maybe some day they will be able to do everything a software developer does today. That still doesn’t mean the job of a developer would disappear. The car didn’t kill the job of a driver, but changed it. It required different skills. The computer didn’t kill the job of an accountant or banker. It made accountants and bankers more efficient. You could say these jobs kept their names but are fundamentally different, and you would be right. Accountants don’t spend their time doing manual calculations any more. They focus on the strategy of accounting. Is that the same job? In outcomes for the user, yes. In what you do day to day - most definitely not.
It doesn’t matter though, because that’s always how technological progress works. It changes how humans have to behave, sometimes fundamentally. The important thing is that we’re all better off as a result. We are better off not only through being more efficient, but also through opportunities which didn’t exist before. Yes, the car made drivers more efficient. But it also enabled suburbs, larger cities, and practically served as the first product for the assemly line, which has had immeasurable value for everyone. And I’ll leave it as an exercise for the reader to measure the value of the opportunity created by computers.
Developer jobs are safe; in fact GenAI may be a big boon for them. The caveat is that to benefit, you need to be open-minded. I like how someone at work recently summarised this: “AI will not take your job. But someone using it might.”
A couple of years ago I spent some time to learn Python basics. I had spent enough time with Python the language, but not the community, tooling and libraries. I wanted to complete a project so I could see what developing with python feels like. I created an application - using FastAPI, SQLite, SQLalchemy, and NextJS for the front-end. In the end, I had a complete app, with a UI, a RESTful API, a data model, ability to store that in a database, support basic migrations, and using Docker to deploy the whole thing in containers. I didn’t pace myself as the goal was learning rather than speed, and it took me a few weekends to complete.
Today, I did all of that in 15 minutes. I did it using Cursor - the recently released AI editor which uses a large language model to do the coding for you. I didn’t write a single line of code.
I haven’t been this impressed by a new tool or language in the last decade. I have been doing software development for 17 years now, although less hands-on in the last 5-6, and although I’ve had plenty of “wow” moments experiencing different tech for the first time, nothing has compared to Cursor. I am fully sold on AI assistants.
Cursor is an IDE. It’s a fork of VS Code (a great editor itself). The team who created it made it standalone rather than a plugin, so they can control the full experience themselves. I think that was a great decision, because it is a completely different experience. While it’s still a text editor, what you do most of the time is chat to the AI, not write code. The code is written by the LLM (Claude 3.5 Sonnet in this case), and you just need to give it the prompts, and control where the generated output goes. I had to select which file to apply each snippet to, but I’m sure soon you won’t have to do this either. What blew me away wasn’t just the fact that this is possible. Many other AI coding tools have made the job of creating a basic app easier recently. Github Copilot has become a standard in every developer’s toolbox. But Cursor stands out in two important aspects.
First, it generates entire folder structures and applications, rather than just auto-completing what you write, or operating on single files. I think this is the first in the industry and a game-changer. For many people new to coding, half the effort and confusion is in setting up the right files, folder structure and configuration. That’s hard when you don’t know what you’re doing. Cursor automatically does that for you.

Second, Cursor was able to debug, diagnose and fix problems encountered during the process. The initial application didn’t run out-of-the-box and there were some mistakes in the code. But after asking it why and giving it an error message, the LLM was able to correctly diagnose the problem and offer a solution. This happened multiple times through my session; once to fix a CORS issue, other times to deal with some NextJS rendering convention. When the code writing was done, I even asked the editor to pre-fill some sample data in the DB so I can see how the UI looks without having to do that myself. Not only did it do that, it suggested using SqlAlchemy’s migration capabilities, so you don’t have to do that multiple times and the data is pre-seeded only if empty. This stuff is non-trivial.

All of this goes way beyond just predicting the next line of code. I think we’re at the start of a revolution in how we create software. Does this mean software developer jobs disappear tomorrow? No, I don’t think so. I just think it will enable people who have no idea how to code to write entire apps themselves. Cursor won’t create and maintain enterprise-grade applications by itself, but it will fulfil the needs of the majority of hobby projects. It will enable product managers to test how things work with customers quickly.
I plan to start using Cursor as the default for any new hobby project. Given this is barely the first version, I can’t wait to see how it will evolve and what new things it will enable for software engineers. I wouldn’t be surprised if it entirely transforms the IDE as a concept.
I had a blog before, but it’s gone. I killed it several years ago. It was one I started as a student, so most things I wrote appeared very naive and badly written. I have been toying with the idea of starting again for years now. There are things I want to say, but I never got round to it. However, the idea of writing always comes back. It’s one of those devil figures at one’s shoulder in children’s cartoons that never goes away and has an agenda. I recently went back to reading Scott Hanselman, who is one of the most prolific bloggers I’ve seen, and I wanted to figure out why he does it. Here’s what he says:
“A lot of people say, ‘Well, Scott, you’re doing all this stuff. Why do you do it? Are you not sleeping?” Hanselman says. “It’s because, I must dance. I can’t stop. Whenever I think about stopping, I think about this little boy and how excited he is about doing what he’s doing.”
Unlike Scott, I can stop, and I did for a long time. But doing that keeps the voice in my head and it doesn’t go away. So after a few years, I’m finally trying again. If blogging is what it takes to drive that devil figure away from my shoulder, then so be it. Here it is.