I started off in my career fairly close to the hardware. I had learned C and Objective-C to work on the iOS platform. I had a lot of control over the software and I had to learn to manage memory and spend hours or days fixing an issue that was caused by my own negligence and oversight (this was pre-ARC). My career grew with a bias towards iOS and I started learning Java (and more recently Kotlin) to branch to Android.
With Android development, memory management was less of an issue due to a forgiving garbage collector. However, I still had a lot of control over the application lifecycle and I was forced to learn the differences between the two major mobile platforms and from interface to functionality that’s a lot to take in.
As I grew and became less content in my career, I started to have my own ideas. My idea required a web application with a few basic features like access-control and authentication. It needed a few endpoints and resources. I did some research and came across NodeJS. I thought I might as well give it a shot since it looked fairly easy to setup and was well supported. It took me one evening to get this web application up and running. One evening. This is the stack that I threw together.
- NodeJS (Server)
- mLab (Mongo DB)
- PugJS (Template Language)
npm install --save xxxcalls
A few hours hacking around and I had a functional web application with a functional authentication system and access control. I didn’t care about Redis, Docker, K8s or any of the good stuff yet. My MVP was built. I could test my product. I had a sandbox database with no backups, I had an unscalable product hosted on Digital Ocean. However, I tested this product with real users and realised it wasn’t as magical as I dreamed. Oh well, nothing wasted, just learned.
However, after learning a few rules such as using a transformer with polyfills, the most common dependencies and the general ecosystem — I started to get much more comfortable. I was able to create an MVP of any product in a couple of days. That’s an impressive turn-around and it’s all thanks to NodeJS.
Once an MVP worked out, it was time to invest time elsewhere. I started to branch out and care about scaling for my specific needs. NodeJS is not a silver bullet. NodeJS is great for some uses but like any other language, it’s not to be used just because you’re familiar with it.
If you liked this article, please clap and follow me to read my future content.