My career as a software engineer really began when I won a medal at the ACM ICPC programming contest in 2001. To place in the tournament, I had spent 24 hours traveling from Russia to Vancouver and back, just to spend 5 hours on the actual competition.
The rules are simple: you have 5 hours to solve up to 12 problems. For each problem you need to implement a small program in Java or C++ and send it to the jury. They compile it and run it through an extremely intensive set of tests. Only if it passes every test will the jury count your submission.
Even though it only marked the beginning of my career, it had taken 4 years of intense preparation to place at the tournament – 4 years of training, learning to think fast, practicing on weekends, and other sorts of mental gymnastics. ACM was a good school for me. I
loved it, but I wasn’t alone.
Is it really hard to become a Top Coder?
Becoming an ACP ICPC medalist in 2011 is about 20 times harder than it was in 2001. People who can do it now are coding machines and algorithm junkies. They practice every day on TopCoder, Google Code Jam, and Code Force to stay sharp. They memorize whole books filled with algorithms and equations in case they need a tool to solve a problem quicker than their opponent. It should be no surprise that this programming subculture has caught the attention of many great companies.
So where do programming contest winners go and work? It used to be Microsoft (where I started my career), then Google. Now it’s Facebook. These companies know how valuable top coders are. Microsoft, Google and Facebook wouldn’t be where they are without exceptional engineers.
How do Top Coders fare after graduation?
They fare very well and tend to build their careers at big companies. Many are attracted to the high salary right out of school. However, according to topcoder.com, many ultimately find work at large companies to be tedious and less challenging than the mental jujitsu of programming contests.
Large teams have the luxury of compartmentalizing a problem to reduce complexity. This creates an unfortunate side effect: these smaller problems just aren’t that interesting.
In addition, many ICPC champions soon miss the dynamic of small teams, the kind they experienced while training and competing during university.
As it so happens, there is a time in a company’s history when it’s perfect for a top coder to join – when the company’s just getting started.
Why do some Top Coders found/join an early-stage startup?
For the challenge, of course.
Just take a look at these real-life examples:
- Adam D’Angelo was a finalist in the international Topcoder Collegiate Challenge in 2005. Later he was VP and CTO of Facebook and then left to found Quora.
- Nikolai Durov is Employee #1 at the biggest Russian social network vkontakte. It beats Facebook on the Russian market. He could’ve gone to Google or stayed in academia, but he made a small bet that had lots of upside.
- One of my team members Leonid Volkov went to an early stage company and built the “TurboTax of Russia”. He enjoyed an incredibly successful exit, and he’s since gone into politics.
- Prasanna Sankaranarayanan is the founder of LikeALittle and was the highest ranked Top Coder in India. It took him one year at Microsoft to realize that the perfect job for a Top Coder is at an early stage startup.
Small startups offer Top Coders lots of responsibility and with it the trust and autonomy to solve tough problems.
Top Coders at MemSQL
Today, MemSQL has four Top Coders. I won a bronze medal in ACM ICPC in 2001, and Alex Skidanov was a Top Coder #13 in 2008 and ACM ICPC #3 Champion. A Top Coder would feel right at home at MemSQL. Here, we work on hard algorithmic and systems-level problems, distributed systems, and cloud infrastructure. We also now have Top Coders who ranked #4 and #8 in algorithms. Sometimes it’s scary to leave a big corporation, but the truth is that apart from fun, market pay, and the potential of a huge upside, a good early stage startup gives the kind of experience that makes a Top Coder extremely relevant in today’s tech industry.
If you’d like to learn more, shoot us an email at email@example.com.