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.
Practical Go patterns: error handling, context, and concurrency

Practical Go patterns: error handling, context, and concurrency

Error handling in Go Go’s approach to error handling is often a topic of debate among developers. Some love it, some hate it, but one thing is for sure: it’s unique. In Go, errors are values, and you handle them using the if err != nil pattern. This might seem verbose, but it encourages explicit error checking and handling. The if err != nil pattern Let’s look at a simple example:...

July 10, 2026 · 4 min · 778 words · Maxim Zhirnov
Corporate Open Source: Contribution or Strategic Marketing?

Corporate Open Source: Contribution or Strategic Marketing?

Introduction Open source has become an integral part of the modern software landscape. It’s not just about code anymore; it’s a culture, a movement, and for some corporations, a strategic tool. But what motivates companies to engage with open source? Is it a genuine desire to contribute to the community, or is it a calculated move to enhance their brand image and market presence? In this article, we’ll delve into the nuances of corporate involvement in open source....

July 6, 2026 · 4 min · 764 words · Maxim Zhirnov
Feature flags in production: patterns and anti-patterns for safe releases

Feature flags in production: patterns and anti-patterns for safe releases

Introduction Feature flags, also known as feature toggles, are a powerful tool for managing the release of new features in a software product. They allow developers to enable or disable features dynamically without changing the codebase, making it possible to roll out new functionality gradually and safely. However, like any powerful tool, feature flags can be misused, leading to a number of anti-patterns that can cause more harm than good. In this article, we’ll explore the best practices and common pitfalls associated with using feature flags in production....

July 3, 2026 · 6 min · 1091 words · Maxim Zhirnov
Why Deleting Old Code Is More Dangerous Than Keeping It

Why Deleting Old Code Is More Dangerous Than Keeping It

The Dilemma of Deleting Old Code In the realm of software development, few debates spark as much passion as the one surrounding the management of old code. Should we delete it or keep it? This question is not merely about disk space; it’s about the integrity, reliability, and maintainability of our software systems. In this article, we’ll delve deep into why deleting old code can often be more dangerous than keeping it around....

June 29, 2026 · 4 min · 739 words · Maxim Zhirnov
Coding Standards that Improve Quality: Beyond Just Satisfying Linters

Coding Standards that Improve Quality: Beyond Just Satisfying Linters

Introduction In the realm of software development, coding standards are often viewed as a necessary evil—a set of rules that developers must follow to keep their code tidy and their linters happy. However, the true value of coding standards lies not in their ability to satisfy automated tools but in their capacity to enhance code quality, readability, and maintainability. In this article, we will explore coding standards that go beyond mere compliance with linters....

June 26, 2026 · 5 min · 857 words · Maxim Zhirnov