Having worked in FX for some time, I was familiar with TransferWise as a mission-driven company that puts customers first. I had a smooth interview process with them and resonated with their ambitious plan to expand in the US, so I packed my bags and moved to New York City.
The Work
Software Engineer - US Expansion (Oct 2018 – Jan 2019)
This was my first job at the senior engineer level. Partly because of the elevated expectations, I had a difficult onboarding.
- TransferWise had by far the largest codebase I’d worked with by that point.
- The company’s technology was going through some rapid changes, and documentation had not caught up.
- The NYC office only had a few engineers. Much of the knowledge resided in the European offices, in a timezone 3-5 hours away, including my Eastern European manager, who I had not yet learned to communicate with effectively.
Despite the challenges, I got along well with the close-knit NYC office crew, and implemented a few features to help the US operations team, including one that sped up chargeback recovery.
Software Engineer - Engineering Experience (Jan 2019 – Oct 2020)
The company was migrating from a rented data center to the cloud, from monolith to microservices, and onboarding to Kubernetes (k8s) as the orchestration layer. As a result, the development process was in constant flux, and was a major source of frustration for much of the engineering org, myself included.
By chance, I came across Andrei’s slightly controversial yet inspiring talk about his vision of the development workflow in the new cloud & microservices era. So when Andrei was tasked to start the Engineering Experience team to focus on engineering productivity & welfare, I was eager to join, and leadership was kind enough to approve, despite my short tenure.
We immediately got to work. Joining forces with the cloud infra org, we built a slack bot that, in 6 minutes, would provision an individual development environment on k8s that contained all the core backend microservices of TransferWise. An engineer could easily swap out any of these to one they were running locally, so they could test major features end-to-end. This exact process used to take 2 hours and fail half the time.
As part of expanding this effort to 50+ services, we, working as consultants, helped many teams across the global offices to migrate their services onto k8s and the cloud. This gave me exposure to a large surface area of TransferWise’s backend, which I greatly appreciated. We even worked with the microservices expert, Sam Newman, who advised us on our architecture and the migration.
As more services moved to k8s, even more services were being created. To help with efficiency, I created a service template that included the scaffolding of a typical TransferWise backend service, with all the standard libraries and configurations set up out of the box. To my delight, this quickly became the default way of creating new services, and saved a tremendous amount of engineering time.
Exit
- We started hitting diminishing marginal returns for the migration work. By 2020, it was mostly a steady stream of long-tail work that the owning teams could take care of.
- Over time, I discovered that I was always a little behind on company initiatives and important decisions, being in a small, remote office, relative to TransferWise’s European HQs.
- I was ready to take my career to the next level and experience the Bay Area, still very much the tech capital of the world.
Takeaways
- Technically, I acquired a wide variety of knowledge on the modern distributed backend, from the application layer, to orchestration, deployment, SRE, and all the tooling & processes that come with it.
- I also dove deeper into the inner workings of the US financial system, from ACH, to fraud detection, to card processing, and more.
- Working on the Engineering Experience team brought me the excitement and visibility of being an important part of a company-wide initiative. I got better at coping with the expectations, and I enjoyed interacting with so many different teams and learning about their worlds.
- TransferWise’s engineering org was very people-oriented. Doing almost anything involved knowing who to talk to, and talking to them. It was overwhelming and frustrating at the beginning, but I came to appreciate the long-term effectiveness and the scalability of it. I got better at building relationships & alignment, and not hanging on to processes too much.
- Despite everyone getting better at working remotely since Covid, it’s still better to be in the HQ, where the action is.
- Through interacting with many of my Eastern European co-workers, I also learned to appreciate their culture and style of humor.
- I had run into friction with some co-workers who I thought were underperforming, and I learned through mistakes what not to do.
People
This is the first job where I had meaningful interactions with too many great people to name them all, but a few had long-lasting impact on my career.
- I truly enjoyed the small office vibe at NYC and everyone there. Amadeus, James, Danny and Hardi became good friends.
- I came to appreciate the thoughtfulness of TransferWise’s engineering leadership through Harsh.
- Jose was an amazing engineering leader who taught me so much about modern distributed systems and k8s.
- Andrei was inspirational in his vision of the Engineering Experience team, and a good manager.
- Haoyuan was a great host for my team when we visited Singapore, and we later reunited again in the US.
- Chen, Yurii, Taras, Helin, and Dimitri were all amazing engineers I still aspire to learn from.