#TechAtMoEngage: Building an Engineering Culture That Supports 300M Monthly Active Users
By yashwanth-kumar Published: #php echo get_post_time('H:s \G\M\T'); ?> 29 January 2019 | Updated: #php echo get_post_modified_time('H:s \G\M\T'); ?> 22 May 2019
This is the final part in a three series blog post. Read part 1 to understand how we grew rapidly and the tech challenges that came along with it. In part 2, I touched upon some of the strategies we adopted to overcome the challenges we faced. In the final part, we talk about the engineering culture that enabled us to keep our team motivated, informed and most importantly- happy.
Culture is a very broad term. It means different things to different people. For us “Culture” is a “Decision Support System”. Our culture dictates every decision we make at MoEngage. It tells us what to do and what not to do.
As with any organization, our culture has evolved as the organization grew rapidly. But we have codified the important aspects of it.
- Customer-first Outlook – We believe in a customer-centric approach and focus on building products that solve customer problems. Each product decision at MoEngage is backed by a strong market survey to assess what our customers need.
- Knowledge sharing – As they say, knowledge is the only thing that grows with sharing. We ensure ample opportunities for all the team members to learn about the different tech stacks. We do regular meetups internally “Tech-ila Shots” and host Dev community days to share knowledge with fellow dev community.
- Initiatives and Ownership – Being a young company, it is important for everyone to step-up when needed. We have decentralized ownership and everyone has to pull their weight. We make it a point to recognize these efforts. Team members who take initiatives regularly are rewarded in our quarterly Rewards and Recognition Programme.
- Challenge the status quo – As a team that is constantly learning, building and rebuilding tech, change is imminent. We are open to question the existing systems, especially if they are not delivering the expected outcomes.
- Do it right and do it once – Time is the most important element for any startup. We can not afford to work on the same problem again and again. Thus perfection becomes a necessity. We encourage our team to spend ample time planning and execute ideas with perfection. Every major change accompanies a technical doc. It enlists the objective of the change as well as the scope of effects.
- Monitor and Improve – You can’t improve something you can’t see. It’s a must for all the team members to know their KRAs, especially, product usage metrics, SLAs and costs. Monitoring will also help us in predicting the scale and taking proactive actions.
- Build for Scale – Every solution seems right at the time of building. But as the scale grows, design flaws stand out and start affecting the customer experience. So we build a product to serve at least 10x the current scale, also ensuring the horizontal scalability of the same.
- Be Happy and have Fun – Someone dear to me told me that “either you enjoy doing it or don’t do it at all”. We want all our team members to believe in our mission and happily be part of it.
- Quality over Quantity – We believe in hiring the right people and challenge them with harder problems. We make sure every team member is working on harder problems and learning something new every day.
That’s it, folks. I hope it has provided some perspectives on our journey and the engineering challenges we faced. I would be thrilled to hear your thoughts. Feel free to share, comment and ask questions.