MemSQL: My First *Real* Startup Experience

Nikita Shamgunov
Nikita Shamgunov

This is reposted from Momchil Tomov’s blog. Momchil was part of the first summer batch of MemSQL Interns.

After seemingly stumbling into their office by accident, getting interviewed on a lark, and receiving an offer as my Christmas gift, I kept an open mind for what to expect from MemSQL. The one-year-old YC alum was set to build the world’s fastest database, leaving competitors like MySQL and MongoDB in the dust. Very ambitious indeed.

From day one, I was thrown in the fire pit. Someone had to finish the Workload Simulator, an important developer tool, before the launch. Everyone was super busy fixing bugs and polishing the product, so I had to do a quick Javascript/Flask/Python crash course and jump on it. After eight long nights, a thousand lines of code, and a huge amount of support from Ankur, my mentor, the Workload Simulator was finished to coincide with launch.

I spent the next month working on code generation: writing code that compiles SQL to C++, the core strength of MemSQL. Once I got acquainted with the codebase, Ankur decided to step up my game with data compression. I had to find a way to compress 10 TB of random strings down to at most 5 TB without compromising the speed of the transactions, and I had two weeks to do so. After some research, experimentation, and lots of dumb luck, I managed to bring it down to 2 TB. It required all the MemSQL knowledge I had obtained thus far, including things I learned during my interview.

Just as I finished the first prototype, I joined the team working on sharding. Sharding is what enables MemSQL to get distributed across multiple machines, an important feature of every scalable database and also an important feature for our biggest clients. I was onboarded on Sunday, began work on Monday, and shipped my first code review on Tuesday. One of the dev leads, Ankur, gauged my progress, and kept assigning me more and more sharding tasks, slowly walking me through the implementation of Distributed MemSQL. Just as a father silently lets go of the back seat of his kid’s bicycle, he slowly backed away and moved on to testing and bug fixing. Before realizing it, I found myself working on the team with no safety wheels, full speed ahead, pushing the forefront of MemSQL. I was no longer an intern. I was a full-time MemSQL engineer.

They say Princetonians work hard and play really really hard. If that’s true, then MemSQL felt even more like home. From the extraordinarily delicious meals prepared by our in-house chef Daniel, to the post-launch Las Vegas Celebration Trip, to the relaxing Saturdays on Vasili’s boat underneath the Golden Gate, the MemSQL team knows how to have a good time. As MemSQL is growing, I sincerely hope they maintain their great culture of ridiculous engineering and chill free time. I had an amazing summer many thanks to the incredible people at 380 10th Street. I wish Eric, Nikita, Marko, Vasili, Alex, Masha, Nika, Pieguy, Adam, Ankur, Daniel, et al. all the best and hope they build a company 300x better than the rest!

Go MemSQL!