a73x

high effort, low reward

← Posts

You and Your Career

The unexamined life is not worth living

Dr Richard Hamming was a prolific individual. You may recognise the name from "Hamming codes", which he invented in 1950 during his time at Bell Labs—an invention which, amongst other achievements, resulted in being awarded a Turing Award. He was also awarded the Emanuel R. Piore Award in 1979 by the IEEE, and in 1986 the IEEE also created The Richard W. Hamming Medal in his honour.

On March 7 1986, Dr Richard Hamming delivered a talk centred around the question "Why do so few scientists make significant contributions and so many are forgotten in the long run?" He'd spent his time observing great scientists at Los Alamos during the war and the 30 years he spent at Bell Labs and learnt a great deal from them.

The talk was titled You and Your Research, and if you've not listened to it you can do so here or you read the transcript here.

Hamming's talk emphasises the importance of examining your career and the choices you make. Whilst the talk specifically speaks about research, it is fairly easy to draw parallels to software engineering—you only have one life, so why not do significant work?

Hamming doesn't define significant work, he leaves that to the listener to determine—it's deeply personal and varies for each individual. Instead, he outlines traits he's seen in others that have accomplished significant work.

  1. Doing significant work often involves an element of luck, but as Hamming puts it, 'luck favours the prepared mind'. Being in the right place at the right time will only matter if you have the knowledge or skills to execute. Creating opportunities is important but wasted if you aren't ready to perform. Conversely, having the ability to perform but no opportunities can feel just as futile. The key lies in striking a balance—cultivating both readiness and the conditions where luck can find you.
  2. Knowledge and productivity are like compound interest—consistent effort applied over time leads to exponential growth. In a field as vast as software, even a surface-level awareness of an idea can prove valuable when the time comes to use it, while deeper understanding builds expertise. Mastering the fundamentals is crucial; they are learned once and applied repeatedly in various contexts.
  3. Maintain enough self-belief to persist, but enough self-awareness to recognise and adapt to mistakes. I'm honestly very fond of this idea, software is more akin to an art than a science—there are no perfect solutions, only trade-offs. Too often, I've seen people double down on unquestioningly defending their ideas instead of listening. Success usually lies in minimising the disadvantages rather than chasing absolutes.
  4. To do important work, focus on important problems. As what is important is defined by you, what do you care about deeply? How can you work to address it? The importance of your career can only really be answered by you, and I think reflecting on what you're doing helps keep you on the right path.

These aren't all the points Hamming raises, but they are some of the points that stuck with me; I highly recommend listening to the talk yourself so that you may draw your own conclusions.

The average career is only 80,000 hours, so spend it well.