As I recently wrote about here, I have left DigitalOcean after almost two years building the Product Engineering organisation there. I didn’t have any immediate plans about what would come next, but luckily my roll-off period was calm enough, and in the past month I was able to spend a lot of time hanging out with my family, preparing for my first Brazilian Jiu-Jitsu competition, and exploring many possibilities of what to do next.
The break has also given me a lot of time for reading and writing around distributed application architectures (aka. microservices) and the many new pieces required to enable them. Earlier this year I started cataloguing patterns of microservices architecture. There are very similar initiatives and even books being written on this topic, but more than just creating a list of every pattern used across the industry, my intention with this series of articles is to document and make accessible the tools, processes, and techniques I have tried and seen myself.
The latest article from this series was on a bleeding-edge topic: Service Meshes. I was first introduced to the core ideas of what would be called Service Mesh in 2015 when I met William Morgan and Oliver Gould, the founders of Buoyant. We first met in person at FinagleCon 2015, where Oliver presented on Service Discovery.
At that time we at SoundCloud were going through some of the pain points Oliver mentioned. We were moving away from simple A Records to SRV records and facing the choice between building yet more code to deal with the joys of DNS on the JVM or bite the bullet and move to Consul or Zookeeper. Buoyant was working on this problem, and I was excited to see what would come next.
Fast forward several years and Buoyant’s mission has crystallised as the service mesh, a network layer that can automatically add various resiliency and governance patterns to your services. They have a small team of engineers who have experienced the pain of distributed architectures first-hand and are working on the hard problem that is the gap between raw infrastructure and distributed applications.
This is an incredible opportunity to be part of the folks creating the next wave of infrastructure components, and I am happy to announce that I have joined the team, still based in New York City.