Live data from Hacker News

Writing toy software is a joy

blog.jsbarretto.com

11–20 of 318 posts

Re: Writing toy software is a joy

#11
One of the best things that I’ve done for myself, career-wise, came during a 6-month sabbatical between jobs. I had a bunch of projects that I wanted to do, but I kept finding myself stymied by scope creep - when you don’t have any constraints, it’s hard to decide how big a project should be, and the projects would grow to these massive unfinishable beasts.

I decided to constrain myself to one week per project - whatever I could get done in a week was what I’d do for this project. The experience of going from zero to something useable in either a new language or a new framework or a new field in a week was enormously confidence-building - learning that I was actually pretty good at this whole programming thing and breaking through a bunch of walls I’d run into previously in my professional career gave me an incredible amount of trust in myself to be able to take on new challenges that really helped me when I was looking for a new job. At the same time, it reminded me what I loved about programming - in a week, I was able to build something that solved a problem I had or that someone I knew had, and I got to do so in a creative and intellectually challenging fashion.

If ever you find yourself in a position to take a couple months off between jobs, skip the leetcoding or whatever else and just build some toy projects - you’ll be amazed how much you already know.

Re: Writing toy software is a joy

#12
post #3

Toy Software is a lot like working on your bike/car/boat/whatever. Working on your bike is fun. Working on the bike you need to ride to work tomorrow is stressful. I miss writing toy software. It’s fun. But inevitably I want to use said software and that’s where the trouble starts. You find all the bugs and none of the time to fix them.

I recently wrote my own invoicing application. I got wrapped up in the joy of adding the features I wanted. Many of these features come at a premium monthly fee for a big named product.

I needed to get an invoice out in a timely fashion. As much as I wanted to use my app, I found certain kinks I needed to work out (with styling, adding addresses, etc.) -- This was where I realized what you have articulated.

At some point, it becomes better to prioritize the "fun" in working on my bike, and the "usefulness" of the daily driver bike.

In doing so, perhaps the fun/usefulness of each converges over time.

Re: Writing toy software is a joy

#13
One thing I've learned about building toy software projects or even just small personal software (stuff that's actually useful) is to avoid implementing flexible configuration engines. I used to fall into this trap where I thought I should make my software to be configuration-centric so that it would be usable for others in case I decided to make my code FOSS. The problem with that is making a configuration engine is a lot less efficient than just writing the code to do the damn thing. I've almost never shared any code outside of small libraries that were very low in complexity, and I wasted a lot of time writing code for other hypothetical people when I should have just been writing it for myself.

Re: Writing toy software is a joy

#14
This is one thing I don't get about the LLM people. For most of us who are professionals, writing software is not very hard, and it is in fact fun!

I don't need to let a computer write my software. I already know how, and I enjoy it. I need the computer to do the hard part (gathering requirements, speaking with stakeholders, etc).

Software is a joy.

Re: Writing toy software is a joy

#15
post #3

Toy Software is a lot like working on your bike/car/boat/whatever. Working on your bike is fun. Working on the bike you need to ride to work tomorrow is stressful. I miss writing toy software. It’s fun. But inevitably I want to use said software and that’s where the trouble starts. You find all the bugs and none of the time to fix them.

I used to self-host my email. I don't any more, for exactly this reason. And of course this applies to every other "just do it yourself!" enthusiast appeal. I actually want to delegate it to someone who does it full time.

Re: Writing toy software is a joy

#16

One thing I've learned about building toy software projects or even just small personal software (stuff that's actually useful) is to avoid implementing flexible configuration engines. I used to fall into this trap where I thought I should make my software to be configuration-centric so that it would be usable for others in case I decided to make my code FOSS. The problem with that is making a configuration engine is…

A rite of passage! :D

Re: Writing toy software is a joy

#18

> In 2025, the beauty and craft of writing software is being eroded. AI is threatening to replace us (or, at least, the most joyful aspects of our craft) and software development is being increasingly commodified, measured, packaged, and industrialised. Software development needs more simple joy, and I’ve found that creating toy programs is a great way to remember why I started working with computers again. Sad but t…

> AI is threatening to replace us (or, at least, the most joyful aspects of our craft)

I don’t like this either but every time I use LLMs it feels like we’re talking about completely different things. It moves waaay to fast and makes bad decisions at every turn, if I accepted them all it would be complexity deadlock within a week tops. Pooping out boilerplate sure but then you’re generally holding it wrong anyway (or there’s an opportunity to automate things). Plus even if you don’t have the time to automate it, sure, but then are you enjoying the act of shitting out your own boilerplate?

Out of the things I consider fun the LLM is at best a good rubber duck. It needs constant hand-holding, sometimes polluting the context window (and physical space) with a barrage of poorly written code. Code is bad, we’re trying to minimize it. No? At least that’s how I think: what’s the minimum* amount of code that can solve this problem?

*: minimum in a brain complexity sense, not char count. They correlate strongly though

Re: Writing toy software is a joy

#19

One thing I've learned about building toy software projects or even just small personal software (stuff that's actually useful) is to avoid implementing flexible configuration engines. I used to fall into this trap where I thought I should make my software to be configuration-centric so that it would be usable for others in case I decided to make my code FOSS. The problem with that is making a configuration engine is…

[dead]

Re: Writing toy software is a joy

#20
Big time! Almost all of my interesting knowledge came from toy projects I made to solve my own problems (or zero problem solved but it was fun so I did it anyway).

For example, I wanted to know if I can make 1 Kubernetes cluster span multi region, multi cloud. So I slapped TailScale for networking, replaced etcd with multi-region PostgreSQL Aurora, and span the Kubelets between my Raspberry Pi, Digital Ocean VMs, and AWS EC2. And then as the "customer app", I run CockroachDB, rqlite, and tiDB on it (one at a time, I don't want to burn money for this).

It was janky, zero SLA, I likely mis-tuned all the databases, and cost a bit of money :(. But it totally worked, all the db nodes can discover each other. I was satisfied and that's enough.

Another example would be writing my own Raft-backed database, similar to the ToyDB Rust project posted here. Is the DB useful? No. But it is so much fun and I learned a lot.

My AWS S3 bucket and private Git repo are a graveyard full of toy projects. My own Dropbox clone, Pinterest clone, Delicious clone, subset of Google Maps clone, etc. etc. are all RIP in there.

Post reply on HN