Tamerlan Gudabayev

2023

Microservices Principles: Decomposition

You were tasked with creating a new project. As this project's scope is enormous, you decide to separate the components. You tell yourself, "Wow, finally I'm one of those cool developers that work with microservices". But you quickly fall into your first problem. How

2022

Creating RESTful APIs using Go, GORM, and PostgreSQL

One of the most common uses for Go is in making backend services. This mostly includes creating RESTful APIs. (If you are not familiar with RESTful APIs, here's an awesome video by IBM explaining it.) What is a REST API?Learn more about about APIs: http://ibm.biz/

2022

An Introduction to DORA Metrics

Why should we care about metrics? Because it tells us whether we are moving forward or backwards. In the world of DevOps, we use the DORA metrics. That's what we will talk about today. Today you will learn: * What are DORA metrics? * Why do we need them? * The

2022

Kubernetes for Dummies

The software world has changed since the increase in the popularity of containerisation. Technologies such as Docker are widely used to manage and spin up containers quickly. It has been used in big companies such as Google but they had one big issue. There were just too many containers. Companies

2022

Working Effectively with Legacy Code: Chapter 9 Summary

Back at it again, this week we will cover chapter 9 of the book titled "I can't get this class into a test harness". Sometimes it's just hard. But if it were easy then everyone would do it!! Okay, I'm sorry that

2022

Unconditional Parenting — Book Review #1

Welcome to my new series on books. I like to read books and figured out why don't I reinforce what I learn by writing about it. So here it is. The first book I would like to review is called Unconditional Parenting. -------------------------------------------------------------------------------- You can check the book on

2022

Working Effectively with Legacy Code: Chapter 8 Summary

In legacy code, one of the most important considerations is that we don't have tests around much of our code. What's worse, is that getting them in place is difficult. That's why many people are tempted to go back to the techniques we learned

2022

API Performance Testing using k6

Early on in my career, I was working on an e-commerce site. Everything was going fine, features were being delivered, and everything seemed to work in production. Until the equivalent of Black Friday came to Kazakhstan. First, the site was slow. Then, it was an error 503 Site not

2022

Working Effectively with Legacy Code: Chapter 7 Summary

How long does it take for you to make a change? If I ask this to 100 different people, I will get 100 different answers. The answer varies widely. So in projects with unclear code, many changes take a long time. On the other hand, in clearer areas, this can

2022

The Beginner's Guide to gRPC with Examples

In this article, we will learn about the gRPC protocol, why it was created, and what problems it solves. I also include practical examples of how you can utilize gRPC in JavsScript.

2022

Working Effectively with Legacy Code: Chapter 6 Summary

You might ask me? Is doing all this additional work worth it? Do I need to test all my code? Do I need to break all these dependencies? You might be wondering whether it’s worth doing these things right now. The truth is, the work that you do to

2022

Contract Testing For Dummies

Nowadays service-oriented applications are becoming very popular. There is no "one" backend. There are multiple services that all communicate with each other. This is all nice and dandy but when you get into the details it gets a bit messy. One of the common fallacies is how

2022

Working Effectively with Legacy Code: Chapters 4 and 5 Summary

When people first start writing tests, they will notice how horrible code is structured for them. In general, this is true most of the time, except when you write tests along with the code which is called Test Driven Development. I personally think it's a thing that every

2022

Working Effectively with Legacy Code: Chapter 3 Summary

In the last chapter, we covered the refactoring process. We declared that the most important step in refactoring is testing. So why don't people write more tests? The simple answer is because it's hard. The reason why it's hard is because of dependency management.

2022

Things I'm learning in 2022

This is pretty late. It's already the end of March. But better late than never. Anyways I'm a pretty accountable person and figured out what better to keep accountability than to tell the whole world what I've decided to study in 2022. So without

2022

Working Effectively with Legacy Code: Chapter 2 Summary

In this chapter, we will cover the different ways changes happen in our system. In general, there are two ways: * Edit and Pray * Cover and Modify Unfortunately,Edit and Pray is industry standard. The process of Edit and Pray goes like this: 1. Carefully plan the changes you are going