We recently wrapped up a programming contest that asked the fine students at San Jose State University to help us out with a task. Unlike our 24 hour contests where students create bots to compete against each other, this challenge allowed contestants to download a programming problem and work on it over a period of 5 weeks. In the final week, the entries were submitted to a panel of judges for review. Finalists were chosen to then present their work in person, and these presentations determine the outcome.
Here's how it went.
Per the problem specification, contestants were tasked with writing a Lua script to run within a Barracuda-provided VM that would scan the detected devices, parse device/driver mapping files, and provide a list of drivers to be loaded based on the detected devices. This was an exciting problem for us to give to the contestants, because we wanted the winning submission to be used in our virtual machines.
This was also an exciting competition because our participants would be using Lua. Lua is a tiny, embeddable programming language that integrates very tightly with C. Like video game companies, embedded developers, and tons of others in the industry, Barracuda uses Lua wherever both the performance of C and the rapid application development of scripting languages is needed. This was probably the first time that many of these students had used Lua, and we were looking forward to seeing their solutions.
Of the approximately 40 folks to download and examine the problem spec, we ended up with two bona fide submissions that functioned well. This was a tough problem (tougher than I'd anticipated), and it reflects super-well on our two finalists that they were able to stick it out and get code that solved the problem. We didn't get a ton of working submissions, but what we got was AWESOME.
Swapnil Joshi (SoftE Master's Candidate) took first place with his very-well-commented and comprehensive solution to the problem spec. The judges were particularly impressed with his problem decomposition, commenting, and additional functionality above and beyond the problem specification. Both Swapnil's and Robert's solutions worked well, but Swapnil had just that little bit extra. From his solution:
Note the excellent overview of the code's functionality, usage docs at the top, and breakdown part-by-part. Excellent work!
Robert Kham (CompSci Bachelor's Candidate) took second place with a great working implementation that was well-documented and impressed the judges with its self-awareness. When maintaining code, it's always good to know where the implementation might be up for improving. From his solution:
The main engine for the code was very direct and to-the-point, using Lua constructs well to deduplicate the driver list and keep things simple.
How Did You Pick a Winner?
Judges BJ Black (SJSU CompSci 2008, Director Platform Engineering and Content Delivery Barracuda), Satbir Chahal (SJSU CompSci 2008, Lead VM Developer Barracuda) and Grizel Lopez (Director Content Security, Barracuda) met shortly after the submission deadline and reviewed the entries. Submissions were judged primarily on functionality and code style/maintainability. Both bona fide submissions were great examples of Lua code (especially for folks with no Lua experience!), but ultimately Swapnil edged out Robert based on extra functionality and the enhanced maintainability of his code.
What Did They Win?
Given the difficulty of the problem, both finalists were awarded a trophy and a $250 Amazon gift card. Barracuda will also be offering both finalists summer internships based on their fantastic performances (pending employment verification, etc). Thankfully for us, both finalists have enthusiastically expressed interest and we'll be bringing them on board as soon as possible.
Swapnil's implementation will become part of future Barracuda Virtual Appliances as part of the preboot mechanism to load drivers for the various hypervisor and cloud environments.
What Did They Learn?
Neither finalist had exposure to programming in the Lua programming language previously. Given its importance as an embeddable language in C programs (used in several Barracuda projects as well as being commonly used in the video game and other industries), learning it is a big step indeed.
This project also served as a great introduction to hardware drivers, parts of the Linux kernel, and getting VMs up and running. Both finalists' code was definitely instuctive to the folks in attendance.
The Awards Ceremony in Pictures