In 2017, MongoDB, one of the fastest growing database platforms in the world, is turning ten years old.
Created in 2007 as platform as a service product has become increasingly popular since 2009, when it shifted to an open source model and today is being used by tens of thousands of companies, ranging from small enterprises to tech giants like Facebook, Google or even eBay, Adobe and LinkedIn. At the end of 2016, MongoDB released its most recent version, the 3.4 and we couldn’t be happier to tell you that one of our own engineers in the Enea Romania team was one of the most important contributors to the success of this release.
Andreea is one of our most passionate team members, performing in Bucharest office of Enea Romania, as a Team Leader and also as a Senior Software Engineer. A graduate of the Mathematics and Computer Science Faculty from the University of Bucharest and attendee of a Standford Machine Learning course, Andreea has more than 8 years experience in programming and has a deep knowledge of algorithms, data structures and design patterns. Last year, she was honored as one of the top contributors in the Bug Hunt prior to the release of the Mongo DB 3.4.
Besides being open source, MongoDB it is a NoSQL database program that uses JSON-like documents with schemes and supports field, range queries and regular expression searches. The aggregation framework is another important part in the platform’s popularity. Mongo 3.4 introduces a stage to the aggregation pipeline that allows for recursive search, which Andreea used to discover a bug in the latest version.
The bug she discovered was registered under the number 27201. She used a RC version of MongoDB while researching on a software solution that was to be implemented on a management platform for a client in the healthcare industry. The main function of the software solution was to provide doctors and administrative personnel the ability to configure hardware devices based on a complex arborescent structure that can be found, for example, in large hospitals. Andreea tried to use in her investigation a new feature introduced in the MongoDB 3.4, called $graphLookup.
While using this tool and trying to count the number of nodes in the arborescent structure, the result was server failure. Specifically, a code path that could trigger a null pointer difference when using $graphLookup was exposed.
The error was present because most of the work and testing done prior to this didn’t involve conditional aggregation-expressions using graphLookup stage operator. Andreea chose to use conditional queries in the implementation in order to improve the performance of the query. After identifying the bug, Andreea reported the issue to the MongoDB team, who in turn solved it in under 4 hours.
The official version was released in mid December last year, with extended multimodel capabilities, including native graph processing, faceted navigation, rich real-time analytics, and powerful connectors for BI and Apache Spark.
Andreea’s work was recognized on the MongoDB Big Hunt release note and rewarded with a ticket to MongoDB World (or Europe) 2017, global recognition and also our appreciation on our blog and social media.
The rest of us, here at Enea, couldn’t be prouder. Andreea has showed us once again that hard work combined with passion can produce great results. We count ourselves lucky, since we had several chances of seeing Andreea’s true potential. Florin, Delivery Director of Enea Romania, describes her as a person with “systemic thinking, who cares about the quality of the architecture and displays impressive pragmatism in identifying solutions”. Radu, one of the PMs who she closely has worked with, says “work becomes more pleasant when you collaborate with colleagues like Andreea”.
Exploring MongoDB issues isn’t about the rewards and recognition, it’s more about the passion for the work and the resources invested in it. In the end it’s all about the dedication for the thing you like most. As they say, do what you enjoy and you’ll never have to work a day in your lifetime.