Before I started writing rust, I have never written any multithreaded programs. I did write some minimal C homework using multithreading, but even if that was still relevant, I have long forgotten everything, apart from that it's extremely hard to get right, opens an entirely new family of bugs like race conditions, that are really hard not just to anticiapate, but to reproduce and debug as well.
I have an old wallpaper script that changes wallpapers every 30 minutes to a random picture from a folder, just like how you can do it with Windows 7. I'm going to take a look at how this could be implemented using systemd facilities.