73 articles

2025

Life Update: August 2025

It's been a good 8 months since I last published any piece of work online to be honest. Actually there might have been a video, tweet or some other form of media somewhere out there. I'm not too sure. I'm mostly writing this to

2025

Grunt Work in Software Engineering: The Silent Productivity Killer

This article covers six commonly ignored types of grunt work, their impact on teams, and how to tackle them. From speeding up PR reviews to enforcing testing and marketing internal tools, addressing grunt work isn’t just about efficiency—it makes software development smoother for everyone.

2024

How to become a better writer

In this article, you'll learn 10 key lessons that helped me go from dreading blank pages to publishing over 100 articles online. From writing consistently to embracing feedback, these tips will help you build better habits, improve your skills, and make writing a more enjoyable process.

2024

Best Practices For Proper Alerting

Alerts are one of those things where we want to do them and then put them off. But once we do get to do them, we do them wrongly and never do them again. You'd be surprised at how often this happens. In this article, I want to

2024

An Introduction to Release Engineering

Release engineering is one of those roles I didn't even know existed. But when the opportunity came to join the release team in my company I took it without thinking much about it. 💡Pro tip: Always think before making career moves. Later on, I figured it would be

2024

Crossplane for Beginners using the Kubernetes Provider

I recently had the pleasure of working with Crossplane, and it was a bit difficult initially. As I'm not a Kubernetes expert, I had to learn multiple things simultaneously, but that's no Crossplane's fault. In this article, I want to share an introduction I

2024

How to Build a Language Server with Go

In my last article, we learned how the Language Server Protocol (LSP) standardizes the communication between code editors and language servers. This has revolutionized how developers write code, offering features like auto-completion, syntax highlighting, and real-time diagnostics. Building on that foundation, this article focuses on a more practical

2024

A Simple Introduction to the Language Server Protocol

Code editors were trash back in the day. (If you compare them to tools nowadays) Some editors were built for specific languages, and others were more general-purpose but had few excellent features. Some were expensive, and others were cheap and clunky. But then, a paradigm shift happened. VSCode was

2024

A Simple Guide to Terraform Modules

In the second part of our series on Terraform, we will be discussing how to create abstractions over our Terraform resources. We will be utilizing a feature in Terraform called modules. But before we head into the technical details, let's discuss why we would want to abstract things.

2024

Reflections from 2023: Lessons for the future

I recently turned 24 on the 23rd of December 2023. I felt very empty. I felt lost. I felt a distinct lack of clarity. I didn't know what to do with my life. Everything felt meaningless. This isn't a new feeling, it has been coming and

2023

An Introduction to Infrastructure as Code with Terraform

Imagine this, it's a Tuesday, you've just finished developing a feature, it passed all the checks, and you're ready to deploy. You merge the changes, and soon after you notice that the deployment to two servers succeeds, but the third fails. This isn'

2023

The Specialization Trap: The Number 1 Mistake Developers Make

I've never specialized in one field. I've worked with frontend, backend, DevOps, and a bit of QA. I now develop tools in my company to make other developers more productive. Creating tools is the most fun I had with software engineering. But it wouldn't

2023

An Introduction to Internal Developer Platforms

These days, developers have a lot of cognitive load. You’re not just writing code, you’re playing around with cloud providers, troubleshooting Kubernetes, managing observability tools, making sure that your software is compliant with security best practices, and so much more… It’s not only you. It’s everyone

2023

Blogging as a Software Engineer: Lessons Learned From 90+ Articles

Writing has single-handedly been the most important skill I’ve ever learned. But at the beginning, I didn’t think much of it. I just wanted to share my knowledge and simply write. That was 3 years ago, I remember I had barely 1 year of professional experience. It

2023

An Introduction to Site Reliability Engineering

