3-Year Spotiversary

Last month marked my 3-year anniversary at Spotify (and living in Sweden). There's that saying "time flies when you're having fun", and it couldn't be more true, considering that for me, challenge equals fun.

I joined a platform team that provided support for the Desktop and Web applications, which means plenty of web-related technologies. Lately, and mainly because of Bazel (it is no secret that we're transitioning our build systems to it), I'm expanding to other platforms, but I remain for now at least as one of the go-to individuals for Bazel+web issues.

And can't avoid feeling the situation kind of ironic because three years ago, I had done zero TypeScript [1], zero React [2], and my JavaScript knowledge was a decade old [3]. And of course, I had no idea Bazel even existed.

The reality is that few things give you more knowledge than "field experience": You face tasks and problems, you solve and overcome them, and you learn along the way.

I've worked on projects like rewriting and replacing the caching layer (I also handled the backend replacement, in a real "full-stack" way 😉), to setting some hopefully solid Bazel-for-web foundations (still ongoing, but already in motion) and interesting quests like "let's migrate our web monorepo to a different testing framework" [4]. And I now feel comfortable assisting in debugging broken pnpm workspaces, finding Node.js module cache Mocha bugs [5], and in general keeping an eye on all Node.js, TS and Bazel ecosystem news to see how we can improve our Bazel web experience. Plus other topics I can't share (for now at least).

I not only do "web"; I do more Python & Starlark, small amounts of Go now and then, plus of course Bash scripts (I wish we did less, but it is too convenient and widespread). And I still see myself more of a backend guy than a full-stack guy, both in regard to where I'm faster "delivering" and where I prefer to spend most of the time. But I'm happy to be now "between worlds" and be able to compare such different development ecosystems.

I'll finish by leaving as a cliffhanger [6] a thought that now has grown into almost a firm belief: I believe that the web tooling ecosystem is a house of cards, based on utterly broken foundations.


PS: I tried a different writing format for this post, with plenty of footnotes, instead of drifting each sentence's main topic because of some details. If you'd prefer my classic, longer paragraphs, please let me know!

[1]: I consider my TS level probably average now, and mostly because I don't practice too much.

[2]: I still suck at React because I only "solve problems": A small refactor here and there, some debugging and fixing specific issues. Often testing & mocking related.

[3]: I still find funny the concept of const being "constant reference with mutable data" instead of a pure constant.

[4]: I think I could write a guide about how to migrate away from Jest. Maybe I should...

[5]: And failing to fix the bug. But you also learn from failures, and nothing prevents from attempting again in the future.

[6] : For a future post, but it'll need extra careful preparation.

Tags: Bazel Development Javascript Offtopic Typescript

3-Year Spotiversary article, written by Kartones. Published on