Building products myself, with my own rules on how it'll be built, and how we get feedback from customers.
I fell out of love for programming after working at too many feature-shops where we'd churn out feature after feature (and in some cases blindly remove features), with nearly zero feedback from real users - just input from product managers with zero domain knowledge.
Pytest, Playwright, and Pre-commit, rewriting to use more modern frameworks, Codeium, poetry, taking some time to set up VS code extensions.
Also, being way more selective with personal projects. Having too many of them can make other, unrelated projects at work miserable, by messing with your schedule.
When I had my own note taking app, it would sometimes take an hour a day. That's more than enough to affect social life or make someone tired at work the next day.
Especially with hardware related projects as those can also make a physical clutter problem.
I enjoyed personal things a lot more once I started layering on all the best practices, same as I'd do for a work project.
And work projects, I've started doing things like type hints for everything not just "stuff that seems big enough to need it", rather than the usual "Just enough" method that a lot of people seem to use.
Before that I wasn't really happy with the quality of anything I built myself.
Now, projects get more reliable and often more performant over time, and I don't feel like I'm just spinning in circles writing garbage, and I'm actually learning new tech and practices I'm actually going to use in the future.
Also, Gitmoji, badges, and all the current trendy things people do with readme and documentation might not actually be that useful, but they sure are fun.
I've started doing block quotes under title headings, like novelists used to do at the beginning of a chapter, and using retro web 88x31 badges.
Side projects where the fundamental goal is to rediscover the joy. Not to complete something. Not to build well-tested maintainable software. Not to acquire users. Not even necessarily to learn or practice.
Just to play with computers like I used to play with legos. And then close the potentially unfinished useless pointless messy unmaintainable broken software project, never to reopen it, and be content that I had fully achieved what I had set out to do.
I first read 'The Joys of the Craft' section of 'The Mythical Man-Month' at about the five year mark of my programming career, a time when I was feeling a bit blue about the whole enterprise. It inspired me and kept me at it for decades more.
One bit from it, not even the most quoted:
"Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be."
The joy returns in situations where it isn't software as a team sport.
I'm very capable in group settings, but it's far less fun for me. It's a continuum of the larger the team, the less enjoyment. Working on projects I choose, alone or with one other person, is the environment I enjoy most. There are tradeoffs with each, but I prefer those constraints.
Pen plotting. You write code that makes designs by drawing a bunch of lines, and then use a robot (mine is an AxiDraw) that traces it out on paper.
In general, generative art (using the pre-generative-AI meaning, i.e. procedurally generating art). There's something really satisfying about writing code in a creative context, because there's often no right or wrong. Often you write a bug, or your algorithm didn't work as you expect, but it looks interesting, and that becomes a new path to explore.
Writing about it. Corporate programming often sucks the joy out of figuring out small things.
A few years ago, I started writing about simple things that I learn during my day-to-day work. I write on my personal [site](https://rednafi.com) that I cobbled together in a single weekend.
It doesn’t take much time and works as a great confidence booster when a few of them eventually hit the front page of HN.
Now I often pick up new things just so that I can write about it.
I'm a web dev by day so playing around with Unity has been really fun. Having to consider time, i.e. what does everything like at time t=0, t=1, etc., adds a new dimension I don't get it my day job.
It's not programming but playing around with Blender has been really fun too.
I hear you. I come from a web dev background too and co-created A-Frame (https://aframe.io/) 8 years ago taking some of the Unity ideas (entity component) while retaining the fun parts of Web deving and publishing. Games and 3D graphics is super deep. Joy for me is having always interesting areas to explore that are not just the accidental complexity of the regular Web dev tooling.
I fell out of love for programming after working at too many feature-shops where we'd churn out feature after feature (and in some cases blindly remove features), with nearly zero feedback from real users - just input from product managers with zero domain knowledge.
Also, being way more selective with personal projects. Having too many of them can make other, unrelated projects at work miserable, by messing with your schedule.
When I had my own note taking app, it would sometimes take an hour a day. That's more than enough to affect social life or make someone tired at work the next day.
Especially with hardware related projects as those can also make a physical clutter problem.
I enjoyed personal things a lot more once I started layering on all the best practices, same as I'd do for a work project.
And work projects, I've started doing things like type hints for everything not just "stuff that seems big enough to need it", rather than the usual "Just enough" method that a lot of people seem to use.
Before that I wasn't really happy with the quality of anything I built myself.
Now, projects get more reliable and often more performant over time, and I don't feel like I'm just spinning in circles writing garbage, and I'm actually learning new tech and practices I'm actually going to use in the future.
Also, Gitmoji, badges, and all the current trendy things people do with readme and documentation might not actually be that useful, but they sure are fun.
I've started doing block quotes under title headings, like novelists used to do at the beginning of a chapter, and using retro web 88x31 badges.
Just to play with computers like I used to play with legos. And then close the potentially unfinished useless pointless messy unmaintainable broken software project, never to reopen it, and be content that I had fully achieved what I had set out to do.
One bit from it, not even the most quoted:
"Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be."
[0] https://home.adelphi.edu/sbloch/class/adages/joy.html
(If someone reads it there because of my remark, please consider making a donation: https://archive.org/donate)
I'm very capable in group settings, but it's far less fun for me. It's a continuum of the larger the team, the less enjoyment. Working on projects I choose, alone or with one other person, is the environment I enjoy most. There are tradeoffs with each, but I prefer those constraints.
In general, generative art (using the pre-generative-AI meaning, i.e. procedurally generating art). There's something really satisfying about writing code in a creative context, because there's often no right or wrong. Often you write a bug, or your algorithm didn't work as you expect, but it looks interesting, and that becomes a new path to explore.
A few years ago, I started writing about simple things that I learn during my day-to-day work. I write on my personal [site](https://rednafi.com) that I cobbled together in a single weekend.
It doesn’t take much time and works as a great confidence booster when a few of them eventually hit the front page of HN.
Now I often pick up new things just so that I can write about it.
It's not programming but playing around with Blender has been really fun too.