December 10, 2020.
This has been a uniquely challenging year, especially nationally and globally. Personally, it's also been a very special year for me and my family. I returned from parental leave this week, and it's felt like enough has happened this year and my return is enough of a transitionary moment to write a "year in review"-style post for 2020 now, rather than waiting for the end of the month. This post doesn't have some sort of deliberate intent, it's more of a mental recounting and accounting exercise.
Metrics pulled on Dec 6th for preceeding 12 month window.
The pandemic has killed two to three hundred thousand in the United States alone, which makes it by far my country's worst disaster that I've experienced in my life, and our response has been disheartening at best. Combined with the killing of George Floyd, my country's disdain for human life has never been clearer to me, although I realize that's in part a reflection on me previously not looking hard enough.
I've been fortunate to be impacted in ways that will be quickly forgotten. Despite being so fortunate, I often struggle to maintain grattiude, but this has been a year that shone so brightly on my good fortune and privilege that I've found a more consistent gratitude.
We welcomed our first child into our family, and while their first day was the scariest of my life, the days since have been healthy and joyous. Many women this year were forced to have, or recover from having, their child without their partners, but we were able to remain together throughout. My employer made it possible to spend 2.5 months caring for our child (across two separate stints: four weeks and six weeks), and Laurel was able to spend longer. We're both allowed and able to work from home in our jobs, and the companies we work at have weathered the pandemic thus far. We bought a home in late 2019 that provides us a comfortable, productive working environment. There's a lot more I could write here, but suffice it to say that seeing how my privilege has protected me from this year when so many others are suffering, has been eye opening.
I'm grateful for that, and it also highlighted for me that I need to be doing more to exercise my privilege outside of my professional work. I've set a monetary target for donating going forward, which is something I've done in an ad-hoc and usually minimal fashion before. Equally importantly, I'm working on getting more deliberate in how I donate. We've seen various charities get overwhelmed with surges of donations that they're ill-equiped to distribute, and I want to develop an intentional approach to donations that are grounded in impact rather than participation. To do that, I am focused on educating myself on three or four specific areas and how to donate towards them effectively. I'm refining the list, but roughly: increasing voting access (automatic registration and voting-by-mail), tax reform (simplify tax code to reduce impact of active tax management strategies, increase percentage of taxation born by highest earners, remove barriers to a more automated tax system for folks with simple tax scenarios), and increasing economic mobility (I don't understand what works here at all, definitely need to do more research).
Looking back at my 2019 in review, I didn't set goals for the year, but instead set goals for the decade, which I'm particularly grateful for given the 2020 I anticipated and the 2020 that happened are very different animals.
Goals that I made progress on in 2020:
Some goals I didn't make much progress on:
I also worked on a bunch of stuff not tied to these goals, which I'm happy about. These are rough goal posts, not a treasure map to somewhere special. I'm not planning to revise these goals for this year, but I suspect I'll spend more time in late 2021 revising them a bit.
I joined Calm in January of this year as their CTO. In my professional career, I've never experienced a year like this one where it felt like each week brought a new national or global crisis, and weathering that has been hard, but you also learn a lot from weathering something like this together with a team.
It's a rare privilege to work with this engineering team, and you can get some sense of the work by reading the blog posts at eng.calm.com, and also the section on Working in Calm Engineering. It's also been a learning year for me in my first executive role, and I've learned a lot from Calm's leadership team, and am proud to be a member. I'm sure I'll write more about that at some point.
Our app has evolved quite a bit this year as well, and I'm even more excited for the work we have on deck for 2021. Similarly on the business side, there were several discrete events that were pretty special, including our partnership with Kaiser Permanente, our partnership with American Express, and of course, Harry Styles.
An Elegant Puzzle was published on May, 28th, 2019. I shared some sales numbers October at the 5 month mark, and have updated those numbers through November, 2020. In addition to breaking 30,000 total copies sold, it sold just above 1,000 copies last month, which is pretty exciting since we haven't done much to promote it this year.
|Format||Oct, 2019||Nov, 2020|
I don't have the exact ebook versus audible versus print numbers from October, 2019, but the ratios were 60% print, 10% audible, 30% kindle, if you want to do a rough estimate.
This wasn't a financially motivated project–almost all advice I've ever heard about writing technical books cautions against that goal–and I haven't earned out of my advance, but I'm getting pretty close. If you want to write a book as a financially motivated project, self-publish like @swyx and @GergelyOrosz have, or write Designing Data-Intensive Applications.
My largest project for 2020, likely be my largest project for 2021 as well, has been StaffEng: a collection of stories of folks' experiences of reaching Staff-plus roles, and a series of guides synthesizing their experiences into advice. As of today, it has ~16 stories and ~30 guides. You can see the gritty details on Github at lethain/staff-eng.
Starting with this first tweet, it's gotten pretty good traction, having 237k pageviews since March. Considering the site and content are all new, I'm pretty happy with that progress. It's also an experiment in whether a more focused site can get content to rank for relevant search terms on Google. So far, not much success with that SEO angle, but the content has worked well on social media and news aggregators. The mailing list has grown from 0 to 3,421 subscribers, which is larger than my blog's despite being shorter lived.
My tactical goal is to publish it into a book by mid 2021, but my hope is to influence how the industry views these roles–to some extent anyway. More about the book aspects of the project over the next month or two, still a few important decisions to make around publishing.
As of 2020/12/6, I've written 78 posts, so I assume I'll finish around 80 before the clock strikes midnight on January first. That's up about a dozen from 2019, when I wrote 65, and about the same as what I wrote in 2018 (75). I don't set writing volume goals, so I'm neither particularly proud nor distressed by this volume.
My self-selected "most impactful posts" of the year: Your first 90 days as CTO or VP Engineering, How the Digg team was acquihired, Work on what matters, Managing technical quality in a codebase, and Write five, then synthesize: good engineering strategy is boring.
Pageviews for the year were 592k (+209k from 383k in 2019; +382k from 210k in 2018). Five of the seven most trafficked pieces were written in 2020, one in 2019, and one in 2011. Those top pieces were: Introduction to architecting systems for scale (2011, 82k views), First ninety days as CTO or VP Engineering (2020, 37k views), Build vs Buy (2020, 19k views), Digg acquihire (2020, 14k views), Managing technical quality in a codebase (2020, 13k views), A forty year career (2019, k views), Staff-plus engineer resources (2020, 8k views), An Elegant Puzzle (2019, 7k views), Python GraphQL Tutorial (2019, 7k views), and War Card Game in Python (2014, k views).
My blog's weekly newsletter grew from 1,318 subscribers to 3.061 (+1,743 YoY). It's not really a newsletter in the spirit of a Substack, just a weekly collection of recent posts, but it's worked well for me thus far. It has also changed my posting strategy a bit, scheduling better posts to land in the newsletter's first slot.
On a totally different aspect of the blog, my blog is still on Kubernetes, which I realize is a self-parody, but it's been helpful for keeping me current with GCP and Kubernetes itself. A few years ago when I rolled this out, I had to build my own continuous integration scripts, but I was able to deprecate them this December with about an hour of work. GKE supports that workflow natively now, which is an awesome improvement. Equally excitingly, Google's load balancer can manage SSL certificates for you (which AWS ALB has had for some years), which will allow me to deprecate my somewhat convoluted LetsEncrypt setup and Nginx pods. I haven't actually done that yet though because the zero-downtime migration path is a little bit messier than I've felt like handling.
I've done a couple of small community building things this year, which have both been great learning experiences. In January, I put together CTO, VP Eng and Staff-plus Engineer learning circles, and while most didn't get far, the one that I personally stayed involved in is going great, and has introduced me to a group of folks who have taught me a lot already. Unfortunately I can't coordinate additional groups and my group is currently full, but my experience is that this is an underserved area and you can likely run one yourself!
The other community building project is the techwriters discord, which is a more recent effort. It's still too early to know whether this is going to fade into inactivity or turn into something durable, but again it's a place where I've already learned quite a bit from folks. If you're interested, please come join us.
In addition to the previously mentioned numbers, a few notes on social media distribution. Twitter followers grew from 8k to 11.6k (+3.6k YoY), generally adding 200 to 400 a month, with a spike in January around Your first 90 days as a CTO or VP Engineering and slightly upshifted since October around StaffEng content. LinkedIn connections grew from 8.9k to 10.5k (+1.6k YoY), although I relied on it less as a distribution vehicle than I did in 2019.
I did a good amount of speaking in 2019, both to support An Elegant Puzzle's launch and to create visibility into the work we were doing in Stripe's Foundation organization. This was a great learning opportunity for me, and one of the things I learned was that I'd generally rather write than speak.
With that in mind, I prioritized writing in 2020, but I did do some speaking and podcasts in 2020, both in support of Calm's engineering organization and StaffEng. I'll be honest that I didn't miss speaking, and I suspect that 2019 will be my career's volume high-point for speaking, although I do have a goal to continue speaking at a reduced rate.
That's a wrap. I hope y'all have found bright spots in what has by-and-large been a horrific year. If you do write about your year, I'd love to read it!