I read a recent post about how Reddit has over 330M monthly active users. Incidentally, the tech at MoEngage handles about the same scale. I realized that it is time I introduce to the world the tech fueling growth of MoEngage at such a humongous scale.
Over the last 4 years, the incredible engineers at MoEngage have quietly built a world-class product that influences digital experiences for millions of users across some of the largest brands in the world. MoEngage has scaled really fast. So fast that, we were the youngest company to be featured in Gartner’s Magic Quadrant for Mobile Marketing Platforms.
As we step into 2019, I wanted to spend some time and talk about how we went about building a world-class product that powers personalized, multi-channel experience for millions of users. Buckle in, while I share our experiences and learning in a three-part blog series.
First, I will give a brief about the scale, tech stack and the challenges we have faced. Second, we will focus on the technical strategies that helped us in scaling. Third, we will take a peek into the culture that is keeping everyone aligned with our mission and the strategies.
At MoEngage, with every problem statement, we have an added dimension of scale, which makes the problem even harder. The solution we build today, might not work the next year, because the scale will change. But the business economics should make sense next year too. Hence we have to re-invent the solutions such that the cost doesn’t scale linearly with usage and the performance of the service remains the same.
Apart from serving 300M monthly active users, we send around 30B push notifications per month. Our Elasticsearch cluster has over 100B documents at any given point of time. We run our product in seven data centers. And all this has been built and nurtured by a super talented team of 50+ engineers in just four years.
MoEngage tech stack has evolved tremendously over time. We are a multi-cloud environment, in which some of the services are partly hosted on both AWS and GCP. We believe in choosing the right stack to solve the problem, rather than picking the stack for just the sake of it. When we choose a stack, the developer has to evaluate at least 3 other tools before finalizing on a stack, evaluating in the verticals of performance, costs, scalability, availability, and support.
Our pace demands a rapidly developing tech stack. In a short period of time, we have been forced to build, iterate and re-build our systems & processes multiple times. Many of our technical implementations are a result of historic and exceptional circumstances which made us deliver rigorous design and complex systems in record time. The pace at which we were growing, time is luxury!
As a result, several areas of our tech systems did not develop in a predictable and logically pre-designed manner. As we grew, we bolted on different tech stacks, in order to keep pace with our growth. Often these different tech stacks collided with each other and created conflicts. Apart from conflicts, there was also significant overlap and duplication between systems. While these issues largely resulted from the velocity and frugality of our efforts, they’ve also fueled our company’s growth to date. I am sure any organization that’s undergoing rapid growth can relate to this.
However, at a certain stage in our growth, we realized the need to change our approach. We needed to think of building systems that could handle the scale and complexity that our customers expected of us. We needed to step up. In the past 18 months, we have done exactly that! We have transformed the way we think, plan and build for scale.
Once we knew what we were aiming for and the challenges that we are facing in achieving that, we set out to build a tech strategy that could support us. You can learn more about the technical strategies which are helping us to keep achieving new milestones every day here. This is also the second installment of this series.
Also, we have put up a third blog on the deeply ingrained culture at MoEngage here.