Some Ump Show progress, and finally pivoted into a gamedev/graphics role at work.

Projects and Work

A customizable character for The Ump Show. Made using Character Creator, Blender and Unity.

The Ump Show made progress in bursts. Early in the year, I added ejection mechanics which I think is the main “fantasy” of playing as an umpire. Then I started working on characters to fill out the game – this turned out to be somewhat draining and I paused working on the game after a few months of this. I did write more about the character customization process in Making Customized Characters for Games.

I made a small contribution to Inkscape. I was hoping to make a bigger change but ended up running into GTK limitations and eventually moved on.

I also switched teams at work. I found a team working on a game engine/editor which I found very exciting. It’s something I have wanted to work on for a while. I switched in September and have really enjoyed the last few months. Some of my recent posts have been inspired from that experience ( Satisfaction of Render Pipelines, Graphics UI: Moving Objects in 3D).

AI Coding Assistants

I last wrote about AI coding tools ( Setting Up Fauxpilot for Code Completion) 3 years ago. I think this has been the year where the AI tools felt substantially better than normal intellisense1. So I figured I should write down my thoughts on the current status.

I used Claude Code to build an app to download and install Google fonts to your computer. The polish of Claude Code is impressive. It genuinely felt fun using it.

Screenshot of the Fontanelle app which lets you download Google fonts locally.

Admittedly, this project was starting from scratch and was relatively simple - which I expected to be the strengths for AI models. I had assumed that it would be a while before I could get the same amount of value at work where I work with projects with millions of lines of code. But I turned out to be wrong here. Due to lots of investments by many teams, the internal AI tooling improved dramatically. The work primarily was in developing the right AI-accessible tools to search and navigate the large codebase, context files to provide information about internal peculiarities, and embedding the AI model across different development workflows (IDE, review, discussions, etc.).

Where I have found the AI tooling the most useful is in doing tedious work that I don’t think is important and doing initial “blind” research.

If I think something is important and requires thought, then I am just going to do it on my own. But if I understand the trade-offs and have already “solved” the problem and need to just do some repetitive code changes, then it’s nice to delegate that. Similarly, even if I haven’t solved a problem but its just a non-critical tool I am building, then I am happy to let the AI tool waste some extra cycles to figure it out. A lot of times it will fail here because I didn’t provide enough guidance, but it succeeds often enough that I let it try when I don’t care.

The AI tooling also seems good at reading a lot of files quickly. So if I have 0 understanding of some part of the code, then its nice to have the AI help me find starting points and help me understand how different components are connected.

A common part of the discourse is anxiety about AI coming after our jobs. The improvement in AI tooling has been dramatic. In a few years, the tooling has become as important as intellisense or syntax highlighting. But, similar to how I don’t worry about intellisense replacing me, I don’t worry about the AI tooling either. Firstly, the AI tooling can get hung up easily. LLMs are impressive but they cannot overcome their context. Someone has to understand the big picture and guide that context. Secondly, writing code is only part of the job. The rest of the job is even harder to replace.

Another part of the discourse is the multi-agentic setup. In the past I have cared about my development environment a lot and have put in energy in making sure I set up and use the right tools. I don’t feel the same about AI agents though. I have very little interest in setting up multiple AI agents to work together. I also don’t want to be constantly vetting different models and using different models for different agents. Working at a big company, I can get away with this easily since a lot of domain experts are going to do this work for me and wrap it up in a single tool for me to use. I am curious to see how the rest of the industry evolves in this space. I don’t really want to be an “agent manager”.

Writing

I wrote fewer posts this year (6) and honestly, I loved even fewer of them. The ones I did love:

Diagram from “Infinity + 1” showing how size of different sets can be compared.
  • Infinity + 1: Finding Larger Infinities: I spent a lot of time this year reading about foundational set theory. I found the idea that some statements are “independent” of some axioms particularly fascinating. This post was the result of me exploring the independence of the Continuum Hypothesis and ZFC.
  • Making Customized Characters for Games: Always fun to write about what you are working on. I had just made some good progress on the character system for The Ump Show, so it was fun to write about it.
  • Graphics UI: Moving Objects in 3D: Similarly, I had spent a lot of time thinking about 3D UI for work so it was nice to write down some of that exploration.

Reading

This year’s reading was light on books, I ended up reading only 5 books:

  • The Fabric of Civilization: The book highlights how important fabrics (fiber, threads, clothes) have been throughout history. It was a quick read and I enjoyed it.
  • Nihilism: Strongly disliked this book. The author knows what the audience means by Nihilism but spends the entire book redefining the term to mean something else. So you don’t really get to explore what you wanted and instead get a lecture about how everyone is using the term wrong.
  • C++, Concurrency in Action: I have spent most of my career avoiding concurrency in C++ but as I was switching to a team that needs to use threads more aggressively, I figured I should read up on concurrency patterns more. The book was useful at a high level, but the example code was less useful as I wouldn’t have the luxury to use the standard libraries as the author does.
  • Discworld (Carpe Jugulum, The Fifth Elephant): love the series. Recently realized that I am past the midpoint of all the books (41 books)!

I spent a lot more time exploring Wikipedia. Some of the interesting topic clusters were:

Quli Qutb Shah who started the Golconda Sultanate (from Wikipedia)

Games

Time spent in Steam this year (which is missing my playtime in GTA V from later in the year). Red is the Hitman series and green is THPS

I started the year by replaying the Hitman series. Then in July, switched to Tony Hawk’s Pro Skater 3+4 when it was released. Towards the end of the year, I stumbled onto some speedrunning videos on GTA V which inspired me to do another playthrough of GTA V which I finished towards the end of the year.


  1. Microsoft probably doesn’t like me using the brand name generically but I find it easier to say intellisense than “code completion + context on hover” ↩︎