Since many years I have been working on many personal projects. Some of them are quite silly if you think about what they do. The current project I am working is one of them. It’s an application to track & broadcast which game I am playing on my desktop, in real-time. And it's silly because, frankly speaking, who cares what game I am playing. But I have been spending my after-office hours working on it since past few days. So why am I doing it? Why do I work on silly projects? There are few reasons I can think of -

- Because it's interesting & it's fun

While the functionality of this application might be silly, the "How" part is quite interesting to me. And, when I start collecting this data, I am sure I can find some interesting insights in that data, like

  • What games I play again and again every few months,
  • What time of day I usually play and for how long

- Because I get to learn about new things

Since these are personal projects, and no-one is paying me for it, I don’t have any pressure to finish it. So I take my time to figure out the best solutions. I sometimes pick new languages, new databases, and new tools to work with on such projects. To give you an example, in my current project I am using golang, and interfacing with native APIs provided by MS Windows via user32.dll. Also since this application needs to run in background, I also had to figure out how to create Windows Service using golang. While these things might not be useful today in my office work, but you never know tomorrow I might be facing a similar challenge, and then I will know exactly how to solve it.
Note: The project is available on my Github account if you want to explore the source code.

- Because it’s an exercise

These projects are like brain-teasers which I enjoy. Sometimes I fail, sometimes I succeed. But in the end, I keep my brain working, and that’s my way of exercising. :)

- Because I can

I know few people who have interesting ideas for projects on which they want to work, but they don’t get enough time. In my case I have lots of time, and lots of ideas. So I spend time working on personal projects, just because I can.

So to conclude, by working on these projects I get to learn new concepts, new ways of doing things. And these learning sometimes I implement at my work, and great work somtimes leads to more money $$$.