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.