Until a few weeks ago, I hadn’t written a single line of code in nearly a year and a half.
For over a decade as a manager / director/ VP, I hadn’t gone longer than a month without at least writing some code. But as soon as I accepted my first CTO job, coding became a thing of the past. It’s as if I had completed the final phase of my metamorphosis from programmer to suit.
My career as a technologist began when I first discovered the web in 1993. I had very little computer experience back then, but was mesmerized by the web and felt an overwhelming need to contribute to it. I taught myself HTML and Photoshop and UNIX and built my first site, “the eye of the storm,” a hideous homepage that utilized every Photoshop filter available.
Soon I became bored with static HTML and spent every waking hour teaching myself Perl/CGI. Like many in those days, I started with a simple contact form, then moved on to dynamic pages, administrative tools, intelligent 404’s, etc. I built my first full-fledged web app, Dr. Iptscrae, in 1995. It was a tool that automated the scripting and configuration of Palace servers. Under the hood, it was a shit storm of cruft Perl – lots of repetition, no commenting, no error handling. Yet was good enough that I sold the code to the folks behind The Palace and walked away with more money than a starving college student knew what to do with.
I never became a rockstar programmer, but over the years, I hacked together more than fifty web apps in Perl, ASP, Java, and PHP. I built web apps for tiny companies, that were used by only a few people and apps for start-ups used by millions of people. I’ve done it as a one-man show, as part of a team, and as a manager. I was that guy who slept in the office and worked from home during vacations, even when my managers begged me to take a break.
But somewhere along the way, building web software became tedious. The excitement of learning and creating was replaced with an assembly line mentality. Every app required the same old methods, business logic, database queries, etc. In hope of recharging my passion, I shifted my focus to process-oriented things like gathering requirements and writing specs. When that became mundane, I moved on to design patterns, code optimization, and hardware tuning. Then I moved on to UX and IA. Finally I moved on to the non-technical realms of launching web applications like marketing and sales.
This is the path that led me to obtain my first executive position — a fantastic opportunity to challenge myself in unfamiliar territory — and use my experience, not my coding, to help guide a new start-up. Nine months after taking the job, I conceived the strategy for, and led my team in the development of a sophisticated social web app. The project lasted nine grueling months, and throughout it all, I didn’t contribute a single line of code.
And to my surprise, I missed it.
I missed being part of those all-night coding sessions. I missed the creative problem solving. I missed being pissed off at the death-march schedule and constant feature creep. After all those years of trying to distance myself from coding, the one thing that finally brought my passion back was, not coding. I found myself with all of this creative energy, and no outlet. I can’t draw, paint, or play an instrument. I’m not a very good writer. I don’t sing or dance. I don’t even like the outdoors very much. As it turns out, I like building software.
I had come up with an idea for a pet project years ago, but was always too fried to build it and was so soured on all of the languages and frameworks that I knew, to use them again on a personal project. I had read a lot about Rails and wanted to learn it, but didn’t have the energy to teach myself yet another framework. I’d been down that road too many times, and while the outcome had always been rewarding, the process could be downright maddening.
And then a couple weeks ago, after a particularly grueling day at work, I woke up at 2AM with a mixture of frustration and creative energy. Instead of fighting it and going back to sleep, I opened up my laptop, and began following a Rails intro tutorial. By 9AM, I had the shell of my new app created. I was coding again! And holy crap, Rails delivered on its promise to make coding fun. Sure, I’ve had some head-banging moments, but in only a couple of weeks, I’m further along than where I’d have been after two months in Java.
I’ve now spent all my free time on the project, which isn’t a lot after a full time job and a four-month old baby. It’s not the next Google — far from it — but it’s something that I’d use as a developer/manager. More importantly, it’s my chance to take everything I’ve learned over the last decade and incorporate it into one (potentially final) web app. I’ll build it myself, design it myself, market it myself, etc. No specs, no mockups, no revenue projections, no meetings to discuss the progress. Just me, my laptop, and a problem I’d like to solve.
Let the experiment begin.