I worked as a software engineering intern on Mailchimp's SMS team.
- Mailchimp is a platform used by businesses to send their marketing campaigns.
- Businesses (C1's) can send marketing campaigns to their customers (C2's) through SMS text messages. I worked with this team at Mailchimp.
About the Team
The engineering SMS team was divided into different sub-teams: Activations, Registrations, Campaigns, and Delivery. I was part of the Delivery team, whose core responsibility was to ensure the scheduling and sending of messages to downstream aggregators. These aggregators are responsible for sending messages to users' mobile devices. The Delivery team is also responsible for building all the aggregator reports and metrics for the messages, etc.
I worked on multiple projects during my internship. The two major projects were building a monolith proxy service and delivery re-architecture.
Project 1: Monolith Proxy Service
- Developed the Monolith Proxy to streamline SMS integration and testing within Mailchimp, replacing a cumbersome process involving modifications across multiple repositories.
- Introduced a proxy service that acts as an intermediary, simplifying communication between the SMS stack and the local setup.
- Implemented robust error handling within the proxy service, including logging and fallback mechanisms.
- Utilized ngrok to connect the local monolith setup to the internet, allowing the proxy service to intelligently route HTTP requests based on tenant information.
- Enhanced the proxy service with features such as caching, error logging, and default fallbacks.
- Built the service from scratch using Go, Twirp/gRPC, and ProtoBuf, optimizing workflow and saving developers approximately one hour per day.
- Challenges Faced: It was really difficult to replicate everything in the development environment and to establish communication between all the services in the SMS stack. In addition, replicating and testing the end-to-end pipeline was challenging.
Project 2: Delivery Re-Architecture
- Led the SMS Delivery Re-Architecture project and designed the new delivery architecture with improved components:
- Gateway for streamlined message inflow.
- Outbound processor with advanced scheduling logic.
- Delivery system connected with the aggregator, Infobip.
- Inbound processor for managing incoming messages and reports.