Hey, ho! It's Friday - we made it! Let's rock at night, shall we? I'll be pretty happy if you'll give your brain some rest. But don't binge-watch Netflix all night, ok?
I'm very excited about today's newsletter, 'cause I'm a big fan. I'm not an expert, so the reader discretion is advised. I am just sharing my own experience.
During my career, I worked on a project that was started from scratch...only a few times. And it impacted the way I think when I'm building something. It's like I'm always a younger brother, that will get used pants from the elder sibling.
There always was a system that was built by other developers before me. Usually, they were smarter, more experienced, and a better fit as developers rather that I am now :) So I always read code made by other people, understand it and learn from it. In those projects, I always need to change or extend something.
When it's an ongoing project - you start to notice a lot of small problems that help to crash this software frequently.
And you are like (trying to play the smartest guy in this room): "Hey, why wouldn't we upgrade whole module A, rather than try to add another X, Y, Z into it?"
I remember, while learning Java in the academy, they had something similar to the microservice approach. And they used it pretty often, and I thought one of the reasons was that they had a lot of business solutions related to interconnected devices that usually have Java Virtual Machine installed on it. And back then, we used to have simple devices, so you couldn't just put everything under one roof.
So I start to explore how and why to use microservices as part of the code that I'm working on. Primary reasons are pretty simple too: they fit perfectly in our modern world.
Even if you're using the monolith approach, you are still connecting your project with other services. Also, if it's not a perfect example of microservices, communications now is an essential thing.
Payment gateways, analytics dashboards, mobile devices, advertising - everything is exchanging your data(even when you don't want it)
The time when you can create a calculator application and send it as *.exe file is gone. Deal with it.
I feel it too. While Bootstrapping, I didn't have money to hire good developer to join me. So I've opened an internship program, and my students are helping me to code my project. And you can assume, having a big herd of students at one place is not a very quiet and productive thing at all. Especially with the monolith approach.
They have 0 experience of doing anything :) And they will mess up anything when they have a chance. So by splitting code into very simple and independent pieces, I was able to move my project forward.
And Yep, the first server I deployed, that was related to my project - was on Heroku. Yes, there can always be other, maybe better choices, but AWS didn't accept my Ukrainian cash card, and Heroku has pretty good tutorials and easy to understand help section. Plus, it has a pretty intuitive interface. Plus, GitHub integration. So it was a perfect match for me.