I Challenge you to a Duel: Indeed’s 2013-2014 coding competitions

Wednesday, Apr 9, 2014 by Doug Gray, Nick Whelan and Courtney Jeffries

This past February, 136 collegiate coders from UT Austin, UIUC, MIT, UTokyo and 10 other Japanese universities gathered in classrooms across the nation to compete in Indeed’s Coding Duel. This “final showdown” coding competition resulted from the culmination of two duels held in Fall 2013, in the United States and Japan.

Where the Fall 2013 Indeed Coding Duels were isolated to each university, this showdown pitted the top finalists from previous duels against one another. The February showdown also raised the stakes by challenging coders to solve 10 logic and mathematical problems in exchange for a $3,000 cash prize for the top finisher.

What events led up to this final competition? What programming languages dominated the competition? Read on to find out how the competition went down, and how your university can get involved next year.

University Fall Face-off: U.S. competition

The Fall 2013 Indeed Coding Duel attracted about 100 participants from UT, UIUC, and MIT. Participants were given three hours to attempt seven programming exercises similar to the types one might find at an ACM-ICPC competition. With MIT as the new competitor and a friendly rivalry between UIUC and UT, the atmosphere became increasingly lively as the results began rolling in on our live results dashboard.

MIT had the first correct answer on the board, but UIUC and UT quickly followed. As the competitors entered into the final hour of the competition, the competition was neck and neck between MIT and UIUC. In the final half-hour, we turned off the results board, increasing the suspense of the event’s finale. Despite their newcomer status to the competition, MIT edged ahead and won the competition. Both UIUC and UT were close behind, with Illinois ultimately coming in second, and UT in third. The winners at each school won Chromebooks. The second and third place finishers at each school won a Nexus 7 and a Das Keyboard, respectively.

UT Austin Indeed Fall 2013 Coding Duel

UT students at Indeed’s Fall 2013 Coding Duel (Photo by Jolynn Cunningham)

The casual walk-up nature of Indeed Coding Duels at the U.S. universities attracted engineers representing a variety of programming languages and skills, and underclassmen were eager to hear how they could prepare for future duels (practice makes perfect!).

A December Duel in the East: Japan competition

On December 8, 2013, Recruit and Indeed hosted a similar contest in Japan, inviting all Japanese computer science students to participate. 159 students (109 in Tokyo and 50 in Kyoto) joined the competition.

The excitement of all the participants was palpable in the room and on Twitter at #rprocon. To our surprise, 34 coders submitted a correct answer to the first problem in less than five minutes! Within one hour, one contestant had already solved seven of the eight questions, so we added a ninth question that was not used in the U.S. to keep the winner entertained for the last few hours. An hour later, we had to add a tenth question. The final results were astounding: 19 people solved eight or more problems, including one person who solved all 10. No one from MIT, UIUC or UT Austin had solved more than seven. It was clear to us that the coders from Japan would be a force to be reckoned with in the final competition in the U.S.

Indeed/Recruit Coding Duel December 2013

Indeed/Recruit’s Coding Duel in Japan (Photo by Shigeru Nishikawa)

East Meets West: Top finishers from Japan compete stateside

In February 2014, Indeed flew the top finishers from the Japan Indeed/Recruit Coding Duel to Boston for a final showdown against the top U.S. contestants from UT, UIUC, and MIT. Of the 136 competitors in the final duel, 117 students submitted at least one correct solution.

Breakdown of final showdown participants by university:

  • Japanese universities (22)
  • UIUC (26)
  • MIT (35)
  • UT Austin (53)

Doug Gray, SVP Engineering at Indeed, describes the competitive environment at MIT, “We held the competition in a lecture room. Nearly every seat was taken and reporters from Japan and spectators formed a ring around the room. It was quiet except for the sound of clicking keys.”

Indeed Coding Duel February 2014

The scene at the final showdown at MIT (Photo by Takeshi Akita)

Our live results dashboard showed coder’s scores as they solved each problem and provided a view into the competitions that were occurring on the UT and UIUC campuses at the same time. The composition of the top 10 finalists included 2 students from MIT, 1 from UIUC and 7 from Japan.

