It seems like just yesterday I was switching subsidiary companies at my resident multinational conglomerate, trading in my gig in enterprise business software for something more acutely interesting to me: surgical robotics.
And the three+ intervening years have been not only a grand ole time, but also marked a clear shift in what I actually do at work. The last time I wrote a post like this, my main job was building the things other people told me to build. Over time, I became the person who decides what to build and how to build it,* and I've learned quite a bit in that process: how to build big (and hopefully useful) systems, how to lead teams and (again, hopefully) not have them hate you, and a whole bunch of more specific things (working with a variety of cloud platforms, building protocols for embedded devices, working with teams across timezones, etc).
I wouldn't consider myself a particularly career-oriented person,** but if you spend 40+ hours a week — 35% of your waking hours — doing anything, you kind of have a vested interest in doing it well. Or at least in a way that doesn't make you hate doing it. And from that perspective I'm happy with the way my role has changed over time.
Anyway, by now you can probably see where this post is going: I've thrown all of that away and I'm joining a small startup.
A great question, with a decidedly less good answer: I have no idea. I've found a bunch of different ways to rationalize why the change makes sense, but at the end of the day, I left a job that I really enjoyed, with a great team and clear growth opportunities, for something a bit more nebulous (and took a significant pay cut in the process). And it's not even like the new job is "building automated prosthetic limbs for orphans" or "systems for cheaply purifying water in low-income nations" or something similarly altruistic sounding to throw around at cocktail parties: it's more or less your standard Silicon Valley (or Silicon Valley) fare.
An Array of Rationalizations
Here's the current list of ways I've attempted to justify why I joined a new company, in literally no order whatsoever.
Risk vs Reward
Pretty much every decision we make is about trade-offs, and how we weigh the different pros and cons is fundamental to who we are as people. One parameter I'm constantly tweaking is how much risk I'm willing to take in different areas of my own life. Naturally, finance is a big one, and I've traditionally played that one fairly safe - investing almost exclusively in low-cost index funds, with the occasional real estate purchase just to showcase how little of a plan I actually have. But as time goes on and I've built up a bit of a financial safety net, I'm more willing to take on more risk (e.g. by joining a startup), theoretically with a corresponding increase in reward, which leads us to my next rationalization.
An Alignment of Incentives
One thing that I find attractive about the new opportunity is that I have a not-insignificant stake in the company. Further, the work that I do (or don't do) has a real effect on the success or failure of the company as a whole, which dictates if that equity ends up actually being worth anything.
Now, as always, money isn't particularly motivating to me (beyond what I need to Not Die™), since I'm not eager to buy anything except my own financial independence. But (also as always), money confers flexibility, and even if I don't personally want to do anything with money, I can always give it to organizations that can use it to generate some happiness in the world.
I think the worst time to start looking for a job is when you're unhappy with your current one, or worse, when you've just lost it. Similar to not going grocery shopping when you're hungry, I think it's much easier to objectively evaluate an opportunity when you have a happy baseline to compare it to. As such, over the 5+ years I spent at my last company, I interviewed with 10-15 different places: doing interviews, getting offers, negotiating, and ultimately, rejecting those offers. I always explained to companies upfront that I was happy with my current role, but also that I was open to exploring (and perhaps taking) a new opportunity if I thought it was a good fit.
While I advocate this practice to everyone, I think it's especially useful in software engineering, where interviews frequently bear little resemblance to what you're actually doing on a day-to-day basis. Skills like "whiteboard coding" and "answering contrived and artificially constrained new grad Computer Science questions" just aren't things one will be good at without a bit of exposure beforehand. Similarly, negotiating is a tricky and fraught endeavor with uneven power dynamics, so it helps to train that muscle as well.
Anyway, this is all to say that of all the companies I interviewed with, this latest one was the first where the full picture of the opportunity was enough to make me consider leaving my previous team. I mean that's a given now, since I did leave my previous team, but you get the idea.
Worst Case Scenario
Whenever I'm trying to evaluate a tough choice, I pretend I'm trying to help someone else evaluate the choice, and then I walk myself through the advice I'd give to them (read: me). In this case, I came up with something along the lines of:
In the worst case scenario: the company is unsuccessful and folds, perhaps in a dramatic fashion featuring (metaphorical) explosions. To really underscore this worst case scenario, let's even assume that the company folded as a direct result of your own personal and/or professional incompetence. In this scenario, you just go grovelling back to your previous team (who has already said they'd happily take you back), or some other well-established company. You have the safety net to handle a bout of unemployment with fairly little fuss.
From that perspective, why not give it a go?
Aside from an income (and thus, to belabor the point here, Not Dying™), the thing I'm probably looking for most out of a job is the ability to learn and grow. And while there was still plenty to learn in my previous job, I'd kind of settled into a rhythm with each new project, so while the number of projects was increasing, the actual shape of them was substantially similar.
Aside from working in a new domain (video compression), I'm also working with new requirements, new sets of trade-offs, and new cloud providers. At my previous company, I'd often heard that the process of joining and ramping up was like "drinking from a firehose" because of the sheer amount of stuff you take in over the course of the first few weeks. I've definitely had that sensation all over again at the new job, which I consider a success.
As I took on more organizational responsibilities on my previous team (leading meetings, answering emails, ramping up other engineers, etc), I had correspondingly less time to actually build stuff myself. For a while, it was easy for me to rationalize this as "but I'm helping other people be productive, so the net result is far larger than anything I could produce on my own", but after a point, I just (perhaps selfishly) wanted to build the darn thing myself.
In my first month at the new gig, I wrote vastly more code than I had in the previous year at my last job. The small size of the company means everyone has their own well-defined niche, which means there's far less coordination overhead, which means I more or less spend 8 hours a day heads down in a world of my own. This will (theoretically) change over time as the company (hopefully) grows and scales things up, at which point I'll start to take on more of my old duties, but I'm quite enjoying the current state of things.
But More Realistically...
Like I said before, I think all of the above is just me conveniently retrofitting reasons onto a decision I don't fully understand. Realistically, I might have just gotten bored of staring at the same four walls every day, which provides far less dynamism than I'm used to. Through that lens, switching jobs might just have been a subconscious way to rebel against that and shake things up a bit. Who knows?
What about the Truck?
One thing that I've tiptoed around for years is where I actually worked, going so far as to scrub the name from my earlier posts. That said, I never did a particularly good job of this, and it's pretty obvious to anyone paying attention that I worked at Google.
My main motivation for not advertising it so loudly was to avoid the impression that I was profiting off the name of my employer, and to avoid (erhm, further) conversations with HR. I've mentioned before that I actually lose money running this blog,*** since I haven't monetized it at all. But still, appearances and whatnot.
Anyway, this is all to say: a lot of my initial truckliness was predicated on access to the resources I had at Google: food, gyms, bathrooms, etc. Hell, I was even keeping the truck "discreetly" tucked away in the back of an unused Google parking lot since the pandemic began.
But now I've gone and messed that up by quitting, which opens up a whole host of messy questions and logistics for me to figure out. Things like "where do I keep the truck?", or even more existential, "do I keep the truck at all?"
My current plan, which I reserve the right to toss out and start from scratch, is:
- Store the truck somewhere for the remaining, interminable duration of the pandemic, then
- Attempt an even more stripped-down truck life than before.
In fact, I've already gone ahead and done #1, though I expect it'll be some number of months before I can start to actuate on #2, working remotely from a truck being a bit difficult and all that.
Naturally, leaving the safety and comfort of Google has broader implications for my life and plans. Things like financial independence/early retirement, longer-term truckin' stuff, and my ideas on what I'm looking for in different parts of my life are all subject to change. I've got half-baked thoughts on all those things that I'll probably turn into 65%-baked thoughts before I plop them onto my little corner of the internet.
*More of a focus on the "how to build it" part. Choosing which products to build was always outside of my realm (as it should be), but I had a lot more discretion to choose what got built in terms of systems to power a given product.
**Plus, with any luck, my 'career' will be shorter than usual. Early retirement/financial independence ambitions and whatnot.
***An extremely modest amount of money, like "avocado toast and a latte once a month" kind of money. An ongoing blog rewrite will (at least in theory) make it even cheaper to run.