A friend at work showed me this. Facebook has some good software engineering puzzles they are using to screen potential software development employees. The puzzles are arranged from easy ("snacks") to hard ("meals") to advanced ("buffet"). All of them are challenging.