I am supposed to be writing these blog posts every weekend. This time I almost missed it. You should have been reading this text 5 days ago. The reason why this didn't happen is because I got consumed by a side project that I started.
Last Friday I wanted to watch a movie. I decided to start with the year 1984 and watch the best movie of each year, until today. But there is a problem. What do you define as "best movie"? Is it the movie that got the oscar? Is it the most oscars? Is it the one with the biggest box office for that year? Or maybe the one highest rated on IMDB? I decided to do what every normal person would do. Create a weighted function that takes into account all three. Oscars, box office and IMDB score. And to top things off I decided to make an app on the back of it.
So on that Friday evening I did create a very first prototype of my backend. I did collect some data (I still don't have all the data I need). I started with the easiest one to get, and that's the box office data for each year. I did create a basic API using Python and I ended up with a JSON response I could consume. Game on!
Next day I did focus a bit on the Frontend and i did something very basic with Svelte. It's a great opportunity to work with something different and learn. It was a breeze. I did prototype the frontend very quickly. It does look very simple but it's self explanatory I think. I did also fix some minor issues with my backend that I found as I was developing the app.
Sunday rolled and I had to put the DevOps hat. With the help of my friend Paris I did choose to dockerize my backend and host it with Google Cloud Run. It's a very easy service that helps you host your dockerized app and it has a very generous free tier as well. That was easy to set up. Next was hosting my frontend. Google Cloud is the obvious option for the integration but I did struggle to find what's best. I ended up with Firebase Hosting. Firebase is part of Google but their UI is superior and the experience is so much better. I ended up Sunday afternoon with an app hosted behind a Google URL.
One final thing before I finish my weekend project on a high. A domain name! Here I was lucky. 6 months ago I found out about a domain name with 5 letters and a .com tld. I bought it at once without any idea on what to do with it. The domain was avcud.com. That was a strike of luck! I finished Sunday with my project up and running, shared it with friends and family and went to bed. I had really hard time sleeping from my excitement.
Having hard time to sleep because of excitement
I did compare my experience and my productivity level on that weekend vs a typical day at work. There really isn't any way I can compare the two experiences. I did start a personal project, I had full freedom of decisions, a very clear idea of what I wanted to do and a clear problem of mine that I wanted to solve. I utilized knowledge I've accumulated after years working as a developer and came the other way with something that excites me and hopefully I'll keep working on for a while.
Work is a different story. Things are slower, the tasks are not always exciting and more importantly some days the productivity just isn't there. To add insult to the injury, a lot of the times you have no idea of the bigger picture. What problem are you solving exactly? It's easy to draw a conclusion at this point that you should stop working for others and only do your own things. Or be an enterpreneur and work for yourself. Or find your true calling etc. I actually disagree with all of that. Personally I am risk averse. I can't imagine myself quiting my job on a whim like that. I also can't imagine drawing conclusions from one project that went live. Honestly this is the second personal project, out of hundrends, that I've started and I have something to show the world.
What I am actually learning from all of this though is that since this project got some traction I am slightly happier at work. My creativity is fueled, I am not looking to channel all the excess energy about all the things that interest me (devops, backend development, data analysis) to my workplace. I do focus on helping my team being successful in whatever capacity I can. I enjoy solving interpersonal problems and building teams. I keep my excess creativity for my afternoons and weekends.
So my thesis here is this. Do work on a side project. It doesn't have to be programming necessarily. It can be anything. it can be art, agriculture, sewing, baking, music, anything. Channel your creativity there and make sure you diversify the avenues of happiness and I believe you will observe an extra calmness at work. Because work isn't the only thing that defines your worth as a creative person.