?

Log in

No account? Create an account

earlier burfling | later burfling

Wanted: Master Software Developers?

Somebody's out there looking for "master software developers" - and they've concocted a pretty tricky set of puzzles to find them. I think.

According to this Slashdot thread, the original message was posted to the Denver Craigslist:
Wanted: Master Software Developers
Reply to: neohenryford@hotmail.com
Date: 2007-12-19, 7:21PM MST


01/18/2008

1. You're an artist, and software is how you express yourself.

2. You believe there's always a better way of doing things.

3. You embrace positive change, even when it means relearning what you know.

4. You're passionately committed to quality.

5. You're always looking for ways to eliminate waste, at all levels of development.

6. You're a team player, and you love (not just like) working with others.

7. You continuously strive for self-improvement.

8. You love to teach what you know, and learn what you don't.

9. You like to have fun while writing software.

10. You're extreme about your programming.

11. You can find out the significance of the date "01/18/2008".

12. You can find out who we are and how to reach us (no, we won't reply to the Contact link!).

Here's your clue:

eyAnOicgPT4gJycsICcgJyA9PiAnLScsICdzXG4nID0+ICdzLmNvbVxuJyB9 (3548, 4648)

Good luck!

http://www.networkmirror.com/hUmsXHsC3yihic9B/denver.craigslist.org/sof/514727825.html (a mirror of the original Craigslist posting, which has been taken down)
A base-64 decode of the clue gives a regular expression, which when applied to the title of the posting gives the URL http://wanted-master-software-developers.com/, which in turn gives you a series of puzzles.
The first puzzle is an exercise in test-driven development (TDD) using Javascript - and a remarkably user-hostile "development environment". (Basically, you're trying to write a function that passes all thirteen tests. Pushing the "TDD" button runs the tests up until one fails.) Once I figured out how to make the "development environment" work, it wasn't too terribly difficult to get through the thirteen tests. (The "sticky falling bricks of truth" is a clue that the function is sort of like the game Tetris - "true" bricks fall from row to row of the input array, following certain rather weird rules.)
Anyway, here's my Javascript that passes the thirteen tests:
canFall = function(d, row, col) {
  // can't fall from top row
  if (row == 0) return false;

  // can't fall if there's a block on the right
  if ((col + 1 < (d[row].length)) && d[row-1][col] && d[row-1][col + 1]) return false;

  // can't fall if there's a block on the left
  if ((col > 0) && d[row-1][col-1] && d[row-1][col]) return false;

  // can't fall if there are blocks below us on either side 
  if ((0 < col && col + 1 < d[row].length) 
     && d[row-1][col] && d[row][col-1] && d[row][col+1]) return false;

  // *can* fall if there's nothing below us
  if (!d[row][col] && d[row-1][col]) return true;

  return false;   
}
fall = function(d, row, col) {
  d[row][col] = true;
  d[row-1][col] = false;
}
f = function(d) {
  var original = new Array(d.length);
  for (var row = 0; row < d.length; row++) {
    original[row] = new Array(d[row].length);
    for(var col = 0; col < d[row].length; col++) {
      original[row][col] = d[row][col];
    }
  }
  for (var col = 0; col < d[0].length; col++) {
    for (var row = d.length -1; row > 0; row--) {
      if (canFall(original, row, col)) {
        fall(d, row, col);
      }
    }
  }
}

Once you get that function written, however, the next step is to figure out how to convert a semi-mangled quote about Henry Ford's invention of the assembly line (possibly taken from the Wikipedia article on Lean Manufacturing) into a string of numbers that go into the textbox with the "Execute F" button. The right string of numbers, plus a valid Javascript function, will redraw the "blue box" with the word "coLLAborATE"; adding that string to the page's URL gets you to ...

Part 2.

Of three.

Or maybe more. Who knows?

Ooookay.

Well, I'll keep an eye on http://groups.google.com/group/wanted-master-software-engineers, the Google group that this outfit apparently set up (and left empty) to build up some more viral buzz. Presumably, the part-2 puzzle depends on figuring out something embedded in a PNG graphic to decode "The Question", and the part 3 puzzle depends on figuring out something else (embedded in the scruffy CSS class names, maybe?) to decode "The Answer". Which, perhaps, will tell folks what the significance (if any) of January 18, 2008 is.

Or maybe not.


I first saw this referenced on the Extreme Programming Yahoo! group, and the test-driven development bit got my attention. A bit of judicious Googling found the backstory to date.

To sum things up, it's an interesting collection of puzzles. And presumably whoever's putting this thing on is looking for agile developers, who practice TDD, collaborate with each other, and are otherwise remarkably like me.

But that's an awfully large number of hoops to ask someone to jump through just to find "real" contact information. Besides, why would I want to move to Denver?