Ardmore: a Reflection on Burnout

Ardmore comes from the Irish Ard Mór, meaning “great height”.

Sometime in 2005, DHH released “Creating a weblog in 15 minutes”. It was the seminal screencast that introduced Ruby on Rails. Seeing his use of TextMate and Rails to quickly create working software for the web: that changed me.

It wasn’t bullshit ASP Classic, which I was using for an internship at the time. It was beautiful. I had already drooled over the acrylic iMacs at my internship (my first real job in software), and now a bit flipped in my head, demanding action. I took my paltry savings, took the train to the Apple Store in Ardmore, Pennsylvania, and came home with Aquariel: a 24 inch iMac and my first Apple computer. I didn’t know it at the time but it was the best career move of my young life.

I learned enough Rails to become dangerous, put some time into learning modern (at the time) web design, and my world took off. All kinds of doors opened to me, and I made my way through a series of web development jobs that, in 2010, landed me at Google through an acquisition. If it hadn’t been for that screencast, and that wicked urge to dive into the unknown, I’d probably still be churning out ASP Classic in the wasteland of terrible software.

But now I’m at an impasse. I’m jaded by the web. I’m uncertain in my ability to write applications for the desktop. My code is usually terrible, and starts to lose coherence after the fifth or sixth refactor to get myself out of the corner I painted myself in with my code. I am a master at using git in my workflow, but I struggle to keep my commits atomic, and my commit messages clear and comprehensive. And so forth. My work process feels slow, trudging.

I’m twenty-six, and I feel very old. I sift through my knowledge now, trying to find firm foundations from which to continue pushing myself, and my ability to learn, but it is difficult, and my foundations are flimsy, even after many forays into functional programming and other core principles of software.

My assumptions about the world of software development, the naive ones that solidified in my formative years, are getting knocked over by the reign of multi-datacenter, schema-less, state-less web backends that serve millions of people, and their lightweight, colorful, mobile application counterparts.

Nothing grabs me the way that Rails grabbed me in 2006.

I no longer code outside of work. The merits of same have been argued back and forth, but the more important point is this: I find myself wanting to learn, wanting to evolve and improve. But the problems I want to solve can’t be solved by a little cowboy wherewithal and a couple sleepless nights in front of Emacs. I visualize products: polished, clever solutions that people happily pay for because their lives are improved. Or otherwise they’re games: typically grandiose in scope, unattainable, but profound and insightful. Either way, I often find myself without the knowhow to really make a dent in any of my dreams.

The work I want to do requires teams now: teams of artists, designers, experts in their field. I am just a programmer, and when I was on edge Rails and writing blog engines, it at least felt like I was a modern programmer. Now I do not even feel that.

I have made my way along my career in such a way that I have been exposed to the marvelous potential of computers and software, but unable to exploit that potential for myself. It’s always been in the service of another person’s goal. I have attempted to carve out small paths for myself: caring desperately about user experience and UI design when no one around me even considers it a priority, taking over unglamorous jobs of writing APIs that document themselves, or tests that don’t break depending on what time they were run.

My desire to throw all my knowledge away and start fresh has diminished. My desire to create one great thing has increased.

I do not quite know where to go from here. I don’t know if I have it in me to create great things for the web anymore, or to create things at all. The endless nature of programming means that no projects are ever truly finished, but I would have to hesitate to even say that any projects I’ve attempted have been successful. I’ve learned a lot from my failures. I don’t mind making mistakes.

I missed the mobile boat. Every day I faff about writing these onerous articles, I’m not learning Objective-C or trying to create mobile experiences or apps. Is this burnout? Does it matter? The work needs to be done, the opportunities will continue to flow by. I can only hope to prepare myself, and be at the right place at the right time, to catch on to something, and propel myself to another great height.