Submission Directions

If you'd like to work here, please answer at least two of the programming puzzles and send us your solutions. And you must use at least two different programming languages in your submission (one per puzzle).

Unless otherwise specified (or if a problem is obviously referring to a specific programming language), feel free to use any of the following languages:

  • Chicken Scheme 3.3
  • Erlang/OTP R12B
  • GNU C/C++ 4.1
  • PHP 5
  • Perl 5
  • Python 2.4
  • Rhino Javascript 1.7
  • Ruby 1.8
  • SBCL 1.0.18
  • Sun Java 1.5 (running on GNU Linux)

The criteria by which we judge code are:

  • Correctness
  • Efficiency
  • Elegance
  • Readability

Make sure to comply with all of the following directions:

  • Submissions should be sent via email to
  • The subject line of the email must exactly match the puzzle name.
  • Indicate in the body of your email a brief (1-2 paragraph) description of your approach and any trade-offs you made.
  • Include your resume as an attachment along with your submission.
  • Your solution must be executable in a Unix-like environment. Don't use libraries that are not part of the language/interpreter.
  • Your solution should be included as an attachment to your email.
  • You may archive your solution files with tar or zip.
  • If your solution uses a compiled language, it must be buildable using either GNU Make 3.81, Ant 1.7.0, or Scons 1.0. You must supply your own makefile, build.xml file, or SConstruct file.
  • Your solution must create or supply an executable whose name is specified in the puzzle instructions.
  • For compilation, you may assume that your compiler is within your environment path. For interpretation, you should use /usr/local/bin.
  • If you make a mistake in your submission, you may send another email.