Meet Emily Stolfo, a Ruby Engineer on the drivers team.
What is your role at MongoDB?
I’m a Ruby engineer on the drivers team. I also help build the Ruby community by speaking at meetups, conferences and hacker schools and teaching Rails at Columbia University.
Where were you before MongoDB? Why did you choose to come to MongoDB?
After getting degrees in Computer Science and Art History, I worked in the arts, technology and the crossroads of art/technology. While completing a Masters in museum studies at the Louvre a few years ago, I learned Ruby on Rails to build an application for researchers in the museum’s conservation institute. I then moved back to NYC and began working as a web developer at an online art seller in the same building as MongoDB. We used MongoDB for storing metadata on our artists and artwork. I made a lot of friends in the sluggish elevator, and then officially became one of the gang.
What’s your hometown?
I'm from northern New Jersey. Only the strong survive.
Did you have previous experience using MongoDB before you arrived? If so, how are things different now that you work at MongoDB? If not, how did you learn MongoDB and how was the education process?
The learning curve was pretty steep when I started working here because using MongoDB and contributing to the product itself are two totally different things. I made the most of both the great external resources and internal trainings, tech talks, experienced colleagues, and wiki. Everyone is very open and friendly so it’s easy to get answers if you have questions.
Have you had any personal projects where you’ve used MongoDB?
I built a movie-voting app for my friends because we could never agree on a film when I had them over for movie nights. This app allows people to propose films and then vote on the suggestions. Drama and 57 emails: averted.
Bike or public transportation to work?
Bike if it means I don't have to wear more layers than I would taking the subway. Biking in NYC is nothing short of exhilarating so it’s a great way to wake up in the morning.
What’s a typical day (or week) for you?
I get up with the sun, go for a run, and get to the office pretty early to enjoy the quiet. I catch up on emails from students in my Columbia class, answer various emails from driver users/colleagues, read about Ruby current events and then prioritize my to-do list. For the rest of the day I do code reviews, write specs, prototype parts of a new Ruby driver, and work on driver bugs or new features. Some days will be more devoted to presentation prep if I have a conference, meetup, or tech talk coming up. I also have a soft spot for extended afternoon coffee breaks with colleagues. I'll even sometimes mark them as meetings in my calendar. But don't tell my manager that.
The Ruby driver team has been working over the last few months on version 1.10, which has all the new features of the next server release. We are pretty much done with all those tasks so are now focusing on building a new driver that Mongoid (the Ruby ODM for MongoDB) will be able to use.
After work, I either go to Columbia to teach, meet friends for a drink, practice archery with my brother, or go to a concert. Though sometimes I just go home and do more work or read.
What do you love most about MongoDB?
I absolutely love working on open source. It's really cool to know that many people are using and looking at your code, and that they can potentially contribute to it. Of course, there is a lot of pressure to write bugless code that is well-documented so that community members can understand and contribute to the code base. In general, it's pretty exciting to be working on a product that requires people to change the way they've been doing things for decades. You get some resistance, but that's what makes it fun.
What’s the most challenging project here at MongoDB that you’ve worked on, and how did you succeed?
Working on the drivers team is pretty challenging because you have to be good at many different things; we have to be good communicators, project managers, and programmers. Driver code isn't trivial and the quality standards are extremely high. I recently gave a talk about how maintaining an open source project was like User Experience design in that understanding users' perspectives and how they use your product are as critical as code quality. I go to conferences and try to keep in constant communication with users in order to understand and improve their MongoDB experience.
What’s the most rewarding experience you’ve had working here so far?
One time the Ruby team had a really difficult bug that we were struggling with over a few days. At least four other driver engineers joined our day-night-day powwow until we resolved it. No manager told our teammates to help us out, they just did because we’ve got each others’ backs. I learned a ton and gained immense respect for my colleagues.
What’s your favorite Seamless lunch order?
Anything that doesn't have lots of garlic because then I’d have to keep my mouth shut for the rest of the day.
Name one secret skill you have, unrelated to work.
I always know exactly what time it is, without looking at a clock.
Kindle or book? What’s your favorite book?
A few years ago, a stranger at the Strand handed me The Master and Margarita (by Mikhail Bulgakov) and told me to read it. It’s an amazing book. I've also recently had my mind totally bent by Murakami's Kafka on the Shore.
I got a Kindle for Christmas and have been trying it out, but it feels strange.
What’s your favorite movie?
I couldn’t possibly choose one so I’ll share the three movies I own: Park Chan-wook’s Oldeuboi, Le Roi des Coeurs, Jackie Brown.
Where do you like to run? Have you run any races recently?
I’m lucky enough to be within running distance of the Hudson River Park so I run down along the river through Battery Park City. I’m not so much into races, except for the one the day before the NYC marathon. You run the last 5k of the marathon but all the mileage signs are up already so you can pretend you actually ran the full 26 miles.