The Mid Career Shuffle

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.

Why Write

I've had a blog [1] for more than 15 years, and I've found this experience to be generally quite rewarding. I've learned a lot about writing, and enjoyed the opportunity to explore a number of different topics [2] in great detail. While I haven't blogged as much in recent years, I've been thinking in the past few weeks about getting back into writing more regularly, which has lead me to reflect on my writing in the past and my goals for this in the future.

First, the blog as a genre has changed fundamentally in the last 17 or 18 years. In 2000 or 2001, blogs were independent things that grew out of communities (e.g. MetaFilter, or web-diary/journaling) and were maintained by independent writers or small groups. Then the tooling got better, the community got better and eventually started to segment based on topic, and finally the press [3] gained competence in the form.

Publishing a blog today, is a vastly different proposition today even in the recent past.

True to my form, this leaves me with a collection of divergent thoughts:

  • maybe the "write everything in one blog even though the topics are not really of interest to any specific group" approach that I've always taken. More distinct blogs means more writing (maybe a good thing,)
  • having a writing practice is good for focusing thoughts, but also for sharing and distributing understating, and I think that sharing understanding is a really important part of learning and growing, and I miss having a structure for these kinds of notes.
  • perhaps, it would make sense to outsource/hire a freelancer to take care of some editing and marketing-adjacent work, which is more required if you want to engage with users more consistently but that I find distracting and outside of my ability to focus on properly. The problem then is figuring out how to fund that work in a longer-term/sustainable way.
  • In the past RSS has been a (the?) leading way to distribute content to serious readers, but that isn't true now and likly hasn't been true for years. So while I feel able to write a lot of things, I don't know what the best way to engage with regular readers is
  • I used to think that I wanted to organize group blogs, and while I think that blog-discussions are fun, and I think there is merit to combined efforts, I'm less interested in doing the organizing myself.
  • There was a period where I wasn't blogging much because my day job was very writing focused, and I needed side projects that didn't involve the English language, and I spent a long time focusing on learning programming, which took a lot of time. Now that work mostly involves programming, and only a little writing, and I've had some time to recover as a writer, it feels like I have some space.
  • I'm not really sure how to host a blog in 2018. The old set up and server I have is more than functional, but there are a lot of services, tools, and patterns that I'm not familiar with and I have some learning to do, even though I probably mostly just want to write things.
[1]In one form or another, though the archives are all here.
[2]I've written blogs about Philosophy, Hand Knitting, Technology, Documentation, Programming, Science Fiction, Folk Music and Dance, and Economics.
[3]Both old media institutions (news papers, television companies, book and magazine publishers) and new institutions that grew out of blogging itself (e.g. HuffPo, Gawker, etc.)

Project Orientation

(or my latest attempt to do things in a more "project oriented way.")

This post is about recent projects, projects that I'm working on, and how my work has changed in recent months.

A couple of weeks ago, I finally posted all of the content that I've been working on for the new, revived Cyborg Institute. While the book on systems administration itself had been mostly done for a while, I'd delayed for two reasons:

  1. I wanted to have a couple of other projects completed to demonstrate that the Institute as a project wasn't just isolated to book-like objects.
  2. I wanted to have some infrastructure in place to be able to sanely publish the Institute site without using some gnarly content management system. [1]

The end result is that in addition to the book, I've put together a few other projects and documentation. The more exciting thing is that I might do more things like this in the future.

In addition to a lot of day-job work--forthcomming releases and team growth are eating a lot of my time--I've been working on a series of wiki pages (and related blog posts,) that address "information debt that happens when organizations don't put resources and energy into maintaining resources and "knoweldge." Expect to hear more on this topic.


The truth is that I really like working on bigger projects. Writing blog posts and participating in online conversations has been very rewarding to me over the past ~10 years, I feel like I've hit a wall: I've written ~830,000 words on tychoish.com, and am frustrated that there's not a lot to show for it:

  • readership is steady, even increasing, but not inspiring,

  • I don't actually want to work as a blogger, and

  • most importantly the work I've done here doesn't really build to anything more than a half-dozen or so blog posts.

    While there are themes throughout all of the posts, the work isn't very rigorous, and it lacks a certain kind of depth.

    So here I am, writing books-like objects things about technology that I hope are and will be useful for both technical and non-technical audiences, as well as compiling the little things that I hack on for other people to improve and benefit fromm, and writing fiction (that I may try and publish conventionally, but I may end up self-publishing using a similar proccess.) The goal is to:

  • Write things with more rigor, including better citations and research.

  • Work on projects that address topics more comprehensively.

  • Produce, document, and maintain scripts and other programs that I write rather than endlessly critique existing tools and approaches. In short, less talking about stuff and more making stuff.

Let's see how this goes!

