Cracking the Coding Interview: My personal code-katas and solutions