I was hired as "night operator" for a timesharing company in Phoenix called Transdata. Their service ran on a Sigma 5, but they didn't offer the service at night.
So my graveyard shift gave me full access to the Sigma 5 to do whatever I wanted. I learned BASIC, assembly language, and Algol 60. And the art of writing an entire useful program on a single punch card.
One single-card program we used a lot was a simple print program. You'd put the program card at the front of the deck, and it would load and then print out the contents of all the cards after it.
Only problem was it was a bit slow. It had a single buffer that it read a card into, then printed the contents, then read the next card and so on.
I looked at it and realized I could squeeze in just enough code to make it double-buffered. It could read the next card at the same time it was printing the previous one. Twice as fast!
Not much by today's standards (unless you're into code golfing), but it was a lot of fun at the time.