At the time of this writing, I’m getting ready for code school. My most recent job was basically the peak of my career — a well-run startup with a low-ego, do-meaningful-work kind of culture. I was a one-man-band type delivery manager for university scholarship-management solutions.
That kind of role involves all kinds of sub-disciplines: project management, mastering client relationships and idiosyncrasies, listening and advising carefully based on unique requirements, giving tons of training, and ultimately, treating client deadlines like your own.
So why did I leave?
The longer one stays in a given role, the more its tedium and monotony start to grate. The challenges become less inspiring. The most salient sensation becomes repetition.
^^ But this isn’t a good general purpose reason to leave a job, because tedium and repetition will arise in any field. So for a more constructive approach, I’ve found it good to find a job where the things you are accomplishing are awesome enough that the inevitable tedium feels like a tolerable evil.
In the field of SaaS implementation consulting, I didn’t quite have that balance. That’s because, after a few years, the contours of the job start to look the same all over: advise / train / inspire / cajole a group of people, over whom you have no formal authority, to launch a system that they probably already paid for.
At best, a well-organized and motivated client team would stay right on schedule, pay attention to trainings and ask great questions, manage their own time to get the required work done, and ultimately, launch their system to smashing applause.
But in the case where clients fell short of that ideal, the job was often a matter of just herding cats.
Thus, it appeared to me after a brief job search, that any route for advancement in my field would basically amount to more-advanced cat-herding. The cats would be bigger and there would be more of them, the budget would be larger, and there’d be a much longer paper trail … but cat-herding just the same. And that just plain did not sound interesting enough to justify a career’s-worth of tedium.
A bright new world full of new headaches
For 3 years in the meantime, I had worked across from an engineering team full of calm, low-ego people that were dedicated to their craft, and who seemed to carry a genuine excitement about solving the problems that mattered to our clients. This was the first time I had seen software development embody such a positive and collaborative spirit.
So that got my attention. I started talking to my buddies on that team. I started to understand that my natural wiring could be a perfectly fine fit for their world.
I used to think engineering work would be irredeemably dull, lonely, and stifling. That’s the main reason I went the “people skills” route in client services. But that road seemed to lead to unending cat-herding.
Software development offered a different set of tradeoffs. On the one hand, the technology is always changing, so you get to / have to spend your whole career learning. Technology is tedious, and integrating many disparate systems can be a wild pain in the ass. On the other hand, engineering feels (to me, right now) like an almost limitless, well-structured form of creativity. You can make sh*t that does sh*t, and if you want, you can make something that matters. The required cognitive investment is much higher, but the potential upside to a new endeavor can be stupendous — both in terms of meaning, and value, and compensation.
That new mix of costs and benefits, headaches and gold medals, struck me as pretty compelling. So I pulled the rip cord, made plans for code school, spent the winter burning through CodeAcademy and Udemy, and … here I go.
Originally published at ianschu.com on January 10, 2018.