Knowing what's important
I mentioned last week that this month was my one-year anniversary at TenantBase: I have officially been living the startup/work-from-home lifestyle for a year.
This has gone by exceptionally quickly, but also slowly, to the extent that I can hardly remember the cadence of my weekdays before this life. There was more public transit. There were more badges and org charts. It feels distant, which is I think a sign of my current comfort level and also how life tends to be absent of convenient touchstones after college.
Another exciting milestone at work happened this week, though: I fixed a bug. Not any bug: perhaps the longest-running bug in the codebase, one that was notoriously hard to reproduce and impossible to pin down. A bane of my existence bug.
(Naturally, it was a bug I introduced.)
Four things about this bug:
- It was not a particularly high-impact bug. If it was, we would have dedicated time and energy to solving it. It was just annoying enough to stay on our radars but not annoying enough to focus on.
- The root cause of the bug was total short-sightedness. The root cause of the bug was me looking at a way we handled something, noticing a possible issue, and thinking “nah, this probably won’t be an issue, it’s not worth examining more closely.”
- The fix for the bug was three lines of code, not counting the hundreds of lines of code required to discover the fix.
- The bug took probably ten hours of off-and-on again work over the course of, what, eight months? It would have taken me fifteen minutes when originally writing the code to double-check what I was doing and make sure the bug wasn’t present/
It is hard to explain how gratifying it is to fix these kinds of things. It is also hard to explain how frustrating to know how much anguish I would have saved myself if I had put in that initial effort and prevented the bug in the first place.
You can’t pore over everything and remain productive, but you can pore over the important things.
That’s the trick, though. So much of being a developer is knowing what’s important.
Technically speaking
I spent this morning migrating most of Buttondown’s frontend codebase to TypeScript. If you don’t know what TypeScript is, don’t worry: that’s not actually particularly important.
It took me around four hours (initially onboarding to TypeScript was blissfully easy, and then migrating all of my existing code over was the hard part [especially Vue]) to … not really solve anything.
TypeScript doesn’t add any business value to Buttondown. It doesn’t make it safer or faster (if anything, it slows down my deploys a little.). It is supposed to increase my development cadence, making it easier for me to write and test increasingly complex code, but I’ll have to wait a week or so to see if that actually happens.
Anyway, the time I have to spend working on Buttondown is precious — in the same sense that every Sunday morning is precious. Sometimes I want to spend that time actually creating value (and trust me, it still feels gross to unironically use a phrase like “creating value”); sometimes I want to spend that time messing around with a new technology. It’s an activity that’s situated less next to “making a project more successful and sustainable” and more next to “solving a crossword”.
Fun is a valuable exercise in of itself, and if there’s any worry I have with my side projects its forgetting that messing around on a computer is inherently pretty fun.
Three things I really liked this week
- geocities.institute, a sort of archaeological dig behind one of the most influential early web platforms.
- An Instagram account dedicated to Ukranian mosiacs.
- A Japanese cats-and-dogs comic strip.
Happy Sunday
I hope your code compiles quickly, and on the first try.