2025 retrospective
✏ 2026-01-19 ✂ 2026-01-192025 was an excellent year for me. I quit Duolingo after 3000 days of practice, completed my second marathon, got promoted to a blue belt in bjj, read a few dozen books, and understood more of category theory.
Programming
Despite llms being the hottest topic this year, I didn’t notice any seismic shifts in my daily work. I listed my primary use cases for llms (making personalized tools, eliminating dependencies, and providing feedback) in the Parasites found article. Brian Cantrill’s Using LLMs at Oxide also echoes my experience.
The worst downside of using llms in a team for me was an increase in the code review load and wasted effort. A few times I had to review a multi-thousand-line code change ridden with dubious code that obviously came from an llm. Commenting felt so overwhelming and pointless that I approved the code and addressed my concerns in follow-up changes.
On one hand, I don’t want to slow down my colleagues because of my potentially unreasonable quality bar. On the other hand, sloppy code slows everyone down. Rewriting committed code is a sure path to resentment, but I don’t see a good way out of this dilemma. This problem existed before llms, but the ai hype made it more socially acceptable to trade quality for speed. Because allegedly, llm can fix the mess it created.
The most significant benefit of llms for me is psychological rather than technical. Transitions are hard for me. I struggle to start a task even when I know exactly what I need to do and am motivated to do it, and adding uncertainty exacerbates the problem. So I ask Claude to do the task for me. Its initial output is usually plain wrong or subpar, but I’m already over the hump and don’t need much assistance The llm version of Cunningham’s Law: The best way to make me write good code is to show me bad code..
Books
My most enjoyable read in 2025 was Project Hail Mary by Andy Weir. I picked it up after watching the upcoming movie trailer that brought tears to my eyes. I recommend the audio version read by Ray Porter, which won the 2022 Audie Award for Audiobook of the Year.
My favorite technical book was Rust Atomics and Locks by Mara Bos. Among the books on concurrency and memory models I’ve read, it’s the clearest, most practical, and easiest to read.
I read a few dozen books on mental health and neurodivergence, but these topics deserve a separate article. Here are reading lists on other topics:
Popular science
-
QED: The Strange Theory of Light and Matter by Richard Feynman explains the interaction of light and matter.
It is a paragon of popular science done right:
accessible to a dedicated layperson,
yet deep enough to shatter your intuitive view of the world.
For example, I learned that a mirror can defy intuitive reflection laws:
Isn’t it wonderful—you can take a piece of mirror where you didn’t expect any reflection, scrape away part of it, and it reflects!
- Power, Sex, Suicide: Mitochondria and the Meaning of Life by Nick Lane gave me a profound appreciation of the organelles that power our lives. I struggled to follow the details of chemical reactions and couldn’t judge the soundness of Lane’s arguments, but this book left me in awe. For example, I learned that the fundamental difference between sexes is not the Y chromosomeSome females have Y chromosomes., but the transfer of mitochondrial dna to offspring.
- Too Big for a Single Mind: How the Greatest Generation of Physicists Uncovered the Quantum World by Tobias Hürter tells the story of quantum mechanics that reads like a novel. It’s not as illuminating as qed, but it paints a vivid picture of the personalities behind the most significant discoveries in twentieth-century physics. I kinda hate Bohr now.
Writing
- Stein on Writing by Sol Stein is packed with systematic advice on writing prose that’s hard to put down. It offers plenty of examples that make the effects immediately apparent.
- Clear and Simple As the Truth by Francis-Noel Thomas and Mark Turner explains the concept of writing style and analyzes classical style in depth. I learned about it from Dan Luu’s Some thoughts on writing blog post.
- Weinberg on Writing by Gerald M. Weinberg describes an approach to constructing prose from small ideas. It reminded me of the Zettelkasten method, but it’s significantly less dogmatic.
Personal development
- In The Art of Learning, Josh Waitzkin describes his journey from international chess master to tai chi pushing-hands world champion. It’s an enjoyable read if you’re interested in mastery and cross-pollinating interests.
- On the surface, Organizing for the Rest of Us by Dana K. White is a book about cleaning, but its guiding principles are universal. I found the container concept especially deep and ubiquitous, as dealing with children’s toys is surprisingly similar to deciding on project features or planning a busy day.
- In Why Buddhism Is True, Robert Wright argues that evolution shaped us to see reality distorted, and that the practices and core ideas of Buddhism can help us see more clearly and live calmer lives. I came to the same conclusions long ago, but it was still an enjoyable read. One idea from the book that stuck with me is that our feelings always carry judgments.
Running
In 2025, I logged 344 runs totaling 4295 kilometers.
That’s 700 km more than in 2024,
but my performance traced a crooked trajectory.
The year started well as I trained for the Zürich Marathon. The routine felt challenging but manageable I used the program from the Hansons Marathon Method book. , and my form peaked on race day. My goal was to finish in 3:25:00; the actual time was 3:25:35, 6:40 faster than the previous year.
Race day felt like a celebration.
I enjoyed most of the route,
and sustaining my target pace was easier than expected.
Unlike last time, I didn’t injure myself.
After the marathon, I immediately started training for a half-marathon. After about a month, my hard days became progressively more frustrating: I couldn’t meet my modest training goals.
On June 28th, I had to cut my long Sunday run short and walk the four kilometers home. That night, I woke up with intense chest pain that felt like a heart attack and drove to an er. My pain turned out to be a complication of walking pneumonia. I stayed in a hospital for a few days for the first time in decades.
I recovered and slowly returned to running,
but I couldn’t do hard runs anymore.
Every time I attempted a threshold run or interval session,
I got sick and had to slow down again.
My load consisted of ≈80 km of slow-to-moderate running per week.
Weeks passed with no improvement. I was short of breath and exhausted constantly. Suspecting another bout of pneumonia, I scheduled a doctor appointment, and a blood test revealed such low iron levels that the doctor offered me a 1000 mg infusion on the spot. I accepted and felt like a superman for two days, but then I got sick again.
My body clearly wants me to prioritize rest and recovery. I won’t be training for a marathon in 2026. I might participate in a shorter race around autumn if I feel better, with no performance pressure.
Martial arts
I continued practicing Brazilian Jiu-Jitsu (bjj) throughout the year, logging around 250 hours. It’s still my favorite physical activity.
On June 14th, I competed in my first tournament
(sbjjnf Summer Open 2025)
and won silver,
winning two rounds by submission
My gym posted a short clip on Instagram featuring the submissions.
and losing one by points (4-0).
The tournament was a great experience
and profoundly influenced my training.
Two weeks later, my coach promoted me to a blue belt.
I’ll likely participate in another competition in 2026, but I don’t have any ambitions. My only goal is to expose problems in my game. I don’t plan to travel anywhere to compete.
bjj also helped me meet good people in new places. bjj practitioners bond faster than ions in solution. I trained in gyms in Geneva, Portugal, and Normandy during business trips and vacations, and was always met with respect and friendliness. Some gym owners even refused to charge for my training sessions.
I also started learning the basics of judo. It’s more straining and traumatic than bjj, but it’s also more exquisite. I might join a local judo club to practice more systematically.
Writing
My most interesting and controversial article was Static types are for perfectionists. Unfortunately, most feedback missed the point, likely because people didn’t read past the clickbait title and assumed I attacked static type checking.
I published far less than I wrote in 2025. Some of my writing was too personal, and a few gnarly topics refused to cooperate: I couldn’t construct an argument that was clear, convincing, and concise. That means I have a lot of unfinished material, and I’m looking forward to working on it in 2026.
Gaming
These days, I play video games primarily with my daughters, so almost all involve cats. Simulating cats, hoarding cats, searching cats, solving puzzles with cats.
However, as a Hollow Knight fan, I had to try Hollow Knight: Silksong released in September. The game is brutally difficult, but it’s the best game I’ve ever played. Hollow Knight is a masterpiece, but Silksong is superior in every regard.
My kids loved it.
They role-play fights from the game and draw pictures of Hornet.
My older daughter asks me to play so she can watch it instead of TV
(she can’t play herself,
but she loves using the controller to move Hornet around).
Sometimes I struggle with a tough boss for an hour,
which gives me a chance to model my approach to solving problems:
be patient and learn the patterns until the solution comes almost effortlessly
Sun Tzu’s advice is the key to Silksong mastery: First, learn to become invincible,
then wait for your enemy’s moment of vulnerability.
Learn to dodge, then sneak in attacks.
.
My favorite aspect of the new game is the protagonist’s personality. In Hollow Knight, you play as a ghost, an empty vessel. You don’t know who you are or why you do what you do. Your character is mute and bland. In contrast, Silksong’s Hornet has a strong voice. She knows who she is, where she comes from, what she wants, and what she’s good at. She’s clear about her boundaries. I felt like the Knight most of my life, and I strive to be more like Hornet.
I needed 75 hours to beat the first two acts of the game. It was a therapeutic journey, and I won’t rest until I beat the final third act. And then I might consider playing a metroidvania with cats.
Math
One of my proudest achievements in 2025 was improving my grasp of Category Theory. I attribute it to a superior learning method: I started a study group with my friend and ex-colleague Ulan. We methodically worked through Basic Category Theory for Computer Scientists by Benjamin C. Pierce and solved all the exercises. We met once a week and took turns explaining solutions and sharing analogies.
Social pressure helped me engage with the material and persist through considerable frustration. I didn’t become an expert, but I ventured far beyond my previous limits. The study group sessions will continue in 2026, but we’ll gradually shift focus to another branch of math (either linear algebra or group theory).
Music
I practiced music significantly less than last year. I learned two easy pieces by heart (the first movement of Mozart’s Sonata No. 16 in C and Grieg’s Op. 12 No. 5) and practiced sight reading with no tangible improvement.
I tried both Sight Reading Factory (srf) and Piano Marvel to improve sight reading. I found srf-generated music unbearably dull, and it didn’t automatically grade my performance. Piano Marvel offered a better experience, and I made measurable progress The app offers a SASR test feature that throws progressively harder pieces at you and scores your performance. at first, but its music library was limited, and I didn’t enjoy reading music from my phone screen.
My attempts to improve sight-reading burned me out. I’m finally ready to admit that I’m exhausted and sleepy by the time I get to music practice, so I should use it for enjoyment and not expect meaningful progress.
The most memorable day
I had a few events in 2025 that I think fondly of, such as the Zürich Marathon and my first bjj competition. But somehow, the day that stands out the most is July 20th. Like most memorable days, it was bittersweet.
It was a sunny Sunday. My family was on vacation for a week, so I was alone for the first time in a decade. I thought I would savor the calm, but it didn’t feel special. I went for a long afternoon run, and it didn’t go well. I became exhausted after the first 10k and had to stop every few minutes to catch my breath. That night, the chest pain returned, and I had to stop exercising for a few days.
After I got home and rested, I started working on the software that renders this blog. I like math and occasionally use formulas in my articles. I’m also averse to heavy dependencies and JavaScript. Luckily, modern browsers natively support MathML. I tried writing it by hand, and it was unbearable. Even exploded into gibberish. I needed a compiler to convert TeX notation to MathML.
I’d wanted this feature for years and browsed TeX: The Program, fishing for inspiration, but never found the time to sit down and write the code. On that Sunday, I had the time. Four hours flew by before I got my first math expression rendered. It took a few more sessions to polish the code and update the articles, and I revised the parser a few times since then, but all the groundwork happened on that day.
This Sunday reminded me how much I enjoy programming, and how easy it is to sustain flow state for hours when the problem is meaningful and challenging. I’m sure 2026 will bring more such days.