Tech I'll be learning in 2022

ยท

5 min read

I know that it's already February and I am late to the party but hey I am here anyway. It's always fun to learn new tech. Last year, I went deep into Cloud, specifically Azure, then I discovered MLOps and in the latter part of the year, I studied Database Engineering. In fact, I'll be writing about each of them in this blog in some time, but today it is not about looking back but seeing what other things I can learn in the Future.

For this year, the following is my list:

  1. Docker
  2. Kubernetes
  3. Go
  4. Multi-threading and concurrency in Python
  5. Airflow
  6. Kafka, gRPC
  7. React Native

Also - DeFi

Now at a first glance, these are definitely looking very vague and they don't really connect with each other. I mean in which list you would find React native and Airflow written on the same page. Here's my explanation for choosing these:

Docker and Kubernetes First of all, I know that Docker itself has a lot to offer, and it's better to start with Swarm than K8 but hear me out, I have some experience with Docker but have never taken a docker image to production, the main problem being that most of my projects are just written by myself. Most of the time, the goal is to make the MVP as fast as possible, so I refrain from using microservice architecture and just write as much code as possible.

Recently, I updated the global python version in one of my VM. I knew of 0 apps using python and I was pretty sure that it should not cause any issue. But it wasn't that jolly. One of the applications crashed and in the end, I had to rebuild the app and deploy it to a new server. I was using EasyEngine to host wp sites, which also stopped working, so I had to create a new droplet. After this incident, I have decided to pack each of my apps in a docker container. I'll be shifting from owning multiple VMs to owning maybe 2 or 3 with decent specs that can power multiple docker images in a swarm or k8 cluster.

TLDR: I messed up a server and came to know the importance of Docker, now I want to learn and implement a cluster ASAP.

Go Currently, I only have a single language under my belt in which I am very much comfortable. I know a bit of JavaScript but I won't say I am good at it. As I have been using more and more of Python, I have been realising its pitfalls. Sometimes you just need a much faster language than Python or JavaScript. With async Python, you do have some option but from what I have read, Go is much faster. I will be sharing my learning journey here for all you folks to follow as well!

TLDR: Go is Fast and I like fast things

Multi-threading and concurrency in Python This is something that I am embarrassed about. I know a few methods about how to leverage multi-threading on python but there is just so much in this subject that I don't know of. At the moment, I am not sure from where I could learn and go deeper into this but as soon as I find a good resource, I'll share it here.

TLDR: Every Python-dev should know this

Airflow I have been playing around with data a lot and with these modern applications, collecting the data is as important as maybe the way your website/app looks. Data is what drives business and it shows customer behavior. This is what drives any product and not knowing details about the visitor on your platform can be harmful to your product. With Airflow, you can orchestrate data workflows. You can write n number of Spark scripts but this is what would manage them. In my job, I often have to use spark and sadly we are not using Airflow but if I learn it well, I am sure I can pivot my team into using it!

TLDR: It is an orchestration tool and is very helpful to data engineers.

Kafka, gRPC Kafka is a message broker. I got my hands-on of Kafka at one of the projects that I was working on at my work. That capability and power that a pub-sub system offers is just next level. Kafka is being used by many applications today including stock exchange/ crypto platforms that use Kafka to display the present price of the stock/coin. Message brokers are regularly being used in Data Engineering tasks where real-time data is required. These are normally clubbed with CDC processes. gRPC is another technology, based upon RPC. This tech dates and is used to trigger alerts on remote machines. gRPC is just a modern version of it often used in Micro Service architecture. It acts as a communication channel between the nodes.

TLDR: Kafka is actively being used in the industry and is important when building a data-centric application. gRPC is often used for communication between microservices.

React Native Everyone is on mobile, why are you not on it? I am a backend/data guy but one thing I like more than anything else is building products. React Native is something with which I can build more things, sometimes a product just requires a plain old good looking app and I believe react native is capable of doing that. I like the fact that React native is cross-platform and once you get a hang of writing react, redux applications, it gets pretty simple.

TLDR: I want to build apps ๐Ÿ˜‹

That pretty much sums up my yearly goals and I'll reflect on this regularly and update my progress. If you would also like to learn all or one of these technologies with me, you can subscribe to the newsletter from below or above and you will be notified whenever I post a new blog. And believe me, I hate spam so I have no intentions of selling anything to you ๐Ÿ˜

ย