A New Year Dawns

First of all, happy new year!

It’s been awhile since I wrote anything, and there are many things I’d love to write more about. Sadly, time is a limited resource and I’ve been managing to keep quite busy. For now, I’ll stick to an update about a wave of change in my life.

Glowing memories

Over the last year and a half I’ve had the absolutely wonderful pleasure of working with my dear friends at Asquera in beautiful Berlin. It has given me ample opportunity to learn, teach, and get experience with a wide range of topics. I will carry the lessons I learned, and the passions I acquired with me for the rest of my life.

Not only did I have the chance to work with early stage tech startups, non-profits, and multinational companies shipping thousands of physical products daily, I also got to teach at companies I admire and respect, and work in a professional capacity to organize a number of successful conferences. All of it has been made even more enjoyable by the awesome people I got to work with, and the incredible folks they introduced me to.

If you’re interested in doing some client work alongside incredible, ethical, and competent people, learning German, or wandering Europe, I could only reccomend working with them.

The simple passing of time brought me into a situation where my lease was over, and this meant I needed to move. For those not aware, finding new flats in Berlin is rather difficult, and I wasn’t really looking forward to this.

Finding direction

I started looking half-heartedly well over a month ago, but I struggled. It wasn’t because I wasn’t finding things I was interested in, it was because I simply didn’t know what I was looking for. I discovered that both in a flat, and in life, I was in a bit of a passive, limbo state.

I was, in a way, satisfied. An abundance of great friends, frequent new adventures, and the lack of real worry about money meant I had little to complain about.

While in Zürich for RustFest I chatted with one of labs at ETH about a possibile opportunity. It was rather spontaneous and I was rather surprised how seriously I took it all. Since I’m not particularly interested in a PhD right now, nothing came out it it. That interaction brought me to a realization: I no longer had a long term goal.

For most of my time alive I’ve righted my shoulders towards (sometimes lofty) long term goals, and walked. They are not always goals I reached, or even good goals, but they are goals nonetheless. I learnt not to treat these long term goals as the ‘word of god,’ but instead as an anchor with which to align my short term goals. The long term goals might evolve, change, or even be usurped entirely by another, but they still served their purpose.

Professionally, I found myself primarily working for clients where I didn’t feel ownership over a product. I wanted them to succeed, and I wanted their product to be amazing, but the passion was different. It didn’t feel quite as vibrant as the passion you feel towards something that is the direct, long term responsibility of your team.

Academically, I had little need to do research for what I tended to work on for clients, their challenges were rarely particularly scientifically interesting. Still, I found myself toying about with different API designs, reading papers about things like gossip protocols, but I rarely got to apply these ideas.

Neither of these offered me particularly interesting or ambitious goals. Perhaps it was time for a change.

Searching for a new dawn

So if I wanted a change, what did I really want? I found myself on an intense soul search, and eventually formulated what I was looking for.

On a professional and academic level it was fairly easy: I wanted to work in distributed systems, databases, and ‘DevOps’ roles. Furthermore, I’m interested in teaching, writing, giving talks, and offering workshops. There is more to life than your profession.

Finding direction in my personal life was much more elusive. It ultimately came down to lifestyle, I realized I wanted to work remotely, so I could choose my location in the world. This is a big ask for many jobs, and I knew it would seriously limit my choices. Given that I wasn’t searching with any urgency, this was not a huge worry.

This lead into the natural question of where would I live?. The truth of the matter is that most places aren’t that far anymore. Going from Berlin to Pittsburgh for a two day conference is an entirely reasonable affair.

I’m grateful to have friends in nearly every time zone these days, and I’m always happy to make more. No matter where I choose to live I will be far away from a group of friends, and I do not consider friend groups something that can be measured against one another. Conferences, events, and wanderlust will reconnect us regularly. Instead, I considered the place itself.

In that regard, I’ve yet to find a place I enjoy more than the Strait of Jaun De Fuca where I grew up. While this area wasn’t a firm decision, it was a preference. Places like Iceland or Sweden were also of interest to me. Living in Canada would have the benefit of not needing a visa, and being able to plant some roots, even if I was frequently travelling.

Just a looking for a systems/operations/research focused remote Rust job with lots of teaching. Impossible, right? Well, at least I knew what would make me change.

A sunrise from the overlook

Then, I found it.

Recently I’ve developed more and more of an interest in databases. They occupy such a fundamental position in most of the systems we construct, are such a mystery to some people, and are so often neglected (despite their value and importance.) Seeing the difference between a properly administrated database and one which is just ‘used’ is incredible, and I realize that even small improvements in the database can yield huge results elsewhere.

A couple weeks ago I connected with Dongxu Haung, a founder of PingCAP, and we had a great chat about distributed database such as TiDB which PingCAP is working on. I originally encountered the company when I was working on Raft-rs in university, they were also working on an implementation (also in Rust) at the same time, and we both learnt from each other.

The discussion evolved and I found myself talking with members of their team (such as Liu) about Rust, error handling strategies, benchmarking, Raft, and many other fascinating topics. I had a chance to dig around their codebase and was pleased with what I saw. Lots to do, but the code shows competence, the reviews show care, and the project seems healthy. This was a codebase I wanted to work in, that I wanted to help maintain.

On shortly after christmas I woke up to find a letter of offer from PingCAP, and I am happy to say that I have accepted this offer, and will be joining them as a Senior Database Engineer starting in April.

With this change of employment comes with a change of location. Since PingCAP has generously offered me a remote position, I expect to be back in the Vancouver/Victoria area, and am already starting to plan my travels from there. (The first being RustFest in Paris in May!)

I’m looking forward to this new dawn, while looking longingly back at the lovely, wild night of adventure that proceeded it. In the meantime, please feel encouraged to reach out to me if you’d like to learn more about TiDB, TiKV, or the raft crate coming soon.

Together, we build the future, let’s make sure it’s a bright one.

Note: Are we really really good personal friends? Do you happen to know my parents? Don’t tell them please! It’s a surprise.