The MongoDB Summer ‘17 Intern Series: Replication Team

Andrea Dooley


As we continue the #MongoDBSummer17 Intern Series, we wanted to highlight one of our interns who took an atypical path to Computer Science. She helps to validate that success stems from determination, and not necessarily years of experience.

Samy Lanka is a Seattle native and University of Pennsylvania (UPenn) graduate. She is currently in her last semester at Carnegie Mellon University, earning her masters in Computer Science (CS).

Pictured: Samy Lanka

Andrea Dooley: How were you first introduced to the MongoDB Internship program?
Samy Lanka: I was a Teaching Assistant at the University of Pennsylvania with someone who is now a full time employee. He had also interned at MongoDB and enjoyed the experience. I then took a databases course that included a unit featuring MongoDB, and that really sparked my interest in the product.

AD: What was the application process like?
SL: I applied at a career fair, after which the Campus Team reached out to have a phone interview. The process was relatively quick after that. I Skyped with three people on the Engineering team, and was offered the internship shortly after. The interviews themselves were technical, but quite relaxed. After the technical portion, the conversation naturally turned to our various interests in CS. In one interview, I had an in-depth discussion about distributed systems which is one of my main interests. It was a great introduction to the company!

AD: Since you’re in the midst of receiving your masters, it’s safe to assume this isn’t your first internship. Can you talk about your previous experiences and how this might be different?
SL: I’ve interned at a tiny startup with six full time employees and at a large financial institution. MongoDB is a happy medium in terms of size and structure. I’ve been able to learn a lot about systems here because MongoDB has an established technology. I also get to give my input at design meetings and influence some of the decisions on my project, so I really value being able to take on a bigger role.

AD: So you mentioned you had bonded over distributed systems. Did that have any impact on the team you were placed on?
SL: Yes! I was placed on the Replication Team, which focuses on maintaining multiple copies of the data in case something bad happens. As I mentioned before, I am really interested in distributed systems and I thought that the team would be a great fit based on the project ideas that were shared with us when we were listing out our top choices for teams.

AD: What is the project that you’re now working on?
SL: When it comes to replication, each copy of the data is stored on a different node in what we call a replica set. MongoDB applies write operations on a node called the primary replica, and then records the operations on it’s oplog. Secondary members replicate this log and apply the operations to their data sets.

It’s possible, if we had to switch primaries, for the designated primary to be further behind in applying new writes than the other nodes in the replica set, which means it has to catch up before it can accept new changes from the application. A primary replica that is fully caught up with the most recent database updates would be able to accept writes immediately. My project is to make the most up-to-date node the new primary when it detects it is ahead. It’s a small way to ensure that if something fails, replica set can quickly restore write availability.

AD: What is your level of involvement in the project?
SL: I’ve been able to give some input with regards to how the replication feature was going to work. When I started, the concept and main tasks were already figured out, but some of the details had yet to be decided. My mentor was really good about asking for my opinion before he gave his so that he could see my thought process and get an unbiased view.

AD: When were you first introduced to computer science?
SL: When I started at UPenn I was more focused on the other sciences. I’d always liked the idea of building things and CS fit perfectly with that. Someone in my freshman hall suggested I take an intro course, and I was hooked immediately.

AD: So you weren’t hacking at the age of 11 like a lot of other CS majors?
SL: Not at all. I didn’t even know what CS was when I got to college. A lot of people are really intimidated by people who have been doing CS since high school or before, but there is plenty of time and opportunity to catch up. Some students take a couple intro courses, don’t do as well as they anticipated and just give up. Most people who are having confidence issues when they start out in CS are too hard on themselves. They think they need to immediately be on the same level as the people who started in middle school, but they need to realize those people just got an earlier start. I didn’t fully get into CS until my Sophomore year and a lot of my friends have similar stories. When we graduated, no one could tell because everyone was really qualified.

AD: Are you involved in the Women and Trans Coders mentorship program?
SL: Yes! It’s a program specifically for interns in those demographics, and we were each assigned a mentor. It’s a great place for advice and to meet other engineers in the company. Everyone is super supportive and they were really sincere when they said we could talk to them about anything. There is also the Women’s Group which is open to everyone and meets regularly to discuss how to develop opportunities for women and how to address challenges that women face. The last meeting was about female superheroes and we had a great discussion about how amazing some female characters have been, but how there is still so much we can improve on. These groups deal with things that I am really passionate about and I love having the opportunity to get involved with them.

AD: What has been your favorite activity of the summer so far?
SL: All the interns went bowling with our mentors last week and I got the chance to get to know a lot of people better. We got to bowl, eat food and hang out with each other. What more could you ask for?

AD: What advice would you give to a potential future intern interested in MongoDB?
SL: One of the major benefits of MongoDB is that there are a lot of different tech roles. You don’t necessarily need to be a systems person working on storage. There are tons of opportunities for finding the area that you like and the teams are small enough that you get a lot of personal attention. Everyone genuinely wants to know how to make our experience better, which makes it easy to like being here.

Interested in learning more about the MongoDB Internship Program? Click here.