The Case for Using Outdated Technologies: When They Still Work

The relentless march of technological progress has us scrambling for the latest gadget while yawning at last year’s smartphones. But let’s pause for a moment: that vintage tech collecting dust in your attic might not be relics of a bygone era but strategic assets waiting to be rediscovered. Like digital Voyagers, some technologies continue working when the storm clouds of innovation pass by. Old Tech as Anti-Fragile Solutions In the immortal words of Nassim Taleb, “Antifragile” describes systems that improve under stress....

August 5, 2025 · 3 min · 576 words · Maxim Zhirnov

Bulkhead Pattern in Go: Ship Your Microservices and Keep Afloat

Let’s face it - microservices are like a fleet of ships navigating stormy seas. When one service becomes a sinking vessel, the rest should remain seaworthy - unlike the Titanic. Today we’ll discuss how to implement a Bulkhead Pattern in Go microservices to prevent cascading failures. Bulkhead Pattern 101: Keeping Services Afloat The Bulkhead Pattern is architectural insurance against single points of failure. Just like bulkheads in naval architecture compartmentalize flooding, this pattern isolates critical services, preventing one failure from sinking your entire system....

August 4, 2025 · 3 min · 559 words · Maxim Zhirnov

The Art of Writing Non-Portable Code: When It’s Beneficial to Lock-In

The Lock-in Libido: Why Sometimes Platform-Specific Code Wins Portability used to be software’s ultimate virtue – the coding equivalent of keeping a suitcase permanently packed. But I’ll tell you a secret: in certain corners of our digital world, that magical “write once, run anywhere” promise isn’t just inconvenient. It’s often a flat-out lie. And you know what? That’s okay. Not Every Program is A Global Citizen Portable code maximizes flexibility. Non-portable code maximizes power....

August 4, 2025 · 4 min · 798 words · Maxim Zhirnov

Domain-Driven Design: From Theory to Code — A Practitioner’s Guide

“) When I first encountered Domain-Driven Design, I felt like Alice chasing the White Rabbit down a rabbit hole. “Target the business core! Ubiquitous language! Strategic design layers!” the books cried. But how do these concepts translate into actual code? You’re here because you’ve scanned endless tutorials and still wonder where to start. Let’s cut through the jargon with a practical, code-first approach. The Three-Legged Stool of DDD Implementation Before we dive into code, let’s visualize the foundation....

August 3, 2025 · 4 min · 687 words · Maxim Zhirnov

"Debt Equals Progress": When Tech Debt Becomes Strategic Gold

The uncomfortable truth of software development? Sometimes, you have to break things beautifully. Think of technical debt not as a dirty little secret, but as a calculated mortgage on a house you outgrow. When managed with intention, it becomes less a poison pill and more an architect’s blueprints for future growth. Why “Strategic Debt” Isn’t an Oxymoron (But Your Codebase’s Debt Collector Might Still Call) Let’s cut the FUD: every software team takes on technical debt....

August 3, 2025 · 4 min · 815 words · Maxim Zhirnov