Hi there 👋

My name is Maksim Zhirnov. I’m a Growth Marketing Expert & MarTech Engineer. I help tech companies scale through data-driven marketing strategies, powered by my engineering background. I love building marketing systems that drive growth and sharing insights on the intersection of technology and customer acquisition.
Why Obsession with Code Elegance Harms Products and How to Find Balance

Why Obsession with Code Elegance Harms Products and How to Find Balance

The Pursuit of Code Elegance: A Double-Edged Sword In the realm of software development, the quest for elegant code is akin to a noble knight’s journey in search of the holy grail. We strive for clean, efficient, and beautiful code, believing it to be the ultimate measure of our craftsmanship. However, like any intense pursuit, this obsession with code elegance can sometimes lead us astray, harming the very products we aim to create....

April 10, 2026 · 3 min · 617 words · Maxim Zhirnov
The Ethics of Copy-Pasting GPL Code into Proprietary Systems

The Ethics of Copy-Pasting GPL Code into Proprietary Systems

The Ethics of Copy-Pasting GPL Code into Proprietary Systems In the realm of software development, the debate over the ethics of incorporating GPL (GNU General Public License) code into proprietary systems is a contentious one. This article delves into the nuances of this issue, providing a comprehensive understanding of the ethical considerations involved. Understanding the GPL License The GPL license is a copyleft license, which means that any derivative work based on GPL-licensed code must also be released under the GPL license....

April 6, 2026 · 3 min · 625 words · Maxim Zhirnov
Load testing APIs: scenarios, tools, and metrics that matter

Load testing APIs: scenarios, tools, and metrics that matter

Introduction Load testing APIs is an essential part of ensuring that your application can handle the expected traffic without breaking a sweat. In this article, we’ll dive deep into the world of load testing, exploring various scenarios, tools, and metrics that matter. We’ll also look at some code examples and step-by-step instructions to help you get started. Scenarios There are several scenarios that you might want to consider when load testing your APIs....

April 3, 2026 · 4 min · 706 words · Maxim Zhirnov
Async Everywhere: Making Code ‘Scalable’ but Teams ‘Unreadable’

Async Everywhere: Making Code ‘Scalable’ but Teams ‘Unreadable’

The Promise and Peril of Asynchronous Programming In the quest for building scalable applications, asynchronous programming has become the holy grail for many developers. The allure of improved performance and responsiveness is undeniable. However, as with any powerful tool, there’s a catch—the complexity it introduces can often make code bases more challenging to read and maintain, especially within teams. The Appeal of Asynchronous Code Asynchronous programming allows for non-blocking operations, which means that while one task is waiting for I/O or other resource-intensive operations, the program can continue with other tasks....

March 30, 2026 · 3 min · 604 words · Maxim Zhirnov
Testing and Monitoring ML Models in Production: Drift, Performance, Quality

Testing and Monitoring ML Models in Production: Drift, Performance, Quality

Introduction Deploying a machine learning model into production is just the beginning of its lifecycle. Ensuring that the model continues to perform well over time and adapts to changing data distributions is a critical task. In this article, we will explore various strategies and techniques for testing and monitoring ML models in production, focusing on aspects such as drift, performance, and quality. What is Data Drift? Data drift occurs when the statistical properties of the input data change over time, leading to a degradation in model performance....

March 27, 2026 · 3 min · 511 words · Maxim Zhirnov