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.
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:
Small startups offer Top Coders lots of responsibility and with it the trust and autonomy to solve tough problems.
Top Coders at SingleStore
Today, SingleStore 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 SingleStore. 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 firstname.lastname@example.org.