It has been a while (3 months) since I’ve been hired. My batch undergone intensive training, and I chose platform engineering as my specialization. My work is exciting, and I’m very happy with it.
Let me start with nodejs. Who would’ve thought that I will ever use node. I considered this for a long time ago, but I never had the chance to practice. It didn’t really impress me. It might be because web services ain’t my focus before, and I’m stuck with PHP all along.
Now I might say, I’m greatly amazed with node. This was not the first time I encountered a server side technology like node though. I used GAE for quite some time, I loved it for python, but I didn’t utilize it well enough. And by the way, they are not exactly the same. It’s more on the web server side.
To be exact, REST APIs. Building APIs with node is comfortably awesome. I think I have never developed an API before, but doing something similar will probably require htaccess (Apache) or nginx and PHP. Oh and in line with APIs, I also learned more about JSON. I used to look at like some messy encoding, but comparing with XML, I can see the beauty in it. Of course mow, I would rather parse JSON than XML.
Though this was not mainly my focus, I’m trying to learn this separately during my free time. I must say, this is a weird language. I haven’t experienced yet the scalability potential and performance gains of this technology in line with others. But learning this is quite fun. I’ll be doing one of my side projects with this one, and I’m pretty sure I’ll be amazed myself.
First time IPC was introduced to me, I didn’t quite get the concept. But when it’s applied to an actual project, I learned it, and learned how important it was. Now, I’m dealing with Amazon SQS, Redis (PubSub), and RabbitMQ. These are great technologies, each with their own strengths and weaknesses. I got to learn these things in a fun way, and it’s exceptional.
Scalability and Optimization
Is my code scalable enough? Well this is one of the questions my boss asked me during my technical interview. I used to code just to make things work, and serve its purpose. But that’s just for me, or for my friends, or for a certain number of users. What if there are five million people waiting in line to use it? I chuckled and, said: Database and web server will crash.
Main thought about scalability is adding more and more servers. But that’s expensive, and usually not the first thing a wise team will do. As a developer, I need to optimize my code first. If I’m querying directly to the database five million times with the same content, then I am definitely doing something wrong. If I’m accessing a rate limited resource for like one hundred times per second then we will be blocked or similar.
This is mainly the most important aspect I learned up to this time. Optimizing one’s code ain’t easy. But satisfaction the results will bring will be worth it.
As a platform engineer, there are many ways to do things, many technologies that can be used, and many techniques can be applied. This is my next to-learn technologies by the way: Go, Scala, Haskell, CouchDB, and Riak.