The idea of this blog came to me all of a sudden — I love writing, I write quite a lot of texts, but most of these texts are not about the things I do daily. Moreover, it turns out, a lot of my followers and even friends don't know what exactly I do.
Well, I'm Alexander. I'm a programmer who worked in a very nice blockchain startup until November 2018. Now I don't. But instead of searching for a new job, I decided to give myself some time to try building something I will love and something I will be happy to use.
I got some initial inspiration from the great community called IndieHackers. There I read a lot of stories about people building some amazing things without any big budgets, employers or even business plans. The name says it all — indie hacking, or making something casually and apart from a full-time job. However, I had the opportunity to spend much more time building my precious project. I thought that there might be two potential outcomes — and, in the worst case, I would lose some money but obtain knowledge, which is a good thing anyway.
In November 2018, I started working on Spaces — the idea was to build a project management platform that is customizable yet very simple and fast. Of course, it didn't need to be something as monstrous and huge as Jira, but I think nobody needs any explanations why this project is very complex and challenging anyway — and it might be too complex to be finished by just one programmer. However, I was quite optimistic — my plan was not only to try building something useful but also to explore some new technologies and tools (I chose Vue.js for frontend and Go for backend even despite I've been using Clojure and ClojureScript during the last 3-4 years).
I still have some thoughts about how to simplify and finish this project, but I paused working on it in February. The screenshot above is from the current development version — it works, it allows you to create multiple users and have numerous customizable projects, it supports a lot of things I planned at first, but it's very far from being useful.
The outcome was expectable — I failed, mostly because I started something unachievable. However, my secondary goal was accomplished — I learned a lot about the backend, I started loving Go, its tooling and its simplicity. I also became a fan of Vue.js and made sure that it can be used to build effective and fast frontends.
But there are some other things I understood.
Thing number one: The knowledge I got can serve the good purpose
I struggled a lot with some tools and libraries, and I found out that programmers don't like to write about the challenges they face. Sure, they talk about them on different conferences and meetups, but this information is rarely available in a convenient written form. And this is how the idea of this blog appeared in my head. I decided to call it a Battlefield, and start writing about my small struggles and attempts to build. I don't plan to limit this blog to programming, and it's going to be also about different product-related things like marketing (from the noobie perspective), SEO, UI/UX, etc.
I also plan to share certain pieces of what I did while working on Spaces, and maybe even fix/finish/deploy the project again to let you all play around and let me know what you think of the prototype.
Thing number two: I need to start over
Secondly, I decided that I need to build a smaller and less complex project. It's almost finished — it took me about three months despite I initially planned to spend only a month or two. I'm polishing it now, fixing some small bugs, and my current plan is to release it in the next few weeks. Again, I was a bit too optimistic. But this time, I managed to finish the project itself and made it usable. Of course, I also obtained even more knowledge from the DevOps world — I started using and loving Kubernetes, built a bunch of background services, and organized a lovely and convenient deployment process. People say that all these things don't matter when you create a prototype, but I enjoy the process of development more when everything is correctly done from the beginning.
So why are you here?
I feel like I can already share a lot. I built two not so trivial web applications using the technologies mentioned above, and I spent quite a lot of time polishing and organizing the code, making it better, and improving the process of development. I know that it's not the most practical approach, but what's done is done and now it's time to start writing about it all. All the posts will be here, and I will be advertising them through my Twitter.
Hope you will enjoy the journey!