As I’ve had more early career folks reach out about mentorship, the most frequent question has been about my technology career story. I genuinely don’t think my story is a good one to learn from because I’ve walked a path dependent on a great deal of privilege and luck. That said, at some point it’s easier to simply write the story and let folks decide that for themselves.
In telling my story here, I’ve centered on the role of privilege and luck, with the hope that it steers folks away from trying to learn too much from it. There is a very different framing that I would use when I’m trying to impress folks, and it’s up to the beholder to decide which framing is more honest.
The financial disclosure aspects of this were inspired by Maia Bittner’s A Complete History of My Wages, which was in turn inspired by Ashley C. Ford’s appearance on Longform Podcast.
After you’re underwhelmed by my career story, if you’re still looking for career advice, some of my favorite pieces on that topic are: A forty year career, You only learn when you reflect, Some career advice, and Career narratives.
I grew up in Asheville, North Carolina in an upper-middle class family, eventually moving to nearby Leicester. I did not grow up writing software or take any computer science classes, but we did have a computer in the house from the time I was four. I did work on my high school’s IT team, formatting computers, replacing broken parts and so on.
I lived in western North Carolina until I went to college at Centre College in central Kentucky. It was a small school of about 2,000 students and the year that I graduated there were roughly seven Computer Science graduates including me. Only one of my classmates went to Silicon Valley after graduating, with the others staying in the southeast. I graduated from college without debt thanks to family assistance.
The week before I graduated from college, I started my blog, Irrational Exuberance. A few months later I left to spend a year teaching English in Japan. I was in a remote location, and spent most of my time outside of work writing software projects and blog posts. At one point I tried monetizing my blog, and got about $500 of donations mostly from one tutorial series on PyObjC, but that’s the only direct income I’ve made from it, and I haven’t tried to directly monetize it since roughly 2009.
I also did my first paid software work that year in Japan, when Joel Hooks hired me to write a custom internal Django frontend. Joel found me from my blog posts about using Django. I worked on the project after work and on weekends, and believe in total I got paid $500. To be exceedingly clear, I was grateful to get paid at all and Joel went far out of his way to make this possible for me.
Teaching English wasn’t the career for me, and after my one year contract ended I was ready to leave. I had no reference point on how to run a job search, but was fortunate enough that the Yahoo! BOSS team reached out to me about potentially contracting for them after I wrote a series of blog posts on their API launch.
However, Yahoo! had a series of hiring freezes where it was unclear for about six months whether they’d be able to hire me. I lived with my then girlfriend in New Jersey, and tried a number of different things to move forward. I did contract work with one of my classmate’s older brother to rewrite a Common Lisp application for a small company in Germany. We didn’t know how to scope an engagement properly, and we did not get paid for our work. I also partnered with my friend Luke Hatcher to launch Monocle Studios and ship our one completed project, an early iPhone tower defense game.
As those projects wound down, the hiring process with Yahoo finished up and I was hired as a remote contractor working from the East Coast with a team in San Jose. I’ve forgetten some of the details but I negotiated an hourly rate of roughly $75/hour which they accepted, and then six months later they gave the final offer it was at $50/hour, which I accepted because I needed the job. At the time I assumed they were simply comfortable screwing me, although looking back it’s equally likely it was an honest mistake.
Like many companies, Yahoo had a policy of only hiring contractors for a year at a time to minimize the tax risk of contractors being reclassified as employees. When I’d been there twelve months, I learned that I had to either move to Silicon Valley to take a full-time position or immediately lose my job. A month later I was living in San Francisco and a full-time employee at Yahoo. They initially offered me a base salary of $90k and a small number of shares (I don’t remember, but maybe $20k worth of shares over 4 years or some such), but after I accepted the recruiter called me back to say that they thought I wouldn’t stay long if I took such a low offer and they increased my base salary to $100k.
I stayed at Yahoo! for another year, at which point the team had lost most of the folks I enjoyed working with and I slowly realized it was toxic. I forget the Yahoo terminology at this point, but after a year of full-time work I was promoted from the first level of engineer (junior eng? L1? Not sure) to the next level (mid-level engineer? L2?), and got a raise of 13% and some number of options. I left shortly thereafter and never exercised or sold any Yahoo option, largely because I simply didn’t understand how they worked.
One of my previous Yahoo coworkers joined Digg and referred me there as well. Digg negotiated me down from my salary of $113k to roughly $105k. I was told I was over their compensation bands and it was a stretch to make even that offer. They must have given me equity but I don’t remember how much. I was hired as a Software Engineer. Compared to making $35k/year teaching English or failed contract work, $105k still seemed pretty good.
I joined at a fairly pivotal moment before the Digg V4 launch, after which point most of the tenured members of the team quit or were laid off. The company shrank from roughly 100 people in the company to about 25 over my first year. At some point I was given the title Engineering Manager without a compensation adjustment. As more folks left, I was the only remaining engineering manager at Digg and was given the title Director of Engineering and my salary was increased from $105k to $150k. I was also given an equity increase, although I don’t recall how much. I believe these compensation and title adjustments were exclusively due to the intervention of one person, Keval Desai, looking out for me, and it’s no exaggeration to say that in that moment he shifted my life’s trajectory.
As Digg exhausted its raised funds with a struggling business model and no hope of raising more capital, we ran an acquihire process and were sold to SocialCode. The Digg equity ended up having no value, but I was given a retention package as part of the acquihire. The other major draw was continuing to work with the team I’d gotten close to over the previous two years. All retention packages were negotiated by the outgoing Digg CEO on behalf of the team, and my salary compensation remained the same along with a retention bonus structure. The acquiring company did not offer equity, although they later experimented with issuing LTIPs. About a year after the acquisition, I was given the title of Vice President of Platform Technology, although I believe my compensation was not adjusted.
After two years at SocialCode, I left and joined Uber where I was referred by a previous coworker from Digg. I was hired with the title of Engineering Manager, the lowest engineering manager level. I’d been managing a team of roughly 13-15, but joined Uber to manage a team of five working on SRE. I think my base compensation was flat from SocialCode to Uber, and I believe it was $160k. I might have taken a small decrease in salary, but if I did it was in the range of $5k. I also got an equity package that was considerably larger than my previous compensation. I didn’t negotiate my offer, because they told me I was above their compensation range.
Despite having only three and a half years of engineering management experience, Uber was the first time I worked in a company with engineering managers who were more experienced than I was. Although the processes were far from perfect, simply being exposed to process at all created a period of tremendous personal growth and learning. After six months, I was promoted to Sr Engineering Manager due to the intervention of my manager, Oliver Nicholas. I did not advocate for my promotion or contribute to the promotion process. Over my two years there, we grew the team through external hiring from five folks to seventy. I learned a tremendous amount along the way. I also burned out with the workload.
Around that point, my manager joined Stripe and sometime afterwards I followed. I joined as an Engineering Manager to support a team of roughly 25 folks working on infrastructure engineering. I negotiated to roughly maintain my existing compensation.
To retain my equity after leaving Uber, I had to raise a low six figures of cash within thirty days, and an additional low six figures to cover taxes six months later. I was only able to do this because of the retention package from Digg’s acquihire, which I had left in a checking account for the last three years due to little knowledge about investment. (I later read A Random Walk Down Wall Street and the sidebar resources in r/financialindependence, both of which have been instrumental for my understanding of investing.) I agonized over this decision, which was almost certainly the correct decision if you’re spending someone else’s money, but less obviously correct when it comes to allocating your life’s earnings.
Joining Stripe was a career transformation for me. Looking back at my writing history, after I left Digg I had lost the ability to write, and it was only around the time that I joined Stripe that I reemerged as someone once again capable of writing. As you might imagine, there were some related personal circumstances as well. I learned and did a lot at Stripe, including writing An Elegant Puzzle, giving my first conference talks, and finally figuring out how to grow my personal network. Levels are private at Stripe, but to the best of my knowledge I was as senior as any other engineering leader who wasn’t the head of engineering throughout my period there. My compensation increased over my time there driven by the valuation’s growth from $5B to $36B in that period.
After four years at Stripe, earlier this year I got the opportunity to join Calm as their CTO, a role I’ve been building towards throughout my career at a company I’m deeply proud to be part of, which is where I am today. (Well, today I’m on parental leave for the next few weeks trying to figure out how to care for a newborn, writing a bit more than usual during his naps.)
There are a lot of themes to extract and discuss here, and I’ll only mention a couple before letting you go along your way.
First, it’s staggering how rapidly privilege compounds, especially financial privilege. If I’d graduated college with debt, I would have spent the Digg acquisition proceeds paying that down rather than saving it. If I’d spent it down, I couldn’t have bought my Uber equity (or would have lost much of the upside to a private buyers group).
Second, a lot of career success is picking the right companies, which is only easy in hindsight. Folks sometimes ask me how I am so good at selecting companies to join, and the reality is I’ve been picking companies during an era of extraordinary growth which has made it easy to look smart.