Thinking clearly about software
January 18, 2025 │ To think clearly, think in slow motion
January 18, 2025 │ To think clearly, think in slow motion
January 16, 2025 │ Always give options, even when there aren't any
January 14, 2025 │ Tech companies care about projects, not tickets
January 10, 2025 │ What I think about when I write blog posts
January 10, 2025 │ My experience working across timezones for Americans
January 9, 2025 │ Self-belief, pragmatism, speed, and technical ability
January 8, 2025 │ Cynicism and optimism in software companies
January 5, 2025 │ Why you can't skip to the top (but you can skip to the bottom)
January 2, 2025 │ What I've learned from ten years working on projects like this
December 16, 2024 │ Why companies don't reward glue work and why you shouldn't do it all the time
December 28, 2024 │ What does it take to get promoted from senior to staff at a tech company?
December 27, 2024 │ Engineering talent is about task-capability, not speed or volume
December 22, 2024 │ Thoughts on building and maintaining trust with very senior managers
December 2, 2024 │ Four archetypes in software engineering
November 20, 2024 │ Overconfidence about the big questions in software engineering
November 9, 2024 │ What I think about when I'm lead engineer on a project
October 28, 2024 │ Summarizing a whole lot of internet argument about the water usage impact of language models
June 17, 2024 │ Why people are excited about Monte Carlo tree search and language models
April 25, 2024 │ How to use modern machine learning tools to recognise animal calls
November 26, 2023 │ A devlog of my experience porting and hacking llama2.c
November 26, 2023 │ A deep-dive into the specifics of LLMs, via llama2.c
November 26, 2023 │ How ReAct-pattern agents work and how to build them yourself
December 25, 2020 │ Practical advice on writing a successful coding challenge
January 1, 2021 │ Practical advice on succeeding at a design interview
April 20, 2021 │ As simple an explanation of blockchain as possible
July 29, 2020 │ Building multiplayer games with socket.io and HTML5 Canvas
July 29, 2020 │ A brief explanation of how blockchains work for developers
September 6, 2021 │ A brief statement of values for recruiters or hiring managers
April 20, 2021 │ The internet is full of war stories, but almost no incidents are like that
September 3, 2021 │ One idea for testing incident troubleshooting
December 25, 2020 │ How to explain complex technical concepts by starting with why
September 11, 2020 │ Sofware dysfunction is more often motivated by worry than it is by a lack of technical skill