[1]All content management systems are gnarly.

Announcement Cycle

Things you should know about, dear readers:

  1. I published a book and released a mess under the banner of the new Cyborg Institute. These projects are:
  • Systems Administration for Cyborgs

    This is a high level guide that introduces key systems administration knowledge domains and concepts. Possible subtitles include: "How to think like a systems administrator," or "Just add man pages."

    Read it now. Tell your friends. And please, send feedback and comments.

  • Taskfile

    Rather than use org-mode, I've taken to using a sort of hacked together makefile that aggregates task items from other textfiles. It works surprisingly well.

  • stl

    The idea behind this script is that it would provide a good way to report activity in a regular way so that I'd be able to look back over a log file and see how much I'd written (i.e. report word counts,) and also do a bunch of other straightforward reporting and logging.

    I plan to do a revision of this that's a bit less complicated and a bit more modular, but it's a nice proof of concept.

  • stack

    I've been meaning to publish this for a long time, but this project contains configuration files for emacs and StumpWM, with other systems to follow.

  1. I've made a bunch of wiki pages on Information Debt. Current pages include:

  2. I was planning on speaking at the Open Help Conference, on August 10-15th, 2012. But then, United Airlines canceled my flight and I spent the day in Terminal C of Newark Airport and ultimately couldn't make it for the conference. Which is a huge shame. My talk was going to be is about involving developers in documentation processes, about maintaining documentation, and about working with documentation "as code."

    The site I made for the talk is at: http://tychoish.net/oh-2012

    And the last draft of the slides are at: http://tychoish.net/oh-2012/slides/

(I was speaking on behalf of `10gen <http://10gen.com/>`_, my employer, `MongoDB <http://docs.mongodb.org/>`_ `documentation project <http://docs.mongodb.org/>`_ that I work on by day (and sometimes night.))

Lazy Sunday

I've had a nice quiet weekend, the first such weekend in quite a while. It's nice to be able to relax, work on projects without deadlines, and avoid all of the editing that I ought to be doing.

