A Summer at Monte Carlo: Improving Data Pipeline Observability at Scale

Monte Carlo is dedicated to increasing data pipeline observability by making it easier for teams to collaborate on resolving data issues and eliminate data downtime. Aastha Chawla, Monte Carlo’s first software engineering intern, shares her journey to software engineering and Monte Carlo, and highlights her experience building a Slack integration for our platform.

I first became interested in computer science as a freshman in high school. Given that more than half of my family was already either studying computer science in higher education or had full-time careers in it, this seemed like the obvious route for me to take as well. But when I took my first coding class in 9th grade, I was obsessed. I was addicted to the frustration and the perseverance involved in solving coding problems. From that moment on, I knew I wanted to pursue a career in software engineering. 

After taking AP Computer Science in my sophomore year, I realized that I wanted to do more than just learn—I also wanted to build. With a group of friends from school, I founded an organization called The Girl Code, where our mission was to bridge the gender gap in computer science, one line of code at a time. Together, we attended three and won all three hackathons, presented one of our apps to U.S. Congressman Ro Khanna, published two apps on the Apple App Store, and were even featured in San Jose Mercury News.

When I started college, I was exposed to a lot of new coding languages: C, C++, Javascript, HTML, CSS, ML, Scheme, Pascal, Smalltalk, and even SuperCollider. The computer science and engineering courses I’ve taken have been some of my favorite classes so far, and it’s only made me more eager to continue developing projects and really honing my interests in the field. Overall, I wanted to try new things and branch out of app development in order to see what my other options were within engineering.    

Applying for My First Internship

As a college student, internships are a must—it not only improves our own practical skills and knowledge, but also provides us with a unique opportunity to experience professional work outside of the school environment. When I was on the hunt for a summer 2020 internship, I had a few criteria in mind. Since this would be my first internship, I wanted to ensure that I learned something new and gained the most out of the experience.

In October of 2019, I attended the Grace Hopper Celebration of Women in Computing Conference (GHC) in Orlando, Florida. GHC was my first formal experience in networking and interviewing; whether it was in the exposition hall with hundreds of company booths, at a company event, or on the plane ride back to campus, I quickly got accustomed to networking. GHC was a great opportunity for me to gain a better understanding of what I could expect during my first college internship at a technology company. 

Aastha at GHC’19! Image courtesy of Aastha Chawla.

When it came down to the final decision, I was stuck between Monte Carlo, a young start-up where I would be the only software engineering intern, or a larger company, where I would be on a team of other college interns. While having fellow interns would have been a valuable experience in its own way, I ultimately decided on Monte Carlo because I was intrigued by the opportunity to chart my own course and own a project from start-to-finish in a fast-moving environment.

During my two-month internship at the company, my work had a significant impact on the product, and perhaps most importantly, I was able to see customers enjoy and interact with what I built: a Slack integration for Monte Carlo.

Interning at Monte Carlo

My project was to build our product’s Slack integration: a messaging application that sends interactive push notifications about data issues and dynamically updates the customer’s dashboard and database with the event state. This new feature provides a more user-friendly interface for customers to provide feedback and resolve data downtime incidents. 

The Slack integration is a very useful tool for customers to keep track of the data issues that Monte Carlo discovers by providing a smooth onboarding experience for interactive push notifications, rich with detailed information about data issues. This app also makes the workflow more efficient, as a customer no longer needs to open the dashboard to update the event state of a given incident and instead, can just check Slack for the relevant information. Having all the essential information about a data incident embedded in a Slack message significantly improves a customer workflow.

There were a lot of moving parts to the Slack app; while the Slack API was incredibly extensive and honestly, very daunting initially, learning about Slack’s framework was probably the easiest part. I spent the first few weeks building a proof-of-concept (POC) and creating an interactive Slack messaging app using Python and Flask. Since Slack required a public endpoint, I also spent some time learning how to use cloud architecture platforms such as AWS Lambda and Serverless. Once I completed the POC, the next part was figuring out how to integrate the app with our product, which involved learning the basics of PostgreSQL, Typescript, GraphQL and Python Django. 

Every morning, I would join the engineering sync to give a daily update on my progress. Then I usually had the rest of the day to myself—it was entirely up to me how I chose to spend the day and divide up the work. Since Monte Carlo is a remote-first company, my team had relatively flexible work schedules. Unlike college, I wasn’t given predetermined mid-quarter deadlines or any structure to my workflow, and it was up to me to break up my project into sprints, so I divided my time in terms of weekly milestones. I worked one week at a time; so by Friday, I should have finished one aspect that I had in mind at the beginning of the week. Usually, at the end of work on Friday nights, I would also take some time to write down a few notes to myself on what I did that week and what I should be focusing on for the following week.

My project not only provided me with a valuable learning experience—from the product development lifecycle to new programming languages, frameworks, and APIs—but also had a direct and positive impact on our customers. 

Suvayan, a Product Manager for one of our customers, Compass, shared his excitement for the Slack integration: “The monitoring feed to Slack gives me comfort that the data in our warehouse is healthy and everything’s working as designed. And on days where something goes wrong, I know my team will be the first to know and that we’ll be in command of the situation.”

Monte Carlo’s dynamic Slack integration, above. (Image courtesy of Monte Carlo)

Knowing that customers like Suvayan had such a positive experience using what I built was the most gratifying part of my project.

Key takeaways

Overall, the internship and work environment was a really great experience. I worked with a lot of new technologies, expanded my technical horizons, and learned a lot about working at a start-up. Even though my role was in software engineering, I also gained a lot of insight into business development and marketing and its role in a start-up from my fellow coworkers on the Go-to-Market team. 

One of the biggest takeaways of my experience at Monte Carlo was working with and learning from my team: an encouraging, funny, and passionate group of people dedicated to building a great product for our customers. With daily interactions in Slack channels and weekly Zoom team syncs, the positive work environment made it much more fun and exciting. Whether we would informally meet to learn about data in our “popcorn club” or talk with a shark expert from Cape Town, the team guaranteed a fun work experience; I will really miss working with them! 

Before I sign-off, I thought I would share some advice for prospective engineers embarking on their first college internship: 

  • Make small goals for yourself, and set yourself up for achieving at least one milestone a week.
  • When learning something entirely new to you, don’t be afraid to experiment! The more you try and tinker with new tools, the better you’ll understand them.
  • And finally, don’t forget to have fun and enjoy! You know more than you think! 

Interested in joining Aastha and the rest of the Monte Carlo team? Reach out for information on open roles!