Microservices

The past few months have been quite an exciting adventure for me in software development. I experienced new technologies at different levels of the tech stack.

Application Development

In application development, I learned Go. Although really fascinating, I struggled a bit with the tooling provided (gopls is still at version 0.5.2 as of right now). So I rely on the other CLI tools that Go provides because imports don’t work as neatly for me. I’m sure it will improve over time.

Since I started working on an Ubuntu machine, I moved completely to Visual Code as my IDE. I still the highly reliable IDEA, but I wanted to use VSCode because most of the developers I work with closely use VSCode and so I wanted to master the IDE so that I can also help speed up their development (e.g. writing tasks.json so that our dev workflow can be unified).

man in black shirt sitting in front of computer monitor

Backend Development

For API development, I learned to use GraphQL, along with the benefits of using Hasura as a GraphQL interface for PostgreSQL databases. This was really impressive, and is the highlight of this post. Make sure to check out Hasura.

To spin those applications up, I learned containerized development: Docker containers, Kubernetes, Helm charts. Of course, these are still things I am continuously studying. This also explains why I moved to dual booting my desktop PC with Ubuntu.

For the applications I’ve been building I got to apply the concepts of hexagonal architecture. I’m still acquiring more experience in this area, but so far I am enjoying the benefits of the decoupled nature of the code.

Dev Ops and Infrastructure

I’ve been able to use online logging services which is interesting.

I’ve also spent a lot more time on AWS lately, learning to configure containerized deployments on instances. I tinkered around with AWS CodeCommit (Git repo mirrored/pushed from GitLab) and AWS CodePipeline for continuous delivery on my EC2 instances.

Neat thing I also learned was tagging my AWS resources with a project tag, so that I can see through the AWS Cost Explorer how much a specific project had incurred.

Research

Majority of the things I’ve been reading and studying now revolve around microservices: its challenges, nightmare scenarios, and how other people have addressed those problems. I’ve started watching YouTube videos about it only recently, and now I am starting to read formal research papers about it (published 2019, 2020).

It’s actually super enjoyable to read research papers that are actually highly relevant in my work, which is a far cry from my experience in 2016 to 2018: doing frontend application development with research in natural language processing.

I look forward to revisiting natural language processing later on, but for now, microservices will be the focus of my study.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.