A lot of software engineers forget why their software is successful. (or why it's not). The #1 reason is that your customers love your software. But making good software is hard, the stars must align. Things such as tech, product, marketing, and sales all come together. On the

2023

Thoughts on ChatGPT and How I use it

When ChatGPT came out, I used it a lot. From my job to my writing and fitness. But then I started to notice that I'm becoming dumber. Also, my ego got in the way, I was like "Huh, I should be able to solve this myself without

2023

How to Set Up NGINX Load Balancing: A Step-by-Step Guide

In the last article, I talked about load balancing in the context of Kubernetes. This time, we will talk about something simpler. NGINX. Da dum. Don't get scared, it may seem daunting at first but it doesn't have to be. That's why I wrote

2023

Load Balancing in Kubernetes: A Step-by-Step Guide

Load balancing is the process of distributing network traffic equally over a set of resources that support an application. Modern applications must process millions of users simultaneously and return the correct data in a fast and reliable way. To do that we distribute the network traffic equally which will result

2023

Designing Developer Friendly Self-Service Platforms

Imagine that you're a DevOps developer. Everyone keeps asking you to do something. "Hey, can you help me deploy this?" "Hey, something broke in production and I have  to roll back, can you help me do that?" "Hey, can you set up monitoring

2023

The ABCs of System Design: A Beginner's Guide

Have you ever wondered how complex systems are built in companies like Google, Netflix or Amazon? The answer is good system design. System design is both the art and science of creating scalable, reliable and efficient systems that can handle large volumes of users and data. However, designing a complex

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

2022

Multithreading Principles and Patterns

As I was studying Operating Systems, I learned about multithreaded applications and how they work. I was pleasantly surprised to see that they got their own design patterns. As the guy with around 9 articles on different design patterns, I just had to write something about it. Well here goes

2022

Working Effectively with Legacy Code: Chapter 1 Summary

> “Legacy Code is code without tests” That's pretty much the premise of the whole book. Thanks for reading... Just kidding, there's a lot more to this. Testing is one of those things that I've ignored for a good portion of my career but

2022

Introduction to PThreads

In our last article, I introduced the concepts of threads. We learned what threads are and how do they speed up our code. You can check out the previous article here: What are threads?Most, if not all modern operating systems support multiprocessing and at the same time processes can

2022

What are threads?

Most, if not all modern operating systems support multiprocessing and at the same time processes can be run in multiple threads hence the word multithreading. This will give you a significant increase in performance and scalability but it comes with a price. The overall complexity of the code increases and

2022

Best Resources to Teach Yourself Computer Science

I've been programming professionally for almost 3 years. But I'm gonna be honest with you. My computer science (CS) skills are pretty lacking. That's why I've dedicated 2022 to finally learn some core computer science concepts. But where do I start? That&

2022

Introduction to Multithreading in Python

Got slow python code? Don't want to refactor to some other "low-level" language? Want to impress your peers? We got all that here!! -------------------------------------------------------------------------------- Now that you are actually here, today we will cover ways to optimize our Python code specifically using Multithreading and asyncio. In

2022

Operating Systems for Dummies

One of my goals in 2022 was to dive deeper into core computer science subjects. The first subject in the list is Operating Systems. This is a very wide subject but for simplicity sake, we will cover the basics. Today you will learn: * What is an operating system? * Different kinds

2022

So I've been making games this weekend...

This past week I've dropped all the typical backend engineering I usually do and did some game development. It was a fascinating experience, it's like I've gotten back the joy of programming. Ever since I've started working professionally programming became more of

2022

How to build a GraphQL API using Python and Django

As API developers it's easy for us to fall into the trap of routine. I'm not saying it's a bad thing but it gets boring real quick. To break through this routine it's up to us to do interesting and new things.

2022

Transitioning to Golang

This is an awkward post. Most of my last articles have been directly correlated with Python and Django. But it may surprise you that I am NOT a "python" developer per see. I didn't pick Python, it chose me. God, that sounds cringe, but anyways I&

2021

What's with all the hype about web 3.0?

A couple of days ago I've started to see the word "web3" a lot. It started on Twitter but eventually spread to YouTube and I've succumbed to it. I've fallen down the web3 rabbit hole. Thankfully I'm out of it

2021

Django caching using Redis

Cacheing is one of those things that are simple at first but can get really messy quick. There's even a quote about it. > There are only two hard things in Computer Science: cache invalidation and naming things – Phil Karlton The story goes like this. 1. You start

2021

CI/CD Pipelines with Github Actions and Django

Deployment is hard. You have to make sure that you are in the correct environment, with the correct variables, and finally, run the correct commands in order. Other things are hard too, like keeping code quality high with consistent testing, and linting. These kinds of things should be done automatically.

2021

Message Queues with Celery, Redis, and Django

Some tasks don't have to be done immediately. Examples of tasks like these include: * When a user signs up, you don't need to immediately send emails to him. * When a video gets uploaded to YouTube, thumbnails get generated after some time. * When you want to generate

2021

Integrating Auth0 with DRF

A couple of months I started my first project with Auth0. We had a RESTful application, and my team lead went and told me to integrate our authentication system with Auth0. I was confused because most of the work was done in the front end, and I just didn'

2021

Books Every Software Engineer Should Read

I've read a good amount of books this year. There were some that I enjoyed and others that I didn't. But the biggest mistake is that I didn't drop the books I didn't enjoy. For example, I've read Code Complete

2021

Introduction to Testing in Django and Django Rest Framework

> This article will go over the basics of testing and how to write tests for our Django APIs. I'm gonna be honest, I only started writing tests 3 months ago. It was the start of my new project and I've decided to develop the habit

2021

How to Integrate Elasticsearch with DRF

In this article, you will learn how to create a simple search API using Elasticsearch and Django-Rest-Framework (DRF) Elasticsearch is the leading search engine in the world. Many companies use it such as Uber and Slack, but to leverage this technology in Django is pretty confusing. There are

2021

How I passed the AWS Cloud Practitioner Exam in 1 week

A couple of months ago I joined my new company. I was excited, I got to work on new tech. I was finally assigned a project where our infrastructure was on Amazon Web Services (AWS). I was frustrated with how little I knew about AWS. I worked on it, but

2021

How to create a YouTube audio player using Python?

A couple of weeks ago I joined a Discord server, where a bunch of programmers hang out and do projects together. One of these projects was a Youtube GUI player. I started working on the project and realized it's a lot harder than I thought it would be.