To one point. the amount of personal projects and the forced low priority when competing with the daily challenges at work lead me to a few things:
Programming sprints on weekends
When motivated by something a strange urge and force helps coding the most challenged tasks in a matter of hours. Learning how to take advantage of this is a must. Failure to do this will take over you much like a parasite consuming your focus on time not meant for distraction.
Version Control every project
Mistakes happen, code rewrites mess things, version control helps, but also it’s easy to cowork with someone else, or to pick up work where left. Also great to have a backup somewhere else than the local harddrive.
Wiki and Issues tracking
The wiki is like a marketing tool for yourself, describe ideas and make plans. What features you want something to have. What problems you have found so far on your prototype? Challenge and motivate yourself, why is this project so good to be working on? Why do you want this? (Ignore the rest of the world for now..)
Roadmaps and milestones
You will probably be frustrated and lose motivation if you start adding too much features to a project and it will probably never reach a version one. Work towards a version one. Make a list of things to add on the following versions.