The Fallacy of 'Always Use a Micro Frontend': When Monolith Wins

The Fallacy of 'Always Use a Micro Frontend': When Monolith Wins

There’s a peculiar phenomenon in tech: every few years, we collectively decide that the previous architectural pattern was basically hot garbage, and the new shiny approach is the answer to everything. We’re living through that moment with micro-frontends. The hype is real. Blog posts everywhere declare that monoliths are dead, that enterprise-scale applications must adopt micro-frontends, and that if you’re still building monoliths in 2025, you’re basically coding like it’s the year 2000....

November 20, 2025 · 10 min · 2028 words · Maxim Zhirnov
Заблуждение 'Всегда использовать микро-интерфейс': когда Monolith побеждает

Заблуждение 'Всегда использовать микро-интерфейс': когда Monolith побеждает

В технологиях наблюдается своеобразное явление: каждые несколько лет мы коллективно решаем, что предыдущая архитектурная модель была, по сути, бесполезной, а новый блестящий подход — это ответ на все вопросы. Мы живём в такой момент с микрофронтендами. Шумный маркетинг реален. В блогах повсюду заявляют, что монолиты мертвы, что корпоративные приложения должны использовать микрофронтенды и что если вы всё ещё строите монолиты в 2025 году, то программируете как в 2000 году. Однако вот в чём дело: вам продают повествование, не показывая сносок....

November 20, 2025 · 6 min · 1207 words · Maxim Zhirnov
Building a Resilient HTTP Client in Go: Retries and Circuit Breakers

Building a Resilient HTTP Client in Go: Retries and Circuit Breakers

Building HTTP clients might seem straightforward until 3 AM when your service starts hammering a failing external API, burns through your rate limits, and cascades into total meltdown. We’ve all been there. Or maybe you haven’t yet—consider this your friendly warning from someone who has. The difference between a casual HTTP client and a production-grade one often comes down to two deceptively simple concepts: retries and circuit breakers. They’re not glamorous, but they’ll save your bacon when things inevitably go sideways....

November 17, 2025 · 10 min · 2124 words · Maxim Zhirnov
Создание отказоустойчивого HTTP-клиента в Go: повторные попытки и автоматические выключатели

Создание отказоустойчивого HTTP-клиента в Go: повторные попытки и автоматические выключатели

Создание HTTP-клиентов может показаться простым делом, пока в три часа ночи ваш сервис не начнёт перегружать внешний API, который не отвечает, исчерпает лимиты запросов и приведёт к полному сбою. Мы все бывали в таких ситуациях. Или, может быть, вы ещё не сталкивались с этим — примите это как дружеское предупреждение от того, кто уже прошёл через это. Разница между обычным HTTP-клиентом и клиентом, готовым к использованию в продакшене, часто сводится к двум обманчиво простым концепциям: повторным попыткам и автоматическим выключателям (circuit breakers)....

November 17, 2025 · 5 min · 903 words · Maxim Zhirnov
Why Most Developers Shouldn't Write Their Own CI/CD Tools

Why Most Developers Shouldn't Write Their Own CI/CD Tools

Building a CI/CD pipeline from scratch sounds like a rite of passage for ambitious engineers. That thrilling moment when someone says, “We could just build our own tool—it can’t be that complex!” Usually follows a demo of some enterprise CI/CD platform with a price tag that makes everyone’s eyes water. But here’s the thing: that gut feeling that tells you to build it yourself? It’s your imposter syndrome talking, not your engineering instinct....

November 10, 2025 · 11 min · 2234 words · Maxim Zhirnov