Letting go
Ever since I joined the web team at Unsplash 6 years ago I've looked through and digested every single change to the codebase. It's been a long time coming but it's finally time for me to put an end to this. I'm writing this to try and understand exactly what I'm giving up and to help me process how to move on.
At the beginning (and for a long time afterwards) the team was just me and Sami, so it made sense that I would review every PR. When we eventually scaled the team up, I continued this habit.
I think this was primarily driven by my passion to create reliable and resilient software, contrary to most of the software I use on a daily basis which is riddled with bugs. If I could fit as much of the system inside my head as possible, I would be able to debug and reason about issues on a whim. During code reviews I would be able to identify problems before they escalate and identify opportunities to improve our infrastructure or abstractions. I honestly believe this paid off on many occasions, but I'm well aware there are costs as well (namely, time).
Another driving factor was my sense of responsibility. For 3 years Sami and I had practically built our own version of the Next.js framework, from the ground up. Working in an early stage startup meant we had to move fast, so we rarely had time to write documentation. We had many gradual migrations ongoing simultaneously (and still do). So when new people eventually joined the team, I felt an enormous sense of responsibility to share all of this knowledge and to pass the torch on.
Fast forward to today, the team is now 7 people and I'm juggling new responsibilities both inside and outside of work. I'm coming back to work after 4 weeks of paternity leave, during which there have been 1498 files changed, 12364 insertions(+), 9096 deletions(-)
. It would be an immense undertaking for me to review all of the changes that happened whilst I was away, so I'm finally forced to accept that it's no longer possible for me to stay on top of everything, as much as I'd like to. It's hard for me to give this up, but at the same time, it's a big weight off my shoulders. It was too much work for me given the pace of a team this size, and even when I was working relentlessly I was still a frequent bottleneck during code reviews.
Given that code review was a large part of my role, I'm honestly not sure what my role is now, so as of right now my strategy is to treat this as if I'm starting a new job in a brand new codebase and company where I know nothing. I plan to go back to basics and focus on what I enjoy most—creating fast, accessible, and delightful UIs on the web.