What I found useful was to have an end goal when I wanted to show off my skills. There are many things you can do but these are simple and very textbook. Having a project was really good and helped to focus on what needed to be done. Even if it is pretty useless and only I ever use it but it does show off quite a few things I now know that I didn't this time last year.
This is very good advice, pick a project that fulfils a need for yourself, picking something at random is a sure-fire way to start on a road to nowhere. It can also be good to work on multiple projects at a time, while it prolongs the development on all projects, it does keep things fresh, and if you hit a speedbump in terms of not being able to decide or figure out how to do something, it's good to switch to something else and wait for the "aha" moment to awaken you at 4 in the morning.
My Github has a few public projects I'm working on (
https://github.com/fizzyade), I suffer from painsomnia so I find coding a distraction in the early hours of the morning, it switches my focus from pain, it's a distraction technique. My father passed away in august and that had a knock-on effect on the projects that I'm working on, there's a few on Github that I've started to work on again here (although no more commits currently).
The latest project (the one shown a couple of posts up) is a DMG file generator for macOS, I had a need for one that would allow me to generate them easily, save a configuration and then launch builds from a script. There are a few commercial offerings, but I figured I would create my own tool that would work how I wanted it to, it leverages other open-source projects. (of which I've submitted enhancements to, following the work on my project)
It's GPLv3, which means that anybody can take it, use the code but they cannot use my work in a closed source application, I'm actually a big fan of the GPL (I used to hate it with a passion, but I've gotten older and wiser) and GPL is a great way of giving back to the community while not losing rights to your work, you are free to relicense your work as you see fit (dependent on any other projects you've made use of, you have to satisfy their license requirements).
Create dmge² was a result of me working on my desktop/offline version of the "Regular Expressions 101' site, I have a deployment script which provides a simple way of producing deployable binaries for Windows, macOS and Linux, I was struggling with the DMG script I was using and found a python module which handled it the right way....and that's how dmge² came into existence.
"Regular Expressions 101" desktop app was a result of needing to write a lot of regular expressions, I've never found a tool that is as good as that website is, but I would find myself with 10's of tabs open to that site with various different stages of an expression, it's not ideal. So I grabbed the sites javascript (the author was fine with this) and build a standalone application that hosted it, I could have left it there and it would have worked fine as an online application (for saving your expressions), but I went one step further and I intercept requests and handle them myself and have a locally (SQLite or MySQL or etc) accessible database, the site is completely offline and works as it would if you have a connection. I use the app all the time because all I need to do is click on the icon in the dock and I'm instantly back where I was.
And the top of this pile is an app called Pingnoo, it's an app like Pingplotter but is in early development, it's built around a very modular architecture which means that the main application executable does nothing but load plugins and initialise them in the correct order, each plugin adds specific functionality to the application (like the main window, or the menus, or an editor, ...), I hope to get back to this soon now that the two spin-off projects are pretty much now complete.
There are a few other projects including hardware projects I've put together, one is an SFP module editor and another one is an implementation of a memory stick which uses a MicroSD card as the backing store, it's a very specific implementation in that it doesn't present itself to the host as an sd reader, it presents itself as a memory stick, again I have a very specific need for this because one of my servers runs it's OS from a memory stick, the memory stick is the license and if it corrupts it's a ballache to get a new license transferred to a new stick, especially if it's the weekend, so my solution is to fake a memory stick, if the SD card dies, I just replace it and the OS knows no difference, as far as it's concerned it's the same memory stick that's plugged in.
So yeah, work on stuff you have a need for and be prepared to hit a fork in the road (outrun style) every so often!
(I'm also a massive fan of the JetBrains tools, CLion, PyCharm, WebStorm etc, for 20 quid a month you get all their tools and they are massive time savers for me)