In 2011, I hosted the online round of Instructure’s first coding competition. I wrote the puzzle infrastructure, the competition website, and 90% of all the puzzles.
Here’s the news release about it right before it happened, and the blog post about it after
(We named it MebiPenny cause the final prize was $10,485.76. Unlike the “kilo” and “mega” SI prefixes for measurements (103 and 106, respectively), “kibi” and “mebi” are base-2 binary prefixes, so 210 and 220. IT’S A JOKE GET IT)
The restricted code execution environment was pretty cool at the time, but it is probably better done with LXC or containers (Docker) or something now. I called it Straitjacket and it used AppArmor to make sure remote code execution didn’t turn into a remote code execution vulnerability. Yay! It supported all the languages.
The competition website was called CodeWarden and is just a dumb web.py web app. It worked okay. MebiPenny 2012 used Canvas instead.
As you can see from the post-mortem blog post, the max possible score was 40, the max score was 23, and the average was 6.62. So I think I made the puzzles too hard, but boy were they fun to write. I wrote so many we used some for practice problems and some got used for the 2012 competition that I wasn’t a part of.
Anyway, I’m definitely planning on running another one again at some point. I can’t imagine competitors had more fun competing than I had running it.