I like all these. For the side projects I'd add open source projects. Start with the libraries and tools you use in your day job since it's easier to find things that need fixing/improving in them as compared to something you've never used. Go to their GitHub, browser their issues, pull down the code and mess with a local copy in your work.