Gregory Noma is a senior at the University of Michigan studying Computer Science with a minor in Mathematics. Gregory is a returning intern—this is his second summer working at MongoDB. Gregory is interning on the Execution team working on some core MongoDB server upgrades.
Josh Fayer: How did you become passionate about programming?
Gregory Noma: My dad introduced me to both programming and math at a fairly young age, and I’ve always enjoyed working on computers. When I was younger, I programmed on-and-off, and finally picked it up for good toward the end of high school. This is my third summer as a software engineering intern and my second internship at MongoDB.
JF: Why did you decide to return to MongoDB this summer?
GN: I decided to return because I knew the fantastic mentorship and internship program would allow me to continue to grow both as a software engineer, and as a person. Additionally, MongoDB's core values align greatly with my own, and there was no doubt in my mind that I would be having another fantastic and fulfilling summer.
JF: What has your experience been like as a returning intern?
GN: One of the great things about being a returning intern is that this time around, I had much more context when it came time to choose the team I wanted to intern on. I was able to use the things I learned from last year's intern presentations, MongoDB World, and also my own work to inform my decision. Once the internship began, I found that I was able to get up and running much more quickly than I otherwise would have been able to due to my experiences last summer. I already knew many of the tools used and had some familiarity with the codebase, so I was able to get into more substantial work sooner.
JF: Which team did you decide to intern with this summer, and what projects are you working on?
The project that the interns on my team have worked on this summer is speeding up the creation of indexes. Indexes allow users to efficiently query their data, and are an incredibly important feature to MongoDB. Likewise, the ability to create them efficiently is also an important feature. The project itself was already planned and designed prior to the summer, so we have been working together to make these performance improvements a reality.
I find it incredibly exciting that interns get to work on real and important features that will be used in production just like the work of any full-time engineer. As a part of this process, we also do code reviews on every patch and participate in all team functions like meetings and planning. We truly are treated as a part of the team, and I have never been made to feel any less than this.
JF: How is MongoDB similar or different to any other experiences you've had, either in school or other work experience?
GN: From a technical point of view, one of the biggest differences compared to school has been jumping into a large codebase as opposed to typically starting from scratch. Because of this, the first step when tackling a problem changes from simply brainstorming solutions to investigating how the code currently functions. Even just a small change can easily have widespread effects across the server, so it is important to understand why something works the way it does, before committing to a potential solution.
In terms of the company and internship program itself, it also contrasts greatly with the internship I had prior to MongoDB at a different organization. In that case, I was the only software engineering intern at a very small financial technology company. Most of my learning occurred on my own through a project built from scratch over the course of the summer. While this was a great learning experience in its own right, it could hardly be more opposite from the internship program at MongoDB, in which I am working alongside other interns with a fantastic support and mentorship system set up to help me learn and grow.
JF: How has the work at MongoDB challenged you, and what have you learned here?
GN: Initially, much of the challenge revolved around getting acquainted with the codebase without becoming overwhelmed. I also had limited experience with tools like git and had to familiarize myself with their use in a production environment. Since then, the challenge has shifted greatly to focus on the complexity of the problems themselves, rather than just how to get started.
While I’ve learned many new things from a purely technical point of view, including move semantics in C++, to me, this is not the most valuable category of knowledge or experience I have gained. Along with an increased difficulty of problem comes with an increased difficulty of debugging and critical thinking, and this is where I feel I have done my most valuable learning. It is incredibly satisfying to now be able to face obstacles and come up with solutions that would have been unthinkable on my own just weeks ago. With this in mind, I have no doubt that my experiences at MongoDB have improved my ability to face and have confidence in solving any sort of difficult problems.
JF: What is your favorite thing about interning at MongoDB?
GN: There have been so many amazing things about interning at MongoDB that it’s hard to pick just one. If I had to choose, I would say that it’s the people. Absolutely everyone, including my fellow interns, have proven to be incredibly intelligent, driven, and a joy to work with. I’m a strong believer that the best way to improve yourself and grow as a person is to surround yourself with the best, and there’s certainly no shortage here. One group of people in particular who have helped me grow an incredible amount are my mentors. They have been an invaluable resource in helping me understand how to think about and approach problems, guiding me back on track when I need some help, and answering all of my many questions.
Interested in pursuing an internship at MongoDB? We have several open roles and would love for you to grow your career with us!