Having an office in Times Square implies that you will encounter numerous Elmos outside your office. I can only imagine the look on all the kid's faces when they see multiple Elmos surrounding them. Times Square also provides an easy way to travel to any part of the city considering that most subway lines intersect there. Additionally, traveling out of the city is just as seamless with Port Authority a block away.
The office space itself provides yoga and bootcamp classes to keep their employees guilt free from the free corporate lunches. Showers are also built into the office space to supplement these classes or even bicycling to work.
Finally, the clutch that steals the deal for me are the table tennis and pool tables that make any taking breaks at work both social as well entertaining.
For me, coming out of college, impact was the one real goal I had set. MongoDB, Inc.'s main product is its namesake, MongoDB, a non-relational, JSON-styled document store. A product that is not only free to license but also open source. The product is currently used by over 600 customers and numerous other adoptees. The downloads are increasing every single month. Impact? Checked.
MongoDB is not a perfect product. And it has not been around for too long. One of the most refreshing parts about working at MongoDB is how realistic the engineers are about the product. In my past internships (names politically omitted), the employees were all aroused to a false sense of security that their product was far superior with limited or not faults. At MongoDB, during my first week, I had multiple candid conversations about the problems that the database possesses and the timeline and steps that need to taken to fix them. It felt mature of a company to accept its flaws. The lack of arrogance about the product also arises from their trust in their ability to remedy the problems and the knowledge that even with these issues, MongoDB still manages to solve innumerable product-based and developer-oriented barriers. Even with it's current flaw, the product has accomplished a lot. At the end, no product is perfect, every engineering solution is just an iteration. And in the end, I would rather work on a product with interesting HARD challenges than one with mundane tasks.
But MongoDB is more than a database, it's an entire egosystem with drivers in various languages, with both server side and client side tools, with web based security and backup managements systems and clients with robust demands. I can explain these parts in more detail by talking about the work I have done in the past few months.
I have worked at Mongo for about 6 months in now. In the past 6 months worked on over 10 different projects (granted they were of different sizes and scopes). It's liberating to be able to push code on my first day of work at MongoDB. It really exemplifies the urgency in startups.
My first project was to create a dynamically generating searchable structure for all the employees in the company. As a Systems Engineer, it was both challenging and refreshing to learn front end development and use frameworks like d3.js, Backbone, Marionette etc. Working for the Internal Tools team gave me access to a ton of valuable information about both the company as well as the clients. I was able to understand how the different clients interacted with MongoDB as well as learning about how the entire company was structured and what projects were in progress.
During my time in internal tools, I also had a chance to work on image processing while using Mongo's GridFS file storage system. I launched all my projects into production during a span of just three weeks.
The next group of projects I tackled were all QA related. I wrote automated tests and spent numerous weeks hacking away at the next release of MongoDB 2.6, set to launched in 2014. It was exciting to write performance benchmarks for Mongo's logging system, the redact aggregation framework as well as security features like SSL and Kerberos.
MongoDB Management Service
I guess here is where I can go into more detail about how MongoDB is more than just a database company. MongoDB Management Server, MMS, is a web based engineering solution to managing deploying large scale MongoDB products. It allows customers to Monitor their database visually to understand the types of queries being performed, allowing their engineers to analyze the bottlenecks in their application and optimize appropriately.
MMS also enables Automation, the ability to launch as well as terminate instances of their databases in a sharded (distributed) system. Finally, MMS also enables the ability Backup customer's databases to the cloud to prevent data loss from server crashes.
For the MMS team, I worked on incorporating/modifying multiple third party applications including Hipchat and Marketo, designing different parts of the application. But my core project involved working with the security team to enable two factor authentication using Google Authenticator. For countries like India, where there is a large customer base but restrictions on the use of SMS for two factor authentication, Google Authenticator was a perfect solution to encourage more clients to start using MMS. It was incredibly fun redesigning the authentication architecture with a TOTP algorithm and ensuring that I take into interesting corner cases where SMS and Authenticator clash with each other.
I spent some time working with the Support team at MongoDB as well. It was juxtaposition of annoyance and gratification dealing with customer's problems on sites like Jira, StackOverflow and Google Groups. It gave me a chance to explore bugs in the database as well as MongoDB user's own source code, giving me the opportunity to understand the various exquisite variances with which developers use MongoDB.
The Kernel team is where all the hardcore C++ engineers reside. Along with Friday Whiskeys and a while range of issues to tackle, it was exhilarating to be in the mix. I worked on the C++ driver for the server with the main intention of preventing MongoDB's symbols from clashing with System Boost symbols in all the most popular operating systems including Mac OS, multiple different Linus machines as well as Windows (why do people still develop on Windows?).
Surprisingly, the best part about my job was my colleagues. Everyone from VP's to new hires were always willing to talk and introduce themselves with the intention of getting to know you personally and not just discuss your work. Every single question, no matter how relevant would always be answered. People were always just looking to help each other out.
From Mentor lunches to New Grad events to company happy hours to pool tables conquests, I managed to interact with a large portion of the company, both engineers as well as Sales and Human Resources.
One of the key parts of MongoDB that stood out was the Skunkworks program, similar to Google's 20% time where engineers huddle together to come up and implement new innovative ideas. Breaking away from our work to enjoy ideation and collaboration fostered a fun way to meet new people, form new teams and work on random yet useful projects.
If I had been told that I would have learnt so much in such a short period of time, I would probably have laughed. But looking back I can't help but acknowledge a feeling of loss of not continuing to work at a place where you can push yourself to the point where you are working on multiple teams and multiple projects at the same time. MongoDB is more than a job, it's a playground for innovators and a storm-house of products.
Have I made the impact I wanted to make while at Mongo? I can't honestly answer that question. But I do know that thousands of people are now viewing and dealing with the code that I wrote and living with some of the decisions that I had the chance to make. My experience here has been invaluable.