Some notable accomplishments, current projects, and other events in the last few weeks:

  • If you ever visit tychoish.com in your web browser (as opposed to by way of its aggregation,) you'll note that the design has changed somewhat.

    This is the design that I've been using for my personal wiki for months, and so I'm quite used to it, but feedback is welcome.

    The design change has inspired a bit of introspection, hence this post, and perhaps some of the posts that will follow. Please bear with me.

  • Months ago a friend of mine said "some of us might like to know how you're doing every now and then, and your blog is just stuff about obscure technology."

    Guilty as charged. Recently, I've been much more interested in using this blog as a scratch space for projects that I don't have quite enough time to pursue in appropriate depth.

    Having said that, I think (or hoped,) that I've calmed down a bit in recent months and years: My career/professional identity seems a bit more stable. I'm doing a better job at focusing big projects, which means some shorter posts and more personal posts may be in order.

  • I got a new computer last week. I'm working on a post that addresses this in a bit more depth. In short it's great. So my largely unnecessary justification is:

    • A smaller machine, which is better on my back when I am walking around.
    • Beefier system, which means I can compile things quicker (and I've been doing more of this recently.)
  • The ability to dedicate the older system to some stay at home things: having a working desk at home, playing music, running some buildbot stuff, and the like.

I've realized that even though there are little things that I might like to change about how my computer works, and things that I'd like to setup and get working for the most part, things just work. And that's really great.

  • There's a host of stuff that I'm working on that probably isn't apparent to the internet:

    • My day job. I'm doing awesome documentation things for a neat New York City database software company/open source project that you've probably heard of (if you're into this kind of thing.) It's rewarding, interesting, and it means I can spend all most of my time day making things.
    • I've been working on submitting documentation patches to a couple of open source projects: buildbot and MediaGoblin. I need to do more of this work.
    • The editing pile. Currently on tap: a mess of blog posts, the prologue of my most recently drafted novel, and some of the last little pieces of the Cyborg Institute launch. Speaking of which that should happen in the next week or so.

    Next up? More of the novel and suggestions from frist readers of the systems administration book (see next item.)

  • Never to be deterred, I'm hard at work on the outline for another novel. The plan is to have something I can start drafting in earnest by the end of the summer. I feel pretty good about the project, although as I was working on an outline last night, I changed the last third of the book. Oops.

  • The systems administration book. Available via git today, With general release following shortly. All feedback as well as pull or merge requests with comments and suggestions are all welcome. See the following for git repositories

    (Both are identical.)

    The cyborg institute listserv would be a good place for bug/issue tracking at least for now.

  • On the topic of editing, I've recently discovered the one clause per-line formatting style.

I've long attempted to keep lines short to promote cleaner diffs, but in truth, if you end up reflowing paragraphs, the resulting diffs are basically useless. I've encountered one-sentence-per-line tactics, which seems like a good idea, except that sentences often exceed 80 characters.

I'm not yet decided on the subject, especially for writing longer sections of text, but it does make editing easier.

Onward and Upward!

2011 Retrospective

For the most part, I'm quite happy with everything that I was able to accomplish last year. I've moved cities (for the second year in a row) and last year I changed jobs twice: in both cases, I think the current will stick for a while. And I'm working on other projects, with some impressive speed. Last year wasn't been great for finishing things, but I guess there's room for improvement this year.

After a fair amount of professional angst I'm finally doing pretty much exactly what I want to be doing: I'm writing a substantial/total revision of a software manual for a company developing an open source database system. I'll leave you to figure out the details, but it's great.

A couple years ago, I said to myself, that I wanted to be a "real technical writer," which is to say, work with engineering teams, write documentation and tutorials for a single product or group of products, and operate on a regular release schedule. I've done a great deal of writing for technology companies: from project proposals and journalism, to tutorials and content for distributors, to white papers, marketing, and sales materials. Delightfully, I've managed to get there, and in retrospect it's both somewhat amazing, and incredibly delightful.

A while back, I had dinner with a friend who's been doing the same thing I do for a long time (we know each other through folk dance and singing,) and by comparing our experiences it was great to learn that my experience is quite typical, both in terms of the work I'm doing and the procedural engineering practice frustrations (e.g. "What do you mean you changed the interface without telling me?!?!")


At work we have this thing where we send in an account of what we did during the day so that other people know what we're working on, and so that we can keep our team on the same page. After all, when you're all looking at computer screens all day, and in a few different time zones, it's easy to loose track of what people are working on.

At the bottom of these emails, we're prompted to ask "what are your blockers and impediments." Often I say something clever like "Compiler issue with Spacetime interface or Library." Or something to that effect. It feels like a good description of the last year.

Onward and Upward!

Task Updates

Life has been incredibly busy and full lately and that's been a great thing. I've also been focusing my time on big projects recently rather than posting updates here and updating the wiki. And then I have this day job which basically counts as a big project. While I like the opportunity to focus deeply on some subjects, I also miss the blog.

tycho is conflicted about something. Shocking.

In any case, I want to do something useful with this space more regularly. So here I am and expect me more around these parts.

I've been working on a total refresh of my Cyborg Institute project. I want it to be an umbrella for cool projects, nifty examples, great documentation, and smart people [1] working on cool projects. If that's ever going to happen, I need to get something together myself. The first release will contain:

  • A book-like object, that provides an introduction to the basic principals of Systems Administration for developers, "web people," and other people who find themselves in charge of systems, without any real introduction to systems administration. (Status: 70% finished, with a couple more sections to draft and some editing left.)
  • A Makefile based tasklist aggregator, inspired by org-mode but largely tool agnostic. (Status: 95% finished, with documentation editing and some final testing remaining.)
  • A logging system for writers. I use it daily, and I think it's a vast improvement over some previous attempts at script writing, and I did a pretty good job of documenting it, but it's virtually impossible to manage/maintain. Having said that, I always wanted to rewrite it in Python (as a learning exercise,) so that might be a cool next step (Status: Finished save editing and an eventual rewrite.)
  • Emacs and StumpWM config files, packaged as "starter-kits" for new users. I have good build processes for both of these. I don't think that I need to document them fully, but I need to write some READMEs. Since there's a lot of redistribution of others code, I need to figure out the most compatible/appropriate license. (Status: Finished except for the work of free afternoon.)

Probably, all of these Cyborg Institute projects will get released at about the same time. The blockers will be finishing/editing the book and editing everything else. I might make the release a thing, we'll see.

Other than that, I:

  • Updated /technical-writing/compilation.
  • Finished the first draft of this novel. Editing will commence in June. I've also started planning a fiction project, for a draft to begin in the fall?
  • Wrote a few paragraphs on the ISD page, but I'm starting to think that as my time becomes more limited, that the critical-futures wiki project, as such, will probably be the first thing to fall on the floor, unless someone else is really interested in making that be a thing.

Onward and Upward!

[1]My intention for the Cyborg Institute has always been (and shall remain,) as a sort of virtual think tank for cool projects put up by myself and others. You all, dearest readers, count in this group.

Update Pending

It's been a while since I've written one of these "clip posts," but there's no time like the present to get started with that. I hope everyone out there in internet-land is having a good end of the year. I'll try and get a retrospective/new years out in the next few days, and avoid belaboring the point here.

As I said last friday it's my intent to focus here on shorter/quicker thoughts, and focus my free writing/project time for work on longer projects (fiction, non-fiction, perhaps some programming.) So far so good.

Other Cool Things on the Internet