Engineer Three

I took the Token Transit back-of-house administrative portal down on my first week of the job and I reflexively remember firing up a Google Doc and writing down section headings: "Detection", "Escalation", "Response", "Prevention" and starting to fill out an incident timeline. As a Privacy Incident Manager On-Call at Facebook, I spent a lot of time listening to incident review and coordinating incident response. I asked around in the office, curious where we kept the incident documentation. There was a bit of a shrug.

The worst thing I found about joining an early startup was the lack of process.

The best thing I found about joining an early startup was the lack of process.

I joined Token Transit as engineering hire number three. I won't extrapolate this generally, but I think for us, that was the number where the company needed to start instituting just a little process. The first and second hires probably join the co-founders committing to main and deploying off their laptop and promising that at some point in the future, things are going to change.

It is good to have joined a company in search of process, by the way. I think early startup life is defined by a relentless focus on shipping velocity. It was good to have joined a Token Transit at a time where we were growing at such a rate that the lack of process was causing us to step on our own toes. You just have to accept a certain level of playing it fast-and-loose as an early-stage engineering hire. However, after engineer three joins, I think there's just enough tech debt that you just can't find answers grepping around the codebase and you start stepping on each other's toes.

I was reluctant to come in as a new-hire and complain about the lack of process, but at the same time, it wasn't working for me. I think for me, process was best framed as helping me, the newest hire, get up to speed and productive.

Code review would help me, because I'm committing spaghetti right now and re-implementing already implemented method bodies. I need the mentorship that comes from critique. Incident review would help me because I keep accidentally taking down services and I need to make sure that we're building guardrails so we don't do that again. Continuous cloud-based deploys would help because we are facing race conditions deploying things off our laptops.

I found that advocating for my own needs and living out the example of process, even at the cost of my own immediate productivity, often produced the best process outcomes. I started our push for code reviews by saying that I, personally, would put all my code up for review and would not land it without signoff from another engineer. This was because I needed the feedback otherwise I wouldn't acquaint myself with how things were done. I would write an incident post-mortem after every outage and would invite everyone to a meeting to discuss it. I didn't have the authority to mandate these behaviours, but I was going to do them because I needed to learn from the wealth of expertise around me.

Surprisingly, that worked. It's not that people didn't want these processes in-place, I do think that modelling that behaviour drove emulation, which eventually drove process adoption. The tooling then followed. After we started using GitLab's PR review tool, we quickly found code reviews clunky, which made it possible to introduce Graphite. When our incident documentation became a mess, we migrated it all to a Notion Database.

We certainly aren't perfect, but I wasn't expecting to replicate much of what I loved at Facebook at Token Transit: Continuous deploys, blameless incident reviews, stacked changes-based code review, and much more. A hire joining today would see this process as the natural process of a company growing up. The reality is, being engineer number three was a real opportunity to gently shape a company and build the tooling and processes I would enjoy working with.

We're still growing and on the precipice of doing even more interesting work, bringing a lot of big tech discipline into the public transportation sector and we're still hiring!