As an example of an effective take-home project, I was applying for a contract helping implement features for an open source project. Normally I don't like take-home project, but this project was interesting, so I was willing to give it a shot. It was basically implementing a 20-line function, but in order to implement it you had to be good enough at code spelunking to find the appropriate place to put the function, and then figure out the build system to build and debug the implementation. The implementation itself was fairly straightforward, maybe used a set or a map or something. When I was finished they talked with me about the implementation, and asked how I tested it. After I finished I realized that it was an effective interview project (even though I was annoyed at having to spend extra time), because it was designed to show if I could navigate an unfamiliar codebase and build system, which is an important skill, especially for an open source project. (I did get the contract, and it was definitely an interesting project to work with.)