One of the most exciting parts of this competition was the variety of programming languages used by the participants. The two most common languages used were Java and Python, but we also saw some C++ and Ruby. Interestingly, competitors at UT primarily wrote in Java, MIT students favored Python, and UIUC represented a diverse mix.

The programming language breakdown at the final Coding Duel is as follows (by solution, not by contestant):

  • C++ (281)
  • Java (279)
  • Python (234)
  • C (48)
  • Ruby (11)
  • Perl (6)
  • Matlab (3)

The overall winner of the final competition walked away with a $3,000 prize after solving 10 correct problems in three hours. He solved all of the problems using C++.

Japanese tech media reported the results of Indeed and Indeed/Recruit’s Coding Duel’s in Gizmodo (Japan) and Wired (Japan).

Get coding!

Want to be a part of Indeed’s 2014-2015 coding competitions? Make sure to keep your coding skills fresh by participating in Top Coder or by trying your hand at past problems like these from the ACM-ICPC World Finals.

Would you like your school to participate in an Indeed Coding Duel next year? Please contact Indeed’s Director of Talent, Jolynn Cunningham (jolynn@indeed.com).

 

Announcing inDNA: Indeed delivers job recommendations based on your DNA!

Tuesday, Apr 1, 2014 by Indeed Engineering

Today, we are proud to announce the release of inDNA, DNA-based job recommendations delivered directly to your mobile device.

Through our partnerships with top research universities, we have been able to isolate the DNA sequences that determine a job seeker’s true passions. From there, we developed our proprietary algorithm which matches your genome sequence to jobs that best suit your genetic makeup.

“The technology behind inDNA is quite simple,” said Gaurav Mathur, Software Engineer. “The job seeker applies her tongue to the mobile device. This action registers a touch event and the code is transported to our genetic cloud where we synthesize your DNA in software to provide you hyper-personalized search results.”

We celebrated the announcement of inDNA’s availability, on April 1, 2014, with a ring of the gong in our Austin office. Following the announcement, Indeeders in our offices around the world began licking their mobile devices to try out DNA-based job recommendations for themselves.

“We have worked tirelessly over the years to provide the fastest, simplest job search experience possible, but I never expected saliva-based job matching to be within reach during my lifetime,” says Jack Humphrey, Engineering Director.

Where will Indeed take this technology next? Our Engineering team is combining the core algorithm developed for inDNA with our genealogical job database to provide job recommendations based on your family tree. inTREE (as we’re calling it in alpha) will deliver job recommendations based on generations of your family history. Imagine seeing suggested jobs based on the work of your great-great-great-great grandfather who worked as a blacksmith during the Civil War!

To learn more about inDNA, visit http://www.indeed.com/slerp.

Efficient Query String Parsing with util-urlparsing

Friday, Feb 21, 2014 by Preetha Appan

We’re excited to announce the open source release of util-urlparsing, a Java library we created to parse URL query strings without unnecessary intermediate object creation. It also includes number parsing methods in ParseUtils that are faster than Java’s equivalent methods like Integer.parseInt and Float.parseFloat.

Java versions 1.6 and lower have a significant flaw that leads to inefficient memory usage when using the String.substring method. When processing data from our log repository, we need to extract small substrings from much larger strings containing event data key/value pairs. The primary class in util-urlparsing, QueryStringParser, was written to efficiently parse this data without generating any intermediate string objects. It does this via a callback mechanism that lets you only parse the keys you are interested in from the larger query string.

Our query parsing benchmark shows nearly 4X speedup over a naive Java implementation using String.split under significant heap space constraints. It can parse a million key-value pairs in under 3 seconds given a max heap of only 64MB. Our number parsing benchmark shows over 2X speedup compared to equivalent methods like Integer.parseInt and Float.parseFloat.

util-urlparsing is available for download on GitHub (github.com/indeedeng/util/tree/master/urlparsing) or maven.org (search.maven.org/#browse%7C-525259937), and we have documentation which includes usage examples to help you get started. If you have any questions, check out the Q&A forum for our open-source Java utilities.

If you’re interested in learning more about Indeed’s log repository, check out the video and slides of our January 26th talk “Logrepo: Enabling Data-Driven Decisions.”