tl;dr> I've decided to take a new job as an early engineering manager/tech lead, at a data analytics/database startup. And I hope to begin blogging/journaling here more about software development and the way that software and databases interact with other things that grab my interest.

This post doesn't really have a narrative. It's just a collection of thoughts. I'm sort of out of the habit of writing blog posts, and one of the things that's gotten me stuck on writing in the past year or so is feeling like the narrative of any given blog post is not quite right. [1] But we have to start somewhere, and the story will happen over the next few posts.

In the middle of 2020 I left a job at a company that I'd been at for almost 9 years. It seemed like the world was on fire, what it meant to work at a globally distributed tech company was changing (and still is!), and it felt like a good time to make a change. But to what? I've spent the last few years working on different projects and exporing different things: I've worked on cool distributed systems problems, I've worked on product-focused (backend) engineering, I've worked on familiar latency-sensitive compute provisioning and orchestration, and a little bit this and that between.

I've identified a few things about jobs and working in this process:

  • while remote work is (and has been for a while) definitely a reality of our world, [2] the one thing you can't really accommodate for is timezones. A friend, zmagg, claims (and I believe this) that time differences between 9 hours and 16 hours are basically unworkable as there isn't really enough overlap to really collaborate.
  • if the center of gravity in a company is in a place, or in an office, remote teams really have to be intentional about making sure to include people who are outside of that bubble.
  • the interesting parts of software engineering is what happens between people building software on a team: programming is a means to an end, and while the tools change every so often, how you build together is really fascinating (and hard)!

My new job is different from any job I've ever had: First, I'm going to be working on building and developing teams and helping support the engineers and the engineering teams rather than working directly/full-time on the software. I probably will end up doing some software work too. This isn't that novel: I've definitely done "the management thing" a few times of times, but more of my time will be doing this, and I get to be more intentional about how I approach it. Second, my work (mostly) has been in support of products that other people--largely my coworkers develop, in the sense that the work that I'm drawn to is the internal infrastructure of software. I like infrastructure a lot, and I think I tend to focus on these kinds of problems because I feel like it gives me the biggest opportunity to make an impact. In this sense, in a lot of ways this role is very similar to my previous jobs: building the infrastructure to enable and support the people working around me. Only this time it is (not entirely) software. I'm actually looking forward to mapping concrete business goals to actual research and development problems and projects, helping to provide context and prioritize projects without needing to filter through layers of indirection.

I have been blogging in one form or another (mostly this form) to greater and lesser (mostly lesser) extent for a (really) really long time. The landscape of the way we interact on the internet is changing: twitter is really a shell of its former self, "big" social media networks (facebook, instagram, ticktock, twitter, etc.) have really segmented by generation and region, and little social media sites are still niche.

For my part, I've been spending more time in "group chat," with sort of wacky combinations of random friends. This isn't new for me, and I take a lot of joy of building out very small communities of folks. Also, as I think about it, the thing I most want to do is have coversations with people. Sometimes that conversation is longer form (like this,) and sometimes, it's more one-to-many (like this sort of half baked telegram channel idea that's just sort of a "things I would have said on twitter" but as a chat,) but rarely is it "I would like to become a publisher," or I want to use blogging as a way to market some other entrepreneurial effort. Not that there are anything wrong with these reasons for blogging.

It's easy (as a software engineer, though I think this probably holds true for anyone who process for "building" thing requires a lot of just "thinking," about things,) to do a lot of the thinking part in private and to only show up with the "right" solution (with maybe a few alternatives for rhetorical effect,) or to mostly focus our writing on conclusions reached rather than questions asked.

So perhaps, (and we'll see if holds,) I can use this space more as a journal and as a collection of questions and (perhaps) failed attempts and less of news feed.

[1]I think I often get stuck on where to start, and how much exposition to provide for the topic. I think too much time as a technical writer where my job was to explain difficult concepts means I can (at least try) to start to start to early, and then feel like I get to the end of a post before I've said what I think needs to be said. The answer to this might be to just write more and post more, so the exposition is just in the scroll back rather than trying to do too much in one post. And to always err on the side of not enough exposition. Let me know, though if you have an opinion on that one.
[2]companies are often necessarily global in scope, and having a team or project spread between different offices isn't all that different than when it is spread between a bunch of people's homes. Once you have more than one location, n locations are pretty much the same.