Make a game. Or contribute to an existing open source game. You can easily set and adjust the scope and depth of the project so that it's fun and challenging. Chances are, you already play some games you like, and chances are you can get inspired for your own game project there. And perhaps others will even find it fun to play.
Somehow, when I get playing a game for any period of time, sooner or later I slowly switch to hacking the codebase as it ends up being even more fun. :-) If you're interested in building a non-trivial game, you may find it interesting to take a look at the code of existing open source games and start hacking them. You will find fun and rewarding low-hanging fruit features lying all around. In strategies - Freeciv, OpenTTD, Wesnoth, Widelands..., arcades like Supertux or Stepmania or even FPS like Xonotic. Or UI or computer player for a board game.
Games are also nice because they are very multi-faceted - you can start by adding simple features, but also work on optimization and better core algorithms, graphics programming, network programming, improve the user interface, porting it to a new platform or have a go at building an AI computer opponent. Hey, try building an AI for OpenTTD, none of them is perfect and they have a nice plugin system. And if you get more involved, imho they look pretty cool on a CV of any programmer.