Top college coders from around the world gathered on January 27th at Bloomberg’s offices in New York City and London for the Global CodeCon Finals. Competitors took their seats, hunched over their laptops and scanned the first of eight programming challenges that would test their coding skills, speed and strategic thinking.
Over the next two hours, 140 students from 45 universities across the U.S., Canada, Europe and the Middle East would speedily type thousands of lines of code in the hopes of emerging victorious.
In the final seconds of the competition, 18-year-old Timothy (Yi Kuan) Li, a freshman at University of Waterloo in Ontario, Canada, leapt to the top of the leaderboard, taking home the grand prize. Animesh Fatehpuria, a student from Georgia Tech, won second place, while Karolis Kusas, a PhD student from University of Oxford, who finished second in last year’s competition, bagged third spot.
Bloomberg engineer Rangan Prabhakaran created CodeCon in late 2014 as a way to encourage students to improve their coding abilities. Throughout the year, regional competitions are held at leading universities to determine who will represent each school. The finalists then face off in the championship round, solving problems developed by Bloomberg engineers.
Contestants are not made aware of the problems beforehand, and are often surprised by their diverse nature – from working out how to arrange antique statues by height in as few moves possible to writing a program to win at Pokémon GO™.
“We spend a lot of time devising the questions for varying levels of difficulty,” said Luis Alejandro, a software developer at Bloomberg who came up with the ‘PokéMaster’ challenge. For this problem, contestants were asked to write a mathematical equation to simulate the popular mobile game and figure out the order in which a trainer would use their roster of Pokémon™ to minimize the number of Pokémon that fall to their opponents in battle.
“The logic is complicated, but the inputs and outputs are easy to understand,” Luis described. “Basically, it’s about survival of the fittest.”
Bloomberg software engineer Bar Shabtai was inspired by last year’s summer games in Rio to create ‘Olympic Arrangements.’ In this challenge, coders had to calculate the total number of event-venue combinations. Competitors had to determine which sport could be played in which arena and at what times. It’s not about making an actual schedule, he explained, but determining all the possible arrangements – a deceivingly complex task that he hoped would also be a lot of fun.
Firefighter Tim was by far the most detailed and tricky problem, with only a two percent success rate across the 140 finalists. Created by Bloomberg software engineer Chris Benedict, it led contestants on a search-and-rescue mission behind the burning walls of a building. Coders needed to write algorithms, test optimizations and create different data structures to save as many people as possible, equipped only with limited amounts of water. “There were no clean, pre-existing algorithms for this purpose – nothing applied, so it threw people,” Chris said, when asked why it was so difficult. “It also took me a long time to solve in practice,” he acknowledged.
Besides vexing coders on competition day, CodeCon is also used as a browser-based e-Learning tool by university professors and other educators. In just over two years, more than 15,000 participants have used the platform. And with such close connections to universities and students, CodeCon has also become a key recruiting tool for Bloomberg Engineering.
For example, 21-year-old California Institute of Technology (Caltech) junior Noah Nelson, who competed in his first CodeCon this year, has signed on for a summer internship in Bloomberg’s New York office. After interviewing with several Silicon Valley companies, he was impressed with the different approach taken at Bloomberg: “They were more interested in me as a person,” Noah recalled.
Ben Reid, a 21-year-old junior at the State University of New York at Buffalo (SUNY Buffalo), also chose a summer internship at Bloomberg, expressing his appreciation of the diversity of work at the company. This observation was echoed by Edinburgh student, and second-time CodeCon finalist, Mihai-Ionut Enache, who said he will be coming back to Bloomberg this summer for a second internship to experience more areas of Bloomberg Engineering.
CodeCon is incredibly competitive and strategy typically plays a key role. Contestants must decide whether to answer questions in order, tackle the toughest first or jump around from question to question based on what they think they can best tackle. This year’s winner, for instance, tackled the questions in increasing order of difficulty.
Contestants must also select their programming language. In London, Karolis chose C++ for its “efficiency” and worked quickly through the problems, spending the entire final hour on the most difficult, and highest scoring, problem. The leaderboard changed many times as students completed challenges and accumulated points, leaving others shaking their head and reaching for the jar of jelly beans on the table in front of them.
This year’s Global CodeCon Finals champion was the only contestant in the competition to answer every one of the problems, earning him a perfect score. He says that he too stumbled on ‘Firefighter Tim,’ but slowly made small improvements until he solved the problem and submitted his final answer with seconds to spare, sprinting to the finish line as the final horn sounded. The victory, he confided, was bittersweet. “I felt great at first,” Timothy said. “But then I felt like I stole it.”
Think you’ve got what it takes to compete in CodeCon? Check out the Challenger Series online to try out some problems.
Pokémon and Pokémon GO are trademarks of Nintendo Co., Ltd.