LSBEngine: How did this blog happen?

4 Feb 2018

Foreword

This is the story of how this project came to life. It taught me a few things about what it takes to bring even the smallest project from nothing to production. I also learned about myself and what kind of motivation I need to work on a project outside of work. It was a lot of fun working on it but I learned that having a clear objective is key to making this kind of personal projects happen. You can find more on the features and the technical stack of the project here.

The story

The first time I started to think of this project was in July 2016, as I was on vacation in Scotland. I went there for 4 days to relax and do nothing. I used this time to think and read, but because you never really plan where your brain wanders to I started to think of engineering, even though I was supposed to relax.
I had been thinking of writing a blog for some time because I always kind of wanted to try and write things (either technical reports on my experiments or fiction) but was never motivated because I had nowhere to put it (NB: I am not looking for an audience, just a place to post my ideas that is not my hard drive).
Being an engineer I got this silly idea that I could just write my own software to publish my blog! So I started to think about it there, in the middle of my vacation in Edinburgh. I had quite a lot of ideas on how to do it, most of them proved not to be the right ones but I was happy to think of it and actually really excited.

The first ever piece of software was written a week after I was back from vacation. I had some experience writing Scala Spray applications so the backend was already sorted. Being primarily a backend engineer, I decided to try something new and learn Angular 2 (which was still not officially released at the time) for the frontend. I created a basic Scala Spray app and then went though the Angular quickstart guide in roughly an evening. I don't really know why but at the time the experience was really frustrating and I ended up not touching the project for a few months (note that I ended up overcoming my fear of Angular 2+ about a year later, I am now cured of this issue!). The actual reason I did not touch it for so long is probably that I lacked a clear objective and the frontend base I had was not something I was happy about.

Fast forward to January 2017, I had just handed my master's thesis and I need to change my mind with some personal project before starting to work on the defence which was scheduled sometime later. I decided I would not even bother with a frontend framework anymore, I just wanted to work on a project I loved with any tool I pleased and only implement what I enjoyed. I wiped out the frontend code I had, upgraded Spray to Akka-HTTP and started rolling.

This second attempt was way more successful and I think I can attribute this to the following factors:

  • I set clear objectives for myself with a list of features I wanted and the minimum set of those I needed to have a convincing project to deploy
  • I did not bother with technologies I did not like (more on this later): Angular became a simple use of Twirl templates with some JQuery. The MySQL database became MongoDB with ReactiveMongo to plug it into the Scala
  • I had some other friend starting their own blogs and I wanted to be part of this.

Even though I had a good run this time, life got in the way and I moved to London. There I learned another lesson: consistency is key. The interruption completely broke my habit of working on this project and it took me months to get back on this project after handling all the work around moving to a new country and finding a place to stay.

The final leg of this trip started in October 2017. A colleague invited me to come with him and a few friends to code with them. Nothing much, just a bunch of engineers assembling on Sunday to work on their individual projects, helping each other when necessary. This is what I needed to get back on tracks. As simple as that I started working on the project again. Having people coding with me was a tremendous help, they helped me getting back into the routine of regularly working on my blog and having a lot of fun with it.

And this is how, in January 2018, I finally came to publish this website. It is not perfect, there are still some more features I would like to add, but I already had fun and I hope writing about it will help me be motivated to work on those features and many more other projects!