My First Year At Clumio
When I first joined Clumio as a starry-eyed recent graduate, I had no idea what to expect in my first year here. Starting my first job in the middle of a pandemic, with limited opportunities for social interaction, certainly didn’t help my nerves. However, a year later, I have already led one major project to completion, and am simultaneously working on major pieces in two other projects. That progress is a result of the freedom that Clumio has offered me, along with the sheer scale and complexity of work required to build a reliable Cloud-backup product.
My first few months at Clumio started with a well thought out onboarding experience that let me hit the ground running. New grads were given easy bug-fixes and minor features that laid the groundwork for work we would do later — my favorite part of this period was removing 1000s of lines of legacy code from a service. There’s nothing quite as satisfying as deleting massive chunks of logic (that were previously left in for backward-compatibility), and verifying that nothing you did will send the system to a crashing halt during the next production push (thankfully, this was never an issue). Removing unused code is one of the best ways I’ve found to understand a large codebase — you have to build a mental model of the system to realize what can be removed (and why), while also being exposed to the generic structure and style of writing code at a company.
During this period, we were assigned mentors to help us along the way while also having all the other new-grads (and recent grads) as sounding boards. This was one of the reasons I had originally joined Clumio — I heard great things about the people at the company. Being able to walk through a problem or a design with a group of other people always makes it easier to poke holes in your reasoning, helps you move much quicker, and is less problematic than identifying those issues in production.
One of my favorite projects from last year was working on updating our monitoring stack from a set of ad-hoc monitors to a structured deployment that runs as part of our build processes. This project started when I ran into a specific pain point of duplicating monitors across public cloud regions for a new service. My laziness to clone the monitors multiple times led me to pitch the idea of working on deploying monitors as part of our build system (which already deals with multi-region deployments) to my manager.
I then started digging around the depths of our in-house deployment system, Clustertool, to figure out how it worked. At the heart of Clustertool is a directed acyclic graph whose nodes represent specific build processes in the order they need to be executed. I realized that I would have to add “monitoring” nodes as leaves to this graph and trigger them when the appropriate inputs were passed to the build. Discovering the inner workings of Clustertool was a difficult, but rewarding process and I came out at the end of this experience having a much better understanding of creating robust build systems as well as working with Cloud-Ops and Cloud-Eng teams to push infrastructure projects forward.
In the midst of all this Clumio was launching our new Discover product to provide customers greater visibility into the quality of backups on their AWS accounts. My role in Discover was to let customers on board with a smaller set of permissions that would allow them to try Clumio out with minimal friction. During the process of working on these CloudFormation templates to distribute to users, we discovered many holes in our onboarding flow — a lack of onboarding APIs for larger customers, a one-size-fits-all template regardless of customer requirements, and no alternatives to CloudFormation for customers who were hesitant to further lock themselves into AWS. So, I told my manager that I’d like to work on solving these problems next and… I think you see the pattern.
And we arrive at the present, where over the last couple of months, I have been leading the engineering effort to improve our onboarding experience. This was a completely different beast compared to all the other projects I’ve worked on — I had to work with Product Managers much more closely to define requirements, I was responsible for tracking milestones and making development progress with the help of other engineers, and I had to work with testing, support and sales teams to ensure that the features were robust, debuggable and polished. Slowly chipping away at our onboarding deficiencies to make the customer experience better week-over-week was a truly satisfying experience. Seeing customers use the improvements we made to onboard 100s of accounts to Clumio at once was gratifying.
Clumio has given me the freedom and flexibility to work on many large projects and has truly helped me grow as an engineer. Being a part of a small startup has been invaluable in forming bonds with my co-workers as well as understanding all the non-engineering work that goes into building a company. If you’d like to talk more about work at Clumio, feel free to reach out at raghav.anand at clumio.com, and as a reminder — we’re hiring!