John Montroy

Tiny Beautiful Systems

For as long as I can remember, I’ve been prone to getting deeply enamored - one might say obsessed - with whatever I’m working on. My family loves to remind me of my 2nd-grade basketball phase, where I attempted to do:

…every day. Productivity apps ain’t got jack on an anxious brain.

As I grew older, my obsessive tendencies drifted into other worlds - music, programming, video games. I was an upsettingly good DDR + Guitar Hero player, read through C++ books in my free time, was ranked globally in Rock Band drums, picked up real drums in a matter of months, mandolin in a year or two.

Now I’m 31. My obsessive tendencies are a bit more balanced, a little less trigger-happy than they used to be.But they’re still there, and when tactically reactivated, serve me INCREDIBLY well in a profession that highly values lonely, obsessive production via coding.

What kind of things cause me to obsess?

I’m playing Celeste right now. It’s a dead-simple game at its core - the move set is tiny (jump, dash, climb), and the gameplay is all increasingly-complex platforming using those three moves. The game is a total delight - the graphics are simple yet colorfully affecting, the soundtrack is fantastic, and the storyline is a careful but moving examination of anxiety and depression. This is what Celeste looks like when played by mortals.

Some other games that have really grabbed me recently: Doom Eternal, Hollow Knight, Cuphead, the Ori games.

What do these games have in common? Well, they’re all hard. They’re all kinda twitchy, reflex-oriented games. And most importantly, they all have (with the possible exception of Doom Eternal) incredibly simple basic mechanisms and move sets to them.

Games that have NOT grabbed me, despite my best intentions: Skyrim, Dark Souls, Bioshock: Infinite. Huge games with endless complexity in them. Maybe slightly less precise in their moment-to-moment gameplay. When I die in Dark Souls, I don’t really know what to do differently next time.

Here’s the point. My brain likes small systems. It likes constraints. Give me a limited number of building blocks - 12 notes, 30 keywords, 4 moves - and then give me a world to play with those building blocks. That world should allow for infinite self-expression - but ONLY with those limited building blocks. I’m in love with how endlessly you can permute twelve notes (across octaves, sure) to create all of music. I love the creativity and problem-solving of Celeste; within its tiny move set, there are whole universes to be had. Because there’s a whole universe in most corners if you look at it long enough.

So what does this say about obsessiveness? I zoom in and obsess when given a small system to explore. It has to be bounded in scope, but endlessly permutable within its own scope. Programming is clearly an ideal career for this. Music composition as well, although I’m certainly guilty of laying a “just so” story here.

I see this same quality of obsessiveness with tiny beautiful systems in many of my fellow software engineers. Often this leads to a phenomenon I call “temple building” - you labor for weeks over some immaculately-conceived, internally-consistent mini-universe, usually in service of solving something secondary to your core project, like metrics, or caching. At the end, you present your temple, and…no one can find anything in it. It’s dense and confusing. “Oh, but if you just prayer at the altar of John and learn a little bit about my childhood, it all makes PERFECT sense!”

This is obvious, new-senior-engineer-with-a-big-ego nonsense. The best code is usually the simplest code, and the number one reaction you should want from readers of your code should be “oh, ok”, not “oh wow”. Mundane code »> clever code.

Here’s the thing though. The world may be full of tiny beautiful systems, but it’s also full of large, complex, overwhelming, irreducible systems. I have no big thesis here, but I suspect our more Westernized conception of scientific progress deeply overstates the value of reducing dimensionality - one worthwhile book on the limits of this approach is James Gleick’s “Chaos: Making of a New Science”. Per that book, there are ways to tackle these larger systems too - you just have to maybe put on a different pair of glasses first.

I think there is no greater sin than forcing a complex system into a tiny, beautiful system of your own choosing. It denies context. It demands absolutes. It destroys beauty in details. On the human side, it emphasizes story-telling over truth-seeking; it diminishes empathy by choosing to package people up into boxes they never asked to be put in. It chooses essentialism over holism.

I’ve spent a long time grappling with my obsessive tendencies with tiny beautiful systems. In my career, it serves me incredibly well - it’s one hell of a feedback loop. Interpersonally, it fails. And work is not simply a matter of tiny beautiful systems. Work is full of humans, beautiful, complicated, irreducible humans, who’ll pass on your weird box, thanks. And once you’re less focused on reducing everything into your system, you can zoom out and see how wonderful our complex world, and complex friends, can be - if you can tolerate the ambiguity of it all.

But at the end of the day, I’m not advocating against tiny, beautiful systems – they have their use, and can yield incredible results. But they’re one tool in the toolkit, a means to more complex ends.

#Personal