Most developers I know write code for money or fame. They serve corporations or burn hard at startups. There is nothing wrong with it, but it seems that programming for fun is fading away in my peer group. It’s a shame.

Last month I published pssst.zone. The whole project is just a QR code sticker that leads you to an anonymous chat room. Usernames are generated automatically and only the last 100 messages are kept. I’ve printed a bunch of stickers and glued them in a variety of public places.

People were actually using them! I felt long-forgotten waves of excitement and energy wash over me. To be honest, it was the most satisfying thing I did this month, despite the whole project being ~100 lines of code and ~50 lines of HTML built with wooden sticks, duct tape, and the bones of a dead bird (If you have to, see the source code). The ROI from time spent to endorphins felt was amazing.

This project has been sitting lonely in the dark corner of my github repo for 2 years. I was too afraid to share it. My hesitation stemmed from my fears that the source code was not that great, people hate QR codes, and the whole idea was stupid to begin with.

But projects don’t have to be big or great. Last summer, me and my friend decided to test this crypto thing everybody had hyped up. So, we created “crypto-bazaar.” We placed a bunch of energy bars and fruit bowls next to a printed cardboard sign reading “pay anything you want.” We wanted to find out if people in our coworking space were actually willing to use crypto currencies.

Results: 1 sold, 3 stolen, the rest rotten. Complete failure. And that’s okay. It would be much better if that was the start of our energy bar crypto empire. But we had our fun moments with it, so it served its purpose to entertain.

In addition, projects may have no intent to be used. In a few cold winter nights, Servasm was born. It’s a webserver in assembler. I’ve shared it and received some nice feedback, but I’m sure nobody ever used it. And good for them.

A few months later, I stumbled upon web server in PostScript. It’s a project in the same spirit, but way better. Webserver written in a language your printer uses. Pure art. Of course, nobody should be using this.

Building things is fulfilling and, like any art, it can be both an escape and a destination. It got me into programming in the first place, and most likely, it got you into programming too. We need to rediscover it. For me, programming for fun is a nice treatment for Imposter syndrome. And it can restore your faith in tech. And cure all mental illness in the world… Okay, maybe I’m exaggerating a bit.

But if you can walk out with one thought from this post, it should be: please share your projects. More on that later.

How

I talk to many people about this idea. Their position tends to fall into one of three buckets.

It’s pointless. With this, I have to agree. But everything else is, too, and we all will die really soon. In what will seem like a few moments, our sun will get cold and there will be nobody to use your project. So you might as well share it while you can.

This is really, really hard. I would say it’s just hard. Most of my projects don’t see the light of day; my ratio is 1 done to 3 failed. However, it got better after I started to pick smaller projects and allow myself to not be a perfectionist. You don’t have to be exceptional to make things, just persistent.

People will think that I’m a bad developer when they see my useless shit. I’m in this bucket most of the time. But the truth is, most people really don’t care. In the end, you will have some positive feedback, and a few haters will say something about your choice of programming language. So be it.

They are just a vocal minority of people who most likely don’t create anything at all. You should just ignore them and keep creating things. And listen to feedback mostly from just a few people you trust.

I will say it one last time: you need to show your projects to other people. Other people’s feedback is a source of energy and inspiration. Show failed projects. It gets the wheel spinning.

Movement

It’s okay to not be perfect and to sometimes create stupid things. Enjoy this Endless Horse.

For me, it started with Why the lucky stiff. He was a famous member of the Ruby community. His output volume was amazing. Many of his projects were simply playful experiments that were closer to the realm of recreational programming. Here is few examples of his work:

poignant.guide: comic guide to Ruby programming

Camping: web framework limited to 4k of code

bloopsaphone: arcade sounds and chiptunes library

I was inspired by his unique style. He wasn’t afraid to look messy and publish and share his work, even if it wasn’t perfect. He was weird and strange, and that was good. He disappeared from the Internets on 19 August 2009, but that’s another story.

But his work is not the only thing that inspired me. I feel the same vibes from Julia Evans and Aaron “tenderlove” Patterson. Julia makes cool zines about computers and blogs about her adventures in computing. Aaron, while being one of the most prolific people in Ruby computing, markets himself as “adequate” instead of a 10x engineer. He openly admits his flaws and mistakes and creates cool small projects. See his Magic the Gathering scanning machine.

It’s okay to not be perfect, to be messy and create strange things.

Inspiration

Recreational code can have many forms, there is no true way to do it. But here are some examples to awaken your appetite:

If you enjoyed any of these, subscribe to my biweekly newsletter.