My engineering background still leaks out in various software projects.
To help build my artistic skills, I wrote Depict. This program displays randomly selected images from a database provided by the user for a fixed amount of time. In other words, this program displays images for gesture drawing. With an image database, you can select from 10 x 2 minute poses, 5 x 4 minutes poses, etc. The program will display a randomly selected image for the requisite time before moving on to a new image.
I have always had a strange fascination with a unix game called ularn. This ASCII based game has some amount of luck, but a remarkable amount of skill and planning to achieve the best possible score. You are an adventurer in an underground maze looking for a potion and acquiring gold, jewels, armor, and weapons to fight increasingly hostile monsters. You can only carry a limited amount and are trying to maximize your gold when you complete your quest. I developed a graphics version of the game that is now in its 4th generation.
As part of learning statistics, I wrote a program which could do all of the statistics required of my first semester students. The program displays statistics graphically showing, for example, how a hypothesis test works with one or two tails, a test statistic and p-value all represented on a graph. I do not know how much use students derived from this, but for me, it aided immensly in my understanding of statistics (a topic I decided to teach to help in my own understanding).