I write programs for fun. I build hardware for fun. I also travel, go to church, listen to music, go to concerts, cook, volunteer for NGOs, participate in CouchSurfing, ride a bicycle, take photos, play games, study, parapente, ski, hike, and swim for fun, and somehow even have the time to sit back and watch a beautiful sunset when there is one. I don't watch TV, drink, rarely watch movies or YouTube, though sometimes play AoE.<p>Ideas come all the time, usually from those other areas of life. When I have a new idea, it makes a mess all over my browser tabs and desktop while I read all about how to implement it (data sources, existing projects). The idea consumes my thoughts. I talk about it to people who I meet. When I should be praying, I'm thinking about the algorithm. The obsession is probably rather weird to non-technical people, like my long-distance girlfriend.<p>If I'm in the office but haven't got any pressing deadlines for company work, I'll do some coding on my side project. It's not usually something that can make money, though it is usually educational. I want to be able to publish it on my Github, although I often procrastinate writing the documentation. Some companies (e.g. Google) say that they support innovation, but they want to own all my intellectual property, and that means that I'm not allowed to pursue ideas while working there. I've avoided such companies for specifically that reason.<p>When I finally do write it up, my software Show HN will sometimes get onto the Hacker News front page, or hardware on Hackaday. Very rarely, someone might see that and offer me a job. I suppose that's the reason I've written less documentation these days; I'm waiting until I hear a visa result and then I'll know about which country I should be working in.<p>My ideas don't make money. I'm probably the only user. Yet in practice, side projects have helped me build up a code base that I can use for all programming tasks, including at work.<p>In case you're wondering what kind of ideas these are, here's a small sample from the last year:
EspUSB WiFi keyboard manufacturing, 12V and mains to USB adaptor inside a car form factor, WiFi to VGA on an ESP8266 for PPT slides, Fondant (JavaScript bookmarklet to load pdfjs library to open a PDF file to run a self-contained web app stored as PDF attachments), MySpace Dragon Hoard by country/language/genre for learning languages through music, a Chinese/English chatbot based on song lyrics to automatically write love letters.<p>I don't judge people who only code as work; they're better at making money than me, and are definitely more likely to be promoted to management and have a good career. All these other things inspire me in a way that LeetCode just doesn't. Therefore other people get interviews much more easily, and know how to sell themselves. I'm bad at front-end design, so as a portfolio most of these look like rubbish. When I have a job (like now!), I don't need to worry about food and shelter, and the rest of things in life mean I'm quite happy, really. Being contented means I'm not interested in the "hustle", so I'll never make as much money and I know it, but that isn't important to me. I hope this resonates with some other passion-programmers, and I'd like to hear any opposing or similar perspectives.