A little over a year ago we published a blog post “Where Should Top Coders Work?”. In a few weeks we were approached by topcoder.com and offered to sponsor TopCoder Open. We hired two amazing folks after that event, and two more joined as interns. With a handful of red TopCoders working on the engine, we’ve had a great relationship with the TopCoder community.
When I published the original blog post, I had absolute faith into the TopCoder brand, but we had nothing to really back it up. Since a year has passed, I thought it’d be worthwhile to share what our Top Coders have been working on.
What have TopCoders built at MemSQL?
Here at MemSQL, engineers have a lot of freedom in deciding what to work on. Instead of saying “we have a great team solving hard problems,” I’d like to share what each TopCoder has worked on since joining the company.
Pieguy. David fell in love with concurrency and lock-free data structures. He has built/improved our entire lock-free story. David is also great at finding tough race conditions by studying the code and investigating various concurrency scenarios including finding a bug in a well-known, lock-free paper (http://www.research.ibm.com/people/m/michael/podc-1996.pdf). TopCoder trains people to read and understand code very well.
Nika. Nika tackled the challenges in implementing joins and subqueries, which included building an updated optimizer, an artificial intelligence component that decides what indexes and what join order to use in a complex query.
Momchil. As an intern, Momchil worked on various components of the codebase, but he really got hooked working on distributed query execution. By the end of his internship MemSQL was able to run queries like the one below in a distributed environment over a 100 node cluster (actual use case):
select x.i, x.a, x.b, o.c, o.x from (select * from t) as x left join (select c, count(*) as x from ob group by c) o on x.a = o.c
Check out Momchil’s blog in which he writes about his experience at MemSQL.
Decowboy. While interning at MemSQL, Jelle worked on replication. He helped with the robust design and implemented major components of the feature. This is a highly technical project that involved transaction log shipping and recovery on the slave, failover, and resiliency to all kinds of DDL (data definition language) such as create/drop table and create drop database, etc.
SkidanovAlex. Alex is the first MemSQL TopCoder and he has contributed to all the major components of MemSQL. He has been a crucial contributor to MemSQL’s distributed product.
The list can go on and it’s just the highlights of what the TopCoder crew has built.
What can TopCoders learn at MemSQL?
Databases are complex at every level: storage engines, optimizers, parsers, distributed systems – things most regular developers don’t work with on a day-to-day basis.
In a famous blog post (http://herbsutter.com/welcome-to-the-jungle/), Herb Sutter claims:
- Applications will need to be at least massively parallel, and ideally able to use non-local cores and heterogeneous cores.
- Efficiency and performance optimization will get more, not less, important.
- Programming languages and systems will increasingly be forced to deal with heterogeneous distributed parallelism.
MemSQL is at the forefront of building massively parallel software. For engineers who possess a solid foundation in problem solving with algorithms and data structures, MemSQL is a great place to build these skills.
Why do TopCoders succeed at MemSQL?
Apart from the obvious such as an incredibly high IQ, excellent problem solving skills, and proficiency in algorithms, there is one trait that we find very attractive: TopCoders love to code. If you code a lot every day it generates a compound effect. You are getting much better and more productive.
Startup vs Big Company
Growth and opportunity are crucial for a successful engineering culture. Unfortunately, big company environments often hinder growth potential because of bureaucracy and a lack of emphasis on engineering culture. We are lucky to have very hard problems in spades and have no bureaucratic roadblocks for a TopCoder to grow and advance his or her career.
Are we going to hire more TopCoders?
We are happy to announce that we are sponsoring TopCoder Open once again and to keep our doors open for more amazing engineers coming out of this unique community.
Being a TopCoder is not a prerequisite for working at MemSQL, but being a great engineer is. Please find us at firstname.lastname@example.org