<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Ivan Ponamarev — Headless e-commerce &amp; Modernization</title>
        <link>https://ivanpin.com</link>
        <description>Notes on modernizing legacy e-commerce platforms with headless architecture (Next.js + Elasticsearch), SEO-safe migrations, and pragmatic engineering.</description>
        <lastBuildDate>Wed, 03 Jun 2026 08:29:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Ivan Ponamarev — Headless e-commerce &amp; Modernization</title>
            <url>https://ivanpin.com/favicon.ico</url>
            <link>https://ivanpin.com</link>
        </image>
        <copyright>© 2026 Ivan Ponamarev</copyright>
        <item>
            <title><![CDATA[MySQL Binlog Killed Our Cache Polling: How We Cut 2,880 Unnecessary Queries a Day]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-mysql-binlog-cache-invalidation</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-mysql-binlog-cache-invalidation</guid>
            <pubDate>Tue, 15 Dec 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Polling the database to check for catalog changes is one of those things that works fine until it doesn&#39;t. The threshold isn&#39;t a crash. It&#39;s a number on a spreadsheet you finally decide to calculate.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] MySQL binlog убил наш polling: как мы избавились от 2 880 лишних запросов в сутки]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-mysql-binlog-cache-invalidation</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-mysql-binlog-cache-invalidation</guid>
            <pubDate>Tue, 15 Dec 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Инвалидация кэша Bitrix через cron-polling — стандартное решение, которое работает. Пока не начинаешь считать. Это история про то, как MySQL binlog закрыл вопрос сам по себе.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[When Elasticsearch is overkill for Bitrix e-commerce]]></title>
            <link>https://ivanpin.com/en/blog/search-without-elasticsearch-when-sql-works</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/search-without-elasticsearch-when-sql-works</guid>
            <pubDate>Tue, 01 Dec 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I wrote about why Elasticsearch is a UX tool, not just a speed layer. Since then, three clients have asked me the same question.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Когда Elasticsearch не нужен: честный разбор для e-commerce на Bitrix]]></title>
            <link>https://ivanpin.com/ru/blog/search-without-elasticsearch-when-sql-works</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/search-without-elasticsearch-when-sql-works</guid>
            <pubDate>Tue, 01 Dec 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Я написал статью про то, почему Elasticsearch — это UX-инструмент, а не просто скорость. С тех пор три клиента спросили одно и то же.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I'm not tired of AI. I stopped talking to it.]]></title>
            <link>https://ivanpin.com/en/blog/ai-fatigue-conversational-vs-tool-mode</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-fatigue-conversational-vs-tool-mode</guid>
            <pubDate>Sun, 15 Nov 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I&#39;m not tired of AI. I stopped talking to it.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я не устал от AI. Я перестал с ним разговаривать.]]></title>
            <link>https://ivanpin.com/ru/blog/ai-fatigue-conversational-vs-tool-mode</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-fatigue-conversational-vs-tool-mode</guid>
            <pubDate>Sun, 15 Nov 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Я не устал от AI. Я перестал с ним разговаривать.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[One Bitrix backend, two Next.js frontends: what actually breaks]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-headless-multi-brand-one-backend</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-headless-multi-brand-one-backend</guid>
            <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[One PHP backend. Two Next.js frontends. Two domains. Two brands.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Один Bitrix — два фронтенда: что реально ломается]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-headless-multi-brand-one-backend</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-headless-multi-brand-one-backend</guid>
            <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[У нас один PHP-бэкенд. Два Next.js-фронтенда. Два домена. Два бренда.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[What I Check in the First 15 Minutes on a Project That's Already on Fire]]></title>
            <link>https://ivanpin.com/en/blog/first-15-minutes-troubled-project-audit</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/first-15-minutes-troubled-project-audit</guid>
            <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[People call me when things are already broken. The developer disappeared. The deadline is tomorrow. &quot;Just a few tweaks&quot; turned into &quot;we have no idea what&#39;s happening anymore.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Что я смотрю за первые 15 минут на проекте, который уже горит]]></title>
            <link>https://ivanpin.com/ru/blog/first-15-minutes-troubled-project-audit</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/first-15-minutes-troubled-project-audit</guid>
            <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мне звонят, когда уже горит. Разработчик исчез. Дедлайн завтра. «Немного допилить» превратилось в «мы вообще не понимаем, что происходит».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[When CDN and Bitrix Composite fight each other]]></title>
            <link>https://ivanpin.com/en/blog/cdn-composite-cache-bitrix-conflict</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/cdn-composite-cache-bitrix-conflict</guid>
            <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We added Cloudflare to a Bitrix store on Thursday evening. By Friday morning: &quot;my cart is empty, I already added items.&quot; By Saturday: &quot;the account page is showing someone else&#39;s data.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Два кэша воюют: CDN против Bitrix Composite]]></title>
            <link>https://ivanpin.com/ru/blog/cdn-composite-cache-bitrix-conflict</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/cdn-composite-cache-bitrix-conflict</guid>
            <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы подключили Cloudflare к Bitrix-магазину в четверг вечером. В пятницу утром пошли жалобы: «корзина пустая, хотя добавлял». К субботе — «личный кабинет показывает чужие данные».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Vector Search for E-commerce Catalogs: When It Works, When It's Overhead]]></title>
            <link>https://ivanpin.com/en/blog/vector-search-ecommerce-when-hype-when-real</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/vector-search-ecommerce-when-hype-when-real</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A vendor pitched vector search for our catalog. 40,000 SKUs. Elasticsearch already running — fuzzy configured, synonyms tuned, function_score boosting by margin and stock.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Vector search для каталога: когда работает, когда переплата]]></title>
            <link>https://ivanpin.com/ru/blog/vector-search-ecommerce-when-hype-when-real</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/vector-search-ecommerce-when-hype-when-real</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Нам предложили добавить vector search к каталогу. 40 000 SKU, Elasticsearch уже стоит. Fuzzy настроен. Синонимы работают. Function_score буст по марже и остаткам — тоже.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Why I Pay for My AI Tools Myself — While Corporates Cancel Them]]></title>
            <link>https://ivanpin.com/en/blog/own-ai-tools-corporate-licensing-risk</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/own-ai-tools-corporate-licensing-risk</guid>
            <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Microsoft revoked enterprise Claude Code licenses for thousands of developers in a single procurement decision. One IT ticket, and the tool people had built their workflows around stopped working Monday morning.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Почему я плачу за AI-инструменты сам — пока корпорации режут лицензии]]></title>
            <link>https://ivanpin.com/ru/blog/own-ai-tools-corporate-licensing-risk</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/own-ai-tools-corporate-licensing-risk</guid>
            <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Microsoft отозвала корпоративные лицензии Claude Code у тысяч своих разработчиков. Один тикет в IT-отдел — и инструмент, на котором человек выстроил свой рабочий процесс, перестал открываться в понедельник утром.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Constraint decay in AI coding agents: why your rules vanish mid-session and how to fix it]]></title>
            <link>https://ivanpin.com/en/blog/constraint-decay-ai-agent-backend-code-production</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/constraint-decay-ai-agent-backend-code-production</guid>
            <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I gave Claude Code a clear brief: refactor a PHP sync module in a Bitrix project. Type everything strictly. No mixed. No global state. All event handlers through explicit classes implementing a defined interface.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Constraint decay: почему AI «забывает» твои ограничения в долгих сессиях — и что с этим делать]]></title>
            <link>https://ivanpin.com/ru/blog/constraint-decay-ai-agent-backend-code-production</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/constraint-decay-ai-agent-backend-code-production</guid>
            <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Я дал Claude Code задачу: рефакторинг PHP-модуля синхронизации Bitrix с 1С. Прописал в начале: строгая типизация, никаких mixed, никаких глобальных переменных, все методы через dependency injection.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Headless Bitrix cart and checkout: five things we didn't see coming]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-cart-checkout-hidden-complexity</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-cart-checkout-hidden-complexity</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The catalog took nine days in Next.js. The cart integration took a month. Checkout took another seven weeks.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Корзина в headless Bitrix: пять проблем, которые нас удивили]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-cart-checkout-hidden-complexity</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-cart-checkout-hidden-complexity</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Каталог мы отдали в Next.js за девять дней. Корзину интегрировали за месяц. Оформление заказа — ещё семь недель.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Why developers who think in business economics earn twice as much]]></title>
            <link>https://ivanpin.com/en/blog/senior-dev-business-thinking</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/senior-dev-business-thinking</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I noticed something had changed when I stopped asking &quot;how much does my work cost&quot; and started asking &quot;how much does my work cost the business.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Почему разработчик, который умеет считать деньги бизнеса, зарабатывает вдвое больше]]></title>
            <link>https://ivanpin.com/ru/blog/senior-dev-business-thinking</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/senior-dev-business-thinking</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Я понял, что что-то изменилось, когда перестал думать «сколько стоит моя работа» и начал думать «сколько стоит моя работа для этого бизнеса».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[We Spent Three Days on AI Tooling Setup. Here's the Engineering Decision I Should Have Made First.]]></title>
            <link>https://ivanpin.com/en/blog/ai-tools-team-api-first-decision</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-tools-team-api-first-decision</guid>
            <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A colleague spent three days getting GitHub Copilot running for five developers. Everyone&#39;s VPN config differs. Billing fails through certain payment methods. The corporate account needs a foreign card. After three days: two developers work with AI, three don&#39;t. The productivity gap shows up within a week.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Мы потратили три дня на настройку Copilot. Вот что я сделал бы иначе]]></title>
            <link>https://ivanpin.com/ru/blog/ai-tools-team-api-first-decision</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-tools-team-api-first-decision</guid>
            <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мой коллега потратил три дня, чтобы поднять GitHub Copilot для команды из пяти человек. У каждого своя конфигурация VPN. Billing не проходит через карты. На корпоративный аккаунт нужен иностранный способ оплаты. Итог: двое работают с AI, трое — нет. Разрыв в скорости виден уже через неделю.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[TypeScript API contract for Bitrix REST: generate types, stop guessing shapes]]></title>
            <link>https://ivanpin.com/en/blog/typescript-api-contract-nextjs-bitrix-rest</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/typescript-api-contract-nextjs-bitrix-rest</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We spent two weeks asking &quot;what does this method actually return?&quot; when we moved a 28,000-product catalog to a headless architecture. Open the Bitrix REST docs — they&#39;re three months behind the actual version. Open the debugger, call the method, look at the real response, infer the shape, write an interface. Next day, a teammate does the same with another method. Slightly different assumptions.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Bitrix REST API и TypeScript: контракт, который мы сгенерировали сами]]></title>
            <link>https://ivanpin.com/ru/blog/typescript-api-contract-nextjs-bitrix-rest</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/typescript-api-contract-nextjs-bitrix-rest</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда мы переводили каталог на 28 000 позиций в headless-архитектуру, первые две недели прошли в одном режиме. Открываешь метод Bitrix REST, смотришь на документацию — документация отстаёт от текущей версии месяца на три. Открываешь дебаггер, вызываешь метод, смотришь на реальный ответ. Делаешь вывод о форме. Пишешь интерфейс вручную. На следующий день коллега делает то же самое с другим методом — чуть иначе, чуть другие предположения.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Atomic file locking in PHP: the mkdir trick that needs no Redis]]></title>
            <link>https://ivanpin.com/en/blog/php-file-lock-mkdir-atomic-cron</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php-file-lock-mkdir-atomic-cron</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[PHP developers have three common approaches to preventing parallel cron execution: advisory locks in the database, Redis SETNX with TTL, or ignoring the problem and getting duplicate runs. There&#39;s a fourth option: atomic mkdir, a POSIX primitive available on any filesystem with no external dependencies.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] File-lock через mkdir в PHP: как я решаю параллельность cron без Redis и mutex]]></title>
            <link>https://ivanpin.com/ru/blog/php-file-lock-mkdir-atomic-cron</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php-file-lock-mkdir-atomic-cron</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мне нужно было, чтобы 13 cron-задач никогда не запускались параллельно. Все они работают с одним Chrome-профилем — той же сессией LinkedIn, которую я залогинил руками месяц назад. Два параллельных инстанса и профиль умирает.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Elasticsearch is not a fast database. It's a UX tool.]]></title>
            <link>https://ivanpin.com/en/blog/elasticsearch-is-ux-not-speed</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/elasticsearch-is-ux-not-speed</guid>
            <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We spent three weeks on Elasticsearch. Two of those weeks were infrastructure: mapping, shards, replication, Russian morphology analyzers. Everything worked.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[SSI automation. How I built 13 cron jobs without getting banned from LinkedIn.]]></title>
            <link>https://ivanpin.com/en/blog/ssi-automation-13-cron-tasks</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ssi-automation-13-cron-tasks</guid>
            <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In one week my LinkedIn SSI dropped from 38 to 37. I&#39;m fine with that. I just finished building a system of 13 cron jobs, and the first things I put in were a STOP file and an approval folder.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Elasticsearch — это не «база со скоростью». Это UX-инструмент]]></title>
            <link>https://ivanpin.com/ru/blog/elasticsearch-is-ux-not-speed</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/elasticsearch-is-ux-not-speed</guid>
            <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы потратили три недели на Elasticsearch. Первые две — на инфраструктуру: mapping, шарды, репликация, анализаторы для русской морфологии. Технически всё работало.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] SSI automation. Как я построил 13 cron-задач и не словил бан LinkedIn.]]></title>
            <link>https://ivanpin.com/ru/blog/ssi-automation-13-cron-tasks</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ssi-automation-13-cron-tasks</guid>
            <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[За неделю мой LinkedIn SSI упал с 38 до 37. Я к этому готов. Только что собрал систему из 13 cron-задач, и первое, что в ней появилось, это файл STOP и approval-папка.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Claude Code + Obsidian. How I stopped losing project documentation between projects.]]></title>
            <link>https://ivanpin.com/en/blog/claude-code-obsidian-living-docs</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/claude-code-obsidian-living-docs</guid>
            <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I run seven projects in parallel across four stacks. The docs for each one are current. Not because I&#39;m tidy. Because I no longer write them.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Claude Code + Obsidian. Как я перестал терять документацию между проектами.]]></title>
            <link>https://ivanpin.com/ru/blog/claude-code-obsidian-living-docs</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/claude-code-obsidian-living-docs</guid>
            <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Веду параллельно семь проектов на четырёх стеках. Документация по каждому актуальная. Не потому что я аккуратный. Потому что её больше не пишу я.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Zero-Downtime Elasticsearch Reindex: How to Update Mapping Without Stopping Your Store]]></title>
            <link>https://ivanpin.com/en/blog/elasticsearch-zero-downtime-reindex-aliases</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/elasticsearch-zero-downtime-reindex-aliases</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We needed to add a Russian morphology analyzer to an index with 80,000 products. I had no plan for how to do it live.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Reindex без даунтайма: как обновить маппинг Elasticsearch, не останавливая магазин]]></title>
            <link>https://ivanpin.com/ru/blog/elasticsearch-zero-downtime-reindex-aliases</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/elasticsearch-zero-downtime-reindex-aliases</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда мы решили добавить русскую морфологию в индекс с 80 000 товаров, я понял, что у нас нет плана.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Google Is Eating Your Traffic. What an E-Commerce Owner Should Actually Do]]></title>
            <link>https://ivanpin.com/en/blog/google-kills-organic-ecommerce-owner-response</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/google-kills-organic-ecommerce-owner-response</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Last month I opened Google Analytics for three e-commerce projects I work with regularly. Google organic traffic: down 23&#37; year over year. Not one project — all three. Different niches, different catalog sizes, different site ages. Same pattern.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Google убивает органику e-commerce. Что делать владельцу сейчас?]]></title>
            <link>https://ivanpin.com/ru/blog/google-kills-organic-ecommerce-owner-response</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/google-kills-organic-ecommerce-owner-response</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[В апреле я открыл Google Analytics трёх e-commerce проектов, с которыми работаю давно. Органика Google: минус 23&#37; год к году. Не у одного клиента — у трёх разных магазинов, разные ниши, разный размер, разный возраст сайта. Картина одинаковая.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[AI context is a resource. How I stopped wasting it blindly]]></title>
            <link>https://ivanpin.com/en/blog/ai-context-long-session-claude-code</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-context-long-session-claude-code</guid>
            <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I spent an hour on an AI session only to discover at the end that the agent had rewritten a file we&#39;d already fixed at the start. Not because it&#39;s broken — the context window filled up, and the model lost track of what happened early in the conversation. Since then I treat the context window like RAM: when it&#39;s full, you get swaps. So I built a session hygiene around that.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Контекст AI-агента — это ресурс. Как я перестал его тратить вслепую]]></title>
            <link>https://ivanpin.com/ru/blog/ai-context-long-session-claude-code</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-context-long-session-claude-code</guid>
            <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Я потратил час на AI-сессию, только чтобы в конце обнаружить: агент исправил файл, который мы уже поправили в начале. Не потому что он плохой. Контекст переполнился, и модель «забыла» о том, что было в начале разговора. С тех пор я отношусь к контекстному окну как к оперативной памяти: когда кончается — начинаются свопы. И у меня появилась гигиена.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[How I pitch headless to a Bitrix client: it's not about technology, it's about money]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-client-money-conversation</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-client-money-conversation</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Every failed headless pitch I&#39;ve seen used the same line.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как я объясняю headless клиенту: не про технологии, а про деньги]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-client-money-conversation</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-client-money-conversation</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Клиент спрашивает: «Зачем нам headless, если Bitrix и так работает?»]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Three contract clauses I added after AI changed how I deliver code]]></title>
            <link>https://ivanpin.com/en/blog/contract-clauses-added-for-ai-era</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/contract-clauses-added-for-ai-era</guid>
            <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[At the last project handoff, the client asked: &quot;Can you show me where you wrote the code yourself and where the AI did it?&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Три пункта в договоре, которых не было до AI]]></title>
            <link>https://ivanpin.com/ru/blog/contract-clauses-added-for-ai-era</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/contract-clauses-added-for-ai-era</guid>
            <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[На сдаче последнего большого проекта клиент спросил: «А ты можешь показать, где ты написал код сам, а где — нейросеть?»]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Four PHP behaviors we only caught in Bitrix production]]></title>
            <link>https://ivanpin.com/en/blog/php-language-gotchas-bitrix-prod</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php-language-gotchas-bitrix-prod</guid>
            <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[PHP has four language-level behaviors that cause production performance problems in Bitrix: session file locking, OPcache stale entries on deploy, array copy-on-write memory doubling, and non-deterministic destructor order. These aren&#39;t bugs — they&#39;re documented behavior — but they only become visible under production load.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Четыре PHP-поведения, которые мы поймали только в проде Bitrix]]></title>
            <link>https://ivanpin.com/ru/blog/php-language-gotchas-bitrix-prod</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php-language-gotchas-bitrix-prod</guid>
            <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы три дня искали, почему страницы каталога тормозят при конкурентных запросах. Профилировщик показывал: время уходит в ожидание. Nginx — чистый. MySQL — idle. FPM workers — свободны. Оказалось: session_start&#40;&#41; ставит файловый lock, и все параллельные запросы одного пользователя выстраиваются в очередь. PHP ведёт себя именно так, как написано в документации. Просто эту страницу документации никто не читает перед деплоем в прод.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Modernizing a 1C-Bitrix Monolith Without a Risky Rewrite]]></title>
            <link>https://ivanpin.com/en/blog/modernizing-a-1c-bitrix-monolith-without-a-risky-rewrite</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/modernizing-a-1c-bitrix-monolith-without-a-risky-rewrite</guid>
            <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How do you modernize a 28,000-product 1C-Bitrix store without a risky rewrite? In this case study, I break down a Headless migration using Next.js + Elasticsearch that improved performance, preserved SEO, and kept the business running.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как модернизировать 1С-Битрикс без переписывания: Headless-архитектура как стратегическое решение]]></title>
            <link>https://ivanpin.com/ru/blog/modernizing-a-1c-bitrix-monolith-without-a-risky-rewrite</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/modernizing-a-1c-bitrix-monolith-without-a-risky-rewrite</guid>
            <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Rewrite — не всегда решение. Я модернизировал high-load e-commerce на 1С-Битрикс через Headless-подход: быстрее, безопаснее, без SEO-потерь. В статье — архитектура, риски, результаты и технический deep dive.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Parallel AI agents look great in demos. Here's why I went back to one.]]></title>
            <link>https://ivanpin.com/en/blog/parallel-ai-agents-demo-vs-reality</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/parallel-ai-agents-demo-vs-reality</guid>
            <pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The demo looked convincing. Eight agents, each closing its own ticket, the Kanban board moving like something out of a pitch deck. I&#39;d been wanting to try something like it.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Параллельные AI-агенты: красиво в демо, неудобно в работе]]></title>
            <link>https://ivanpin.com/ru/blog/parallel-ai-agents-demo-vs-reality</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/parallel-ai-agents-demo-vs-reality</guid>
            <pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Демо выглядело убедительно. На экране — Kanban-доска, восемь карточек, каждая закрывается своим AI-агентом. Через 20 минут все тикеты зелёные. Зрители аплодируют.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Redirects Died on Deploy Day. Bitrix Didn't Warn Us.]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-redirects-404-nextjs</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-redirects-404-nextjs</guid>
            <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We went headless in February. In April, our SEO consultant sent a spreadsheet: 340 broken links. Three years of redirect rules, gone the day we deployed Next.js. No errors in the logs. Next.js had no idea these rules were supposed to exist in the first place.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Redirects умерли в день деплоя. Bitrix об этом не предупреждает.]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-redirects-404-nextjs</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-redirects-404-nextjs</guid>
            <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы переехали на headless в феврале. В апреле SEO-специалист прислал выгрузку: 340 битых ссылок. Три года работавших редиректов. Ноль ошибок в логах — потому что Next.js не знал, что они вообще должны были существовать.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Elasticsearch Mapping Is Architecture, Not Configuration]]></title>
            <link>https://ivanpin.com/en/blog/elasticsearch-mapping-is-architecture</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/elasticsearch-mapping-is-architecture</guid>
            <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[For three weeks we couldn&#39;t figure out why the price filter wasn&#39;t working. Elasticsearch was up. Queries were coming in. Results were returning. But the price range — say, $15 to $50 — was being ignored completely. Products at $180 and $3 showed up side by side.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Маппинг Elasticsearch — это архитектура, а не конфигурация]]></title>
            <link>https://ivanpin.com/ru/blog/elasticsearch-mapping-is-architecture</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/elasticsearch-mapping-is-architecture</guid>
            <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Три недели мы не могли понять, почему фильтр по цене не работает. Elasticsearch был жив. Запросы приходили. Результаты возвращались. Но диапазон цен от 1000 до 5000 рублей игнорировался полностью: в выдаче появлялись товары за 12 000 и за 300 рублей одновременно.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[AI Agents Don't Replace Senior Engineers. They Expose Who the Seniors Actually Are.]]></title>
            <link>https://ivanpin.com/en/blog/ai-agents-raise-value-senior-engineers</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-agents-raise-value-senior-engineers</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[When people tell me &quot;AI is going to replace developers,&quot; I think about one specific bug.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] AI агенты не заменяют разработчика — они повышают цену правильного разработчика]]></title>
            <link>https://ivanpin.com/ru/blog/ai-agents-raise-value-senior-engineers</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-agents-raise-value-senior-engineers</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда мне говорят «вы скоро потеряете работу», я вспоминаю один конкретный баг.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Claude Code in a PHP Studio: The Honest Assessment]]></title>
            <link>https://ivanpin.com/en/blog/claude-code-php-studio-honest-review</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/claude-code-php-studio-honest-review</guid>
            <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A year ago I wrote about what I don&#39;t delegate to AI. The list: architecture, cross-layer contracts, database schema decisions. That list still holds. But the year added something I didn&#39;t expect — a clearer picture of where Claude Code is genuinely useful.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как мы используем Claude Code в студии — без розовых очков]]></title>
            <link>https://ivanpin.com/ru/blog/claude-code-php-studio-honest-review</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/claude-code-php-studio-honest-review</guid>
            <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Год назад я написал статью про то, что не отдаю AI в работе. В ней был список запретов: архитектуру не проектирует, контракты между слоями не меняет, решения по схеме БД не принимает. Список работает. Но за год добавилось кое-что ещё — понимание того, где Claude Code реально полезен. Это не там, где вы думаете.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Headless Bitrix Image Pipeline: What Breaks First in Next.js]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-image-pipeline-nextjs</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-image-pipeline-nextjs</guid>
            <pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We launched headless Bitrix &#43; Next.js. LCP got worse.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Изображения в headless Bitrix: что сломается первым]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-image-pipeline-nextjs</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-image-pipeline-nextjs</guid>
            <pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы запустили headless Bitrix &#43; Next.js. LCP вырос — но не так, как ожидали.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Owning the Outcome, Not Just the Code: Three Moments That Changed How I Work]]></title>
            <link>https://ivanpin.com/en/blog/owning-product-vs-building-it-three-moments</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/owning-product-vs-building-it-three-moments</guid>
            <pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[For years I thought being a good developer meant doing what you were asked — and doing it well. Task comes in, I implement it. Client accepts, I move on. That&#39;s how most people work. That&#39;s how I worked. Then three things happened.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Владеть продуктом, а не только разрабатывать его: три момента, когда я это понял]]></title>
            <link>https://ivanpin.com/ru/blog/owning-product-vs-building-it-three-moments</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/owning-product-vs-building-it-three-moments</guid>
            <pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Я долго думал, что быть хорошим разработчиком — значит делать хорошо то, что попросили. Пишут задачу — я её реализую. Принимают работу — я иду дальше. Так работает большинство. Так работал и я. До трёх конкретных моментов.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[PHP 8.4 and Bitrix in Production: What Actually Breaks]]></title>
            <link>https://ivanpin.com/en/blog/php84-bitrix-production-upgrade-reality</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php84-bitrix-production-upgrade-reality</guid>
            <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[The Bitrix release notes say &quot;PHP 8.4 supported.&quot; Our first client to upgrade staging got 47 deprecated notices on a single homepage request and a broken payment module. None of it was in Bitrix core.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] PHP 8.4 и Bitrix в production: что реально ломается после обновления]]></title>
            <link>https://ivanpin.com/ru/blog/php84-bitrix-production-upgrade-reality</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php84-bitrix-production-upgrade-reality</guid>
            <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[В release notes Bitrix написано: «PHP 8.4 поддерживается». Первый клиент, который обновил staging, получил 47 deprecated notices за один запрос главной страницы и сломанный платёжный модуль. Ни одна из этих проблем не была в ядре Bitrix.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Relevance isn't revenue: teaching Elasticsearch to rank by business metrics]]></title>
            <link>https://ivanpin.com/en/blog/elasticsearch-business-boosting-margin-ecommerce</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/elasticsearch-business-boosting-margin-ecommerce</guid>
            <pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We ran an A/B test. The control group ranked search results by text relevance. The test group used a scoring function that factored in margin, stock levels, and sell-through rate. Click-through was nearly identical. Revenue per search session was 12&#37; higher in the business-ranked variant.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Релевантность — не прибыль: как мы научили Elasticsearch работать на маржу]]></title>
            <link>https://ivanpin.com/ru/blog/elasticsearch-business-boosting-margin-ecommerce</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/elasticsearch-business-boosting-margin-ecommerce</guid>
            <pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы провели A/B-тест. Контроль — поиск сортировал по текстовой релевантности. Вариант — по функции, которая учитывала маржу, остаток и скорость оборота. Кликабельность — почти одинаковая. Выручка с поискового сеанса — на 12&#37; выше в варианте с бизнес-ранжированием.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I Pay $1,800/Year for AI Tools. Here's the Exact ROI.]]></title>
            <link>https://ivanpin.com/en/blog/ai-tools-monthly-cost-real-roi-studio</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-tools-monthly-cost-real-roi-studio</guid>
            <pubDate>Wed, 01 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I added up my AI tool expenses for the year. $1,800. Did I save more than that? Honestly — I didn&#39;t know. So I sat down and calculated it.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я плачу $1 800 в год за AI-инструменты. Вот точная окупаемость.]]></title>
            <link>https://ivanpin.com/ru/blog/ai-tools-monthly-cost-real-roi-studio</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-tools-monthly-cost-real-roi-studio</guid>
            <pubDate>Wed, 01 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Я суммировал расходы на AI-инструменты за год. Вышло $1 800. Сэкономил ли я больше? Честно — не знал. Пока не сел считать.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[The Non-Vibecoder's Workbench: How I Structured AI Assistance Without Losing Engineering Control]]></title>
            <link>https://ivanpin.com/en/blog/non-vibecoder-ai-workflow-php-studio</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/non-vibecoder-ai-workflow-php-studio</guid>
            <pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Vibecoding is when you describe a task, the AI generates code, you check that it looks right, and you deploy. I don&#39;t work that way. Not because I&#39;m afraid of AI — Claude Code is open on my screen every working day. It&#39;s because without structure, AI in a legacy PHP project isn&#39;t acceleration. It&#39;s debt with a nice interface.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Рабочее место не-вайбкодера: как я выстроил harness для AI в PHP-студии]]></title>
            <link>https://ivanpin.com/ru/blog/non-vibecoder-ai-workflow-php-studio</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/non-vibecoder-ai-workflow-php-studio</guid>
            <pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Вайбкодинг — это когда ты описываешь задачу, AI выдаёт код, ты смотришь «вроде работает» и деплоишь. Я так не работаю. Не потому что боюсь AI — Claude Code открыт у меня каждый рабочий день. Просто без структуры в legacy PHP-проекте это не ускорение. Это накопление долга с красивым интерфейсом.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Have you actually hit the Bitrix ceiling, or are you just tired of it?]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-migration-timing-when-to-actually-migrate</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-migration-timing-when-to-actually-migrate</guid>
            <pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A client messaged me last year. 30,000 SKU store on Bitrix, &quot;everything&#39;s slow,&quot; ready to migrate to headless. I asked three questions: what percentage of requests take more than two seconds? Is composite mode enabled? When did you last check slow_query_log?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как понять, что вы реально упёрлись в потолок Bitrix — а не просто устали от него]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-migration-timing-when-to-actually-migrate</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-migration-timing-when-to-actually-migrate</guid>
            <pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Недавно мне написал клиент. Интернет-магазин, 30 тысяч SKU, Bitrix, «всё тормозит». Хотят уйти на headless. Я спросил: какой процент запросов превышает 2 секунды? Включён ли composite-режим? Смотрели slow_query_log за последние три месяца?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Why I Keep a 'Never Again' List Between Projects]]></title>
            <link>https://ivanpin.com/en/blog/what-not-to-do-list-next-project</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/what-not-to-do-list-next-project</guid>
            <pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[After every project I open the same note and add one line. Not &quot;what went well&quot; — that goes in the team retro. Just one thing: what I won&#39;t do on the next project.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Почему я веду список «что НЕ делать в следующем проекте»]]></title>
            <link>https://ivanpin.com/ru/blog/what-not-to-do-list-next-project</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/what-not-to-do-list-next-project</guid>
            <pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[После каждого проекта я открываю одну и ту же заметку. Называю её «что не делать в следующем проекте». Там не «что прошло хорошо» — это в ретроспективу. Только одно: что именно я не повторю.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Why I Ban LLMs from Client-Facing Features]]></title>
            <link>https://ivanpin.com/en/blog/ai-client-facing-ban-internal-only-rule</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-client-facing-ban-internal-only-rule</guid>
            <pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I run 13 autonomous Claude tasks in my studio. They write LinkedIn posts, draft blog articles, run monitoring, send Telegram alerts. I trust them — and I sleep fine. Because if Claude writes something wrong in my name, I see it before it matters. But if it wrote that in response to a customer&#39;s question about a return policy on my client&#39;s e-commerce site? Different story. That&#39;s why I have a rule: no LLMs on client-facing features. Not yet.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Почему у меня запрещено ставить LLM на клиентскую сторону]]></title>
            <link>https://ivanpin.com/ru/blog/ai-client-facing-ban-internal-only-rule</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-client-facing-ban-internal-only-rule</guid>
            <pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[У меня в студии работает 13 автономных задач на Claude. Они ведут мой LinkedIn, пишут статьи для блога, мониторят SSI-систему, отправляют уведомления в Telegram. Я им доверяю — и сплю спокойно. Потому что если Claude напишет что-то не то в моём имени, я это увижу. Но если бы он написал это в ответ на вопрос покупателя о возврате товара на сайте моего клиента — это другая история. Именно поэтому у меня есть правило: никаких LLM на клиентской стороне. Пока.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[The authorized user sees the login form. Bitrix is up. Next.js is up. They just can't agree on who you are.]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-user-auth-session-handling</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-user-auth-session-handling</guid>
            <pubDate>Tue, 15 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We moved a 28,000-product catalog to Next.js. The first two days after deploy were about CSS and performance. On day three, a ticket arrived: &quot;Authenticated users see the login form instead of their account.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Авторизованный пользователь видит форму входа. Bitrix жив. Next.js жив. Они просто не договорились.]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-user-auth-session-handling</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-user-auth-session-handling</guid>
            <pubDate>Tue, 15 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда мы перенесли каталог 28 000 товаров на Next.js, первые два дня после деплоя были про CSS и перфоманс. На третий день пришёл тикет: «Авторизованные пользователи видят форму входа вместо личного кабинета».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Nginx in Front of Bitrix: Five Config Lines That Cut TTFB by 600ms]]></title>
            <link>https://ivanpin.com/en/blog/nginx-fastcgi-cache-bitrix-ttfb</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/nginx-fastcgi-cache-bitrix-ttfb</guid>
            <pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Most Bitrix deployments have TTFB above 700ms. Not because PHP is slow. Because the Nginx config is the one the hosting provider dropped in place years ago and nobody&#39;s touched since.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Nginx перед Bitrix: пять строк, которые убирают 600 мс TTFB]]></title>
            <link>https://ivanpin.com/ru/blog/nginx-fastcgi-cache-bitrix-ttfb</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/nginx-fastcgi-cache-bitrix-ttfb</guid>
            <pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[У большинства Bitrix-сайтов TTFB выше 700 мс. Не потому что PHP медленный. Потому что Nginx-конфиг лежит нетронутым с того дня, когда хостер его положил — часто в 2016–2017 году.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Your Search Logs Are the Best Product Doc You're Not Reading]]></title>
            <link>https://ivanpin.com/en/blog/internal-search-logs-as-product-signal</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/internal-search-logs-as-product-signal</guid>
            <pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A client asked: &quot;What are our customers actually searching for?&quot; I pulled up Elasticsearch and exported the top 40 zero-results queries from the past week. Three of them were exact product names. In stock. Just written differently than the catalog.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Лог поиска — это лучший продуктовый документ, который вы не читаете]]></title>
            <link>https://ivanpin.com/ru/blog/internal-search-logs-as-product-signal</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/internal-search-logs-as-product-signal</guid>
            <pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Клиент спросил: «Что ищут наши покупатели?» Я открыл Elasticsearch и вытащил топ-40 поисковых запросов с нулём результатов за прошлую неделю. Среди них — три точных названия товаров, которые были в наличии. Просто записаны иначе, чем в каталоге.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Your Client Knows You Use AI. Now They Want a Discount.]]></title>
            <link>https://ivanpin.com/en/blog/client-ai-discount-pricing-negotiation</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/client-ai-discount-pricing-negotiation</guid>
            <pubDate>Sun, 01 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A client asked me directly, three months ago: &quot;You use Cursor and Claude Code — why should I pay your full rate?&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Клиент знает, что ты используешь AI. Теперь хочет скидку.]]></title>
            <link>https://ivanpin.com/ru/blog/client-ai-discount-pricing-negotiation</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/client-ai-discount-pricing-negotiation</guid>
            <pubDate>Sun, 01 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Три месяца назад клиент спросил напрямую: «Ты же используешь Cursor и Claude Code — зачем мне платить полную ставку?»]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I automated my blog's full production pipeline with Claude Code. Here's what actually happened.]]></title>
            <link>https://ivanpin.com/en/blog/blog-content-machine-claude-code-results</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/blog-content-machine-claude-code-results</guid>
            <pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I set up Claude Code to write and publish posts on my blog. Every 20 minutes. No approval. Fully autonomous.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я автоматизировал производственный процесс своего блога. Вот что из этого вышло.]]></title>
            <link>https://ivanpin.com/ru/blog/blog-content-machine-claude-code-results</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/blog-content-machine-claude-code-results</guid>
            <pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Я настроил Claude Code писать и публиковать статьи в мой блог без моего участия. Каждые 20 минут. Автоматически.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Stock Sync in Headless Bitrix: Three Patterns and Why Boring Polling Wins]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-stock-sync-polling-vs-webhooks</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-stock-sync-polling-vs-webhooks</guid>
            <pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Three warehouses. 28,000 SKUs. A promise to the client: real-time stock data.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Синхронизация остатков в headless Bitrix: почему polling победил webhooks]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-stock-sync-polling-vs-webhooks</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-stock-sync-polling-vs-webhooks</guid>
            <pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[У нас было три склада, 28K SKU и обещание клиенту: остатки в реальном времени.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Three Conversations Before the Project Starts That Saved Me Six Months of Pain]]></title>
            <link>https://ivanpin.com/en/blog/pre-project-client-expectations-three-talks</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/pre-project-client-expectations-three-talks</guid>
            <pubDate>Tue, 15 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[My most expensive project didn&#39;t cost me money.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Три разговора до старта проекта, которые спасли меня от полугода боли]]></title>
            <link>https://ivanpin.com/ru/blog/pre-project-client-expectations-three-talks</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/pre-project-client-expectations-three-talks</guid>
            <pubDate>Tue, 15 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Самый дорогой проект в моей практике обошёлся не в деньгах.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[We plan the next Bitrix upgrade before the project launches. Here's the playbook]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-upgrade-lifecycle-plan-before-launch</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-upgrade-lifecycle-plan-before-launch</guid>
            <pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Bitrix upgrade lifecycle planning isn&#39;t something most teams think about at project kickoff. They think about it when a security advisory lands in their inbox on a Friday afternoon.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Мы планируем следующий апгрейд Bitrix ещё до запуска проекта. Вот как]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-upgrade-lifecycle-plan-before-launch</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-upgrade-lifecycle-plan-before-launch</guid>
            <pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Планирование обновления Bitrix — это не то, о чём думают при запуске проекта. Думают об этом, когда в пятницу вечером приходит уведомление об окончании поддержки версии.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[We rebuilt search three times. Autocomplete outperformed the first two combined.]]></title>
            <link>https://ivanpin.com/en/blog/ecommerce-autocomplete-conversion-channel</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ecommerce-autocomplete-conversion-channel</guid>
            <pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We rebuilt search three times on one project.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Мы три раза переделывали поиск. Автокомплит дал больше, чем первые два вместе]]></title>
            <link>https://ivanpin.com/ru/blog/ecommerce-autocomplete-conversion-channel</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ecommerce-autocomplete-conversion-channel</guid>
            <pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы три раза переделывали поиск на одном проекте.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[AI doesn't multiply your skills. It multiplies your habits.]]></title>
            <link>https://ivanpin.com/en/blog/ai-amplifies-habits-not-just-skills</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-amplifies-habits-not-just-skills</guid>
            <pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Last year I wrote roughly three times more code than the year before. That&#39;s true. AI tools genuinely accelerate. But a significant chunk of that code I later deleted.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] AI умножает не навыки. Он умножает привычки.]]></title>
            <link>https://ivanpin.com/ru/blog/ai-amplifies-habits-not-just-skills</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-amplifies-habits-not-just-skills</guid>
            <pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[За последний год я написал примерно втрое больше кода. Это правда. AI-инструменты реально ускоряют. Но если честно, значительную часть этого кода я потом удалил.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[What 28,000 SKUs taught me about Bitrix]]></title>
            <link>https://ivanpin.com/en/blog/what-28k-skus-taught-me-bitrix</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/what-28k-skus-taught-me-bitrix</guid>
            <pubDate>Sat, 15 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I walked into the project with a bias.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Что 28 000 SKU научили меня про Bitrix]]></title>
            <link>https://ivanpin.com/ru/blog/what-28k-skus-taught-me-bitrix</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/what-28k-skus-taught-me-bitrix</guid>
            <pubDate>Sat, 15 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Я зашёл в проект с предубеждением.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[If it runs without you, it's production]]></title>
            <link>https://ivanpin.com/en/blog/your-workflow-is-also-production</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/your-workflow-is-also-production</guid>
            <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[The first thing I wrote in my new automation system wasn&#39;t a task. It was a STOP file and an Inbox/ folder.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Если запускается без тебя — это продакшн]]></title>
            <link>https://ivanpin.com/ru/blog/your-workflow-is-also-production</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/your-workflow-is-also-production</guid>
            <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Первое, что я написал в новой системе автоматизации — не задачу. Я написал файл STOP и папку Inbox/.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Why I keep human approval gates even when I could remove them]]></title>
            <link>https://ivanpin.com/en/blog/approval-gates-deliberate-automation-limits</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/approval-gates-deliberate-automation-limits</guid>
            <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I run 15 automated tasks. Five of them will never get auto-publish — even though I could technically remove the approval gate in an afternoon.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Где я намеренно держу approval gate — даже когда могу убрать его совсем]]></title>
            <link>https://ivanpin.com/ru/blog/approval-gates-deliberate-automation-limits</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/approval-gates-deliberate-automation-limits</guid>
            <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[У меня 15 cron-задач. Из них 5 никогда не получат auto-publish — даже если я мог бы технически убрать approval gate за пару часов.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[How I write task specs for autonomous AI agents running without human oversight]]></title>
            <link>https://ivanpin.com/en/blog/writing-task-specs-autonomous-ai-agents</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/writing-task-specs-autonomous-ai-agents</guid>
            <pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[When I write a task for an agent that runs on a cron at 3am, I think about the wording differently.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как я пишу задачи для автономных AI-агентов (когда человека нет в контуре)]]></title>
            <link>https://ivanpin.com/ru/blog/writing-task-specs-autonomous-ai-agents</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/writing-task-specs-autonomous-ai-agents</guid>
            <pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда я пишу задачу для агента, который будет запускаться по cron в 3 ночи — я думаю о формулировках иначе.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[What we kept on Bitrix when going headless: the honest list with reasoning]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-headless-what-stays-what-moves</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-headless-what-stays-what-moves</guid>
            <pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[When a client says &quot;we&#39;re going headless,&quot; the first question isn&#39;t &quot;which framework.&quot; It&#39;s: what actually stays on Bitrix?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Что мы оставили на Bitrix, когда перешли на headless: честный список с reasoning]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-headless-what-stays-what-moves</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-headless-what-stays-what-moves</guid>
            <pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда клиент говорит «переходим на headless», первый вопрос не «какой фреймворк». Первый вопрос: что вообще остаётся на Bitrix?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Bitrix on Dedicated CPU: What the Production Graphs Showed After Leaving Shared Hosting]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-dedicated-cpu-hosting-profile</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-dedicated-cpu-hosting-profile</guid>
            <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A client message: &quot;We followed all your recommendations. OPcache is on, Redis sessions are running. We even fixed the SQL queries. But the site still goes down during evening traffic spikes.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Bitrix на выделенных ядрах: что стало видно в prod-графиках после переезда с shared-хостинга]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-dedicated-cpu-hosting-profile</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-dedicated-cpu-hosting-profile</guid>
            <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Клиент пишет: «Мы всё перенастроили по вашим рекомендациям. OPcache включён, Redis-сессии работают. SQL-индексы тоже — проверяли отдельно. Вечерний пик всё равно роняет сайт».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[3,000 Results Is Also Broken Search]]></title>
            <link>https://ivanpin.com/en/blog/too-many-results-ecommerce-search</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/too-many-results-ecommerce-search</guid>
            <pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Zero results is a red flag in the dashboard. Obvious. Gets filed as a bug.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Три тысячи результатов — тоже сломанный поиск]]></title>
            <link>https://ivanpin.com/ru/blog/too-many-results-ecommerce-search</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/too-many-results-ecommerce-search</guid>
            <pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Нулевые результаты — красный флаг в дашборде. Их сразу видят. О них сразу пишут задачи.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[AI Doesn't Level the Playing Field. It Multiplies What You Already Have.]]></title>
            <link>https://ivanpin.com/en/blog/ai-multiplies-skills-hiring-implications</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-multiplies-skills-hiring-implications</guid>
            <pubDate>Fri, 01 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[When ChatGPT launched, the take I kept hearing was: juniors will code like midlevels, midlevels like seniors. The gap closes. Everyone levels up.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] AI не выравнивает скиллы. Оно их умножает — и это меняет найм]]></title>
            <link>https://ivanpin.com/ru/blog/ai-multiplies-skills-hiring-implications</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-multiplies-skills-hiring-implications</guid>
            <pubDate>Fri, 01 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда ChatGPT только вышел, я слышал одно: «теперь джун напишет как мидл, а мидл — как сеньор». Красивый нарратив. Спустя полтора года с Claude Code у меня другой вывод.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[What I Never Give AI: A Framework From 13 Production Tasks]]></title>
            <link>https://ivanpin.com/en/blog/ai-delegation-framework-what-not-to-give-ai</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-delegation-framework-what-not-to-give-ai</guid>
            <pubDate>Tue, 15 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Seven of my thirteen production tasks run through me. Five run without me. One I&#39;ll never hand to an algorithm — not even in &quot;show me a draft first&quot; mode.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Что нельзя давать AI: как я выстроил фреймворк после 13 задач в production]]></title>
            <link>https://ivanpin.com/ru/blog/ai-delegation-framework-what-not-to-give-ai</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-delegation-framework-what-not-to-give-ai</guid>
            <pubDate>Tue, 15 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Семь из тринадцати задач в моей системе проходят через меня. Пять работают сами. Одну я никогда не отдам алгоритму — даже на стадии «сначала покажи, потом сделаю».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Local Dev for Headless Bitrix: Three Setups, One That Actually Works]]></title>
            <link>https://ivanpin.com/en/blog/headless-bitrix-local-dev-environment-nextjs</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-bitrix-local-dev-environment-nextjs</guid>
            <pubDate>Tue, 01 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[The first question I get about headless Bitrix is about architecture. The second is about deployment. The third nobody asks out loud — but everyone runs into it in the first week: how do you actually develop when you don&#39;t have Bitrix on your machine?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Локальная разработка для headless Bitrix: три сценария и один рабочий]]></title>
            <link>https://ivanpin.com/ru/blog/headless-bitrix-local-dev-environment-nextjs</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-bitrix-local-dev-environment-nextjs</guid>
            <pubDate>Tue, 01 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Первый вопрос, который мне задают про headless Bitrix, всегда про архитектуру. Второй — про деплой. Третий никто не задаёт вслух, но все спотыкаются об него на первой неделе: как вообще разрабатывать, если у тебя нет Bitrix на машине?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[How I spot a difficult client before the project starts]]></title>
            <link>https://ivanpin.com/en/blog/client-vetting-before-project-start</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/client-vetting-before-project-start</guid>
            <pubDate>Sun, 15 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Two years ago I took a project where the first call had three signals I already knew how to read. I took it anyway — the money was good and I told myself I&#39;d manage. Four months later I was walking out of that project. Professionally, no drama. But I&#39;d spent months on work I shouldn&#39;t have started.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как я вычисляю трудного клиента ещё до старта проекта]]></title>
            <link>https://ivanpin.com/ru/blog/client-vetting-before-project-start</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/client-vetting-before-project-start</guid>
            <pubDate>Sun, 15 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Два года назад я взял проект, в котором с первого звонка было три признака, которые я уже умел распознавать. Взял, потому что деньги были хорошие, а я сказал себе: «Справлюсь». Четыре месяца спустя я выходил из этого проекта — нормально, без скандала, но с ощущением, что потратил время на работу, которую надо было не брать.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[PHP-FPM pm.max_children: The Setting That Brings Bitrix Down Under Load]]></title>
            <link>https://ivanpin.com/en/blog/php-fpm-pool-bitrix-highload</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php-fpm-pool-bitrix-highload</guid>
            <pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[pm.max_children is the PHP-FPM configuration parameter that sets the maximum number of worker processes in a pool. On a busy Bitrix installation, getting this wrong is the most reliable way to turn a promotional spike into a 504 error wave — and the most reliable way to miss it during normal traffic.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] PHP-FPM pm.max_children: параметр, который кладёт Bitrix под нагрузкой]]></title>
            <link>https://ivanpin.com/ru/blog/php-fpm-pool-bitrix-highload</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php-fpm-pool-bitrix-highload</guid>
            <pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Bitrix выдаёт 504. Nginx логи чистые. MySQL загружен на 40&#37;. OPcache прогрет. Composite cache включён. И всё равно сайт мёртв в час пик.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[When Elasticsearch Lies: Keeping Your Search Index Fresh When the Catalog Changes Daily]]></title>
            <link>https://ivanpin.com/en/blog/search-catalog-freshness-daily-updates</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/search-catalog-freshness-daily-updates</guid>
            <pubDate>Thu, 15 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A customer searched, found what they needed, clicked — and got &quot;out of stock.&quot; They left. Later, a support ticket: &quot;your search is broken.&quot; I opened the logs. The search wasn&#39;t broken. It returned exactly what was in the index an hour ago.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Поиск, который врёт: почему Elasticsearch показывает «в наличии», когда товара нет]]></title>
            <link>https://ivanpin.com/ru/blog/search-catalog-freshness-daily-updates</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/search-catalog-freshness-daily-updates</guid>
            <pubDate>Thu, 15 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Покупатель ввёл запрос, нашёл нужный товар, кликнул — и увидел «нет в наличии». Ушёл. Написал в поддержку: «у вас сломан поиск». Я открыл логи — поиск работал правильно. Он показывал то, что было в индексе час назад. Проблема не в Elasticsearch. Проблема в том, что мы не подумали, как часто он должен узнавать о переменах.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I Run 13 Automations. None Use LangGraph.]]></title>
            <link>https://ivanpin.com/en/blog/cron-vs-ai-agents-boring-reliable</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/cron-vs-ai-agents-boring-reliable</guid>
            <pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[My dev studio runs 13 automations. They fire every day: collecting blog topics, generating candidates, publishing articles, sending notifications, logging everything.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] У меня 13 автоматизаций. Ни одна не использует LangGraph]]></title>
            <link>https://ivanpin.com/ru/blog/cron-vs-ai-agents-boring-reliable</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/cron-vs-ai-agents-boring-reliable</guid>
            <pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[В студии 13 автоматизаций. Они работают каждый день: собирают темы для блога, генерируют кандидатов, публикуют статьи, логируют, отправляют уведомления.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[PHP Earns the Money. Next.js Shows It.]]></title>
            <link>https://ivanpin.com/en/blog/php-earns-money-nextjs-shows-it</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php-earns-money-nextjs-shows-it</guid>
            <pubDate>Mon, 15 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[In a headless Bitrix &#43; Next.js architecture, the split is straightforward in theory: Bitrix owns the data and business logic, Next.js owns the rendering. In practice, most teams get this wrong within the first year.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] PHP зарабатывает деньги. Next.js их показывает.]]></title>
            <link>https://ivanpin.com/ru/blog/php-earns-money-nextjs-shows-it</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php-earns-money-nextjs-shows-it</guid>
            <pubDate>Mon, 15 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда клиент говорит «хотим headless», первое, что я спрашиваю — а что именно мы переносим?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Monitoring 13 Autonomous Agents in Production: What to Log, Alert, and Ignore]]></title>
            <link>https://ivanpin.com/en/blog/monitoring-autonomous-ai-agents-logging</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/monitoring-autonomous-ai-agents-logging</guid>
            <pubDate>Sat, 15 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[I run 13 Claude agents on cron, fully unattended. Last week two of them failed. I found out within 2 minutes — not because I built a monitoring stack, but because I put five lines of JSONL into every task from day one.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как я мониторю 13 автономных агентов: что логировать, что алертить, что игнорировать]]></title>
            <link>https://ivanpin.com/ru/blog/monitoring-autonomous-ai-agents-logging</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/monitoring-autonomous-ai-agents-logging</guid>
            <pubDate>Sat, 15 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[У меня работают 13 агентов Claude без моего участия. На прошлой неделе двое из них упали. Я узнал об этом через 2 минуты — не потому что поставил сложный мониторинг, а потому что с первого дня вписал в каждую задачу пять строчек JSONL.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Five things Bitrix REST API doesn't tell you before you go headless]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-rest-api-headless-surprises</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-rest-api-headless-surprises</guid>
            <pubDate>Sat, 01 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[I&#39;ve spent more time with Bitrix REST API than I expected. Not because the API is broken. Because the documentation covers syntax, not behavior.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Пять вещей, которые меня удивили в Bitrix REST API, когда я пошёл в headless]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-rest-api-headless-surprises</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-rest-api-headless-surprises</guid>
            <pubDate>Sat, 01 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Я провёл с Bitrix REST API больше времени, чем планировал. Не потому что API плохой. А потому что документация описывает синтаксис, но молчит про поведение.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I stopped estimating in story points. Now I ask what can break everything first.]]></title>
            <link>https://ivanpin.com/en/blog/project-estimation-risk-map-not-story-points</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/project-estimation-risk-map-not-story-points</guid>
            <pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Three years ago, every project estimate started the same way. Break it into tasks, assign story points, divide by velocity, call it a deadline.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я перестал оценивать в story points. Теперь первый вопрос — что может сломать всё]]></title>
            <link>https://ivanpin.com/ru/blog/project-estimation-risk-map-not-story-points</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/project-estimation-risk-map-not-story-points</guid>
            <pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Три года назад я отвечал на вопрос «сколько это займёт?» одинаково: открывал Trello, декомпозировал на задачи, ставил story points. Потом суммировал, умножал на velocity, называл срок.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[How MySQL Slow Query Log Found the Bottleneck We'd Been Chasing for Three Months]]></title>
            <link>https://ivanpin.com/en/blog/mysql-slow-query-log-bitrix-bottleneck</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/mysql-slow-query-log-bitrix-bottleneck</guid>
            <pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[For three months we knew something was slow. LCP on the product catalog: 4.1 seconds. Where exactly — no idea.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как slow_query_log нашёл узкое место, которое мы искали три месяца]]></title>
            <link>https://ivanpin.com/ru/blog/mysql-slow-query-log-bitrix-bottleneck</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/mysql-slow-query-log-bitrix-bottleneck</guid>
            <pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Три месяца мы знали: что-то тормозит. LCP каталога — 4.1 секунды. Где проблема — нет.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[\&quot;Socks\&quot; and \&quot;knee-highs\&quot; are the same product. Elasticsearch didn't know.]]></title>
            <link>https://ivanpin.com/en/blog/elasticsearch-synonyms-russian-morphology</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/elasticsearch-synonyms-russian-morphology</guid>
            <pubDate>Mon, 15 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Three weeks of Elasticsearch setup &#40;shards, replicas, mappings, custom tokenizers&#41; got us to where fuzziness AUTO dropped zero-results from 22&#37; to 11&#37;. A real improvement. But 11&#37; of searchers were still leaving empty-handed. I pulled the logs and found the problem wasn&#39;t typos. It was synonyms.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] «Носки» и «гольфы» — один товар. Elasticsearch об этом не знал]]></title>
            <link>https://ivanpin.com/ru/blog/elasticsearch-synonyms-russian-morphology</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/elasticsearch-synonyms-russian-morphology</guid>
            <pubDate>Mon, 15 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[После трёх недель настройки Elasticsearch — шарды, реплики, mapping, кастомный токенайзер — мы разобрались с нечёткостью: добавили fuzziness AUTO и zero-results упали с 22&#37; до 11&#37;. Хорошо. Но 11&#37; покупателей по-прежнему уходили ни с чем. Я полез в логи и обнаружил: большинство из этих запросов не были опечатками. Это были синонимы.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[No, I Don't Scale. That's the Point.]]></title>
            <link>https://ivanpin.com/en/blog/stay-boutique-no-scale-strategy</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/stay-boutique-no-scale-strategy</guid>
            <pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[People keep telling me to scale up. I run a boutique software agency and I do it intentionally small. I nod, say nothing, and don&#39;t change a thing. Not because I&#39;m lazy. Because I tried.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Нет, я не масштабируюсь. И это моя стратегия.]]></title>
            <link>https://ivanpin.com/ru/blog/stay-boutique-no-scale-strategy</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/stay-boutique-no-scale-strategy</guid>
            <pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Мне периодически говорят: «Тебе надо масштабироваться». Я веду boutique-студию разработки и намеренно её не масштабирую. Соглашаюсь кивком и не делаю ничего. Не потому что лень. Потому что я пробовал.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[AI Agent ROI: How I Calculate It Before the First Line of Code]]></title>
            <link>https://ivanpin.com/en/blog/ai-agent-roi-before-adoption</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-agent-roi-before-adoption</guid>
            <pubDate>Fri, 15 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[When a client says &quot;I want an AI agent to handle order processing,&quot; I ask one question: how much does processing one order cost right now?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] ROI AI-агентов: как я считаю окупаемость до внедрения]]></title>
            <link>https://ivanpin.com/ru/blog/ai-agent-roi-before-adoption</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-agent-roi-before-adoption</guid>
            <pubDate>Fri, 15 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда клиент говорит «хочу AI-агента для обработки заказов», я задаю один вопрос: сколько стоит один обработанный заказ сейчас?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Cache Invalidation in Headless: How Next.js Learns When Bitrix Updates a Product]]></title>
            <link>https://ivanpin.com/en/blog/nextjs-isr-bitrix-cache-invalidation</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/nextjs-isr-bitrix-cache-invalidation</guid>
            <pubDate>Fri, 01 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[The complaint came on day three after the headless launch. A store manager updated a price in Bitrix at 10:47. A customer added the product to their cart at 11:20 — at the old price. The Next.js page was cached for one hour.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Кэш-инвалидация в headless: как Next.js узнаёт, что Bitrix обновил товар]]></title>
            <link>https://ivanpin.com/ru/blog/nextjs-isr-bitrix-cache-invalidation</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/nextjs-isr-bitrix-cache-invalidation</guid>
            <pubDate>Fri, 01 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Первая жалоба пришла на третий день после запуска headless. Менеджер обновил цену в Bitrix в 10:47. Покупатель положил товар в корзину в 11:20 — по старой цене. В Next.js была страница, закэшированная на один час.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Boring stack is a brave call]]></title>
            <link>https://ivanpin.com/en/blog/boring-stack-brave-choice</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/boring-stack-brave-choice</guid>
            <pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Three months ago a developer messaged me: &quot;You&#39;re still writing PHP? Isn&#39;t that a waste of your time?&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Скучный стек — это смелый выбор]]></title>
            <link>https://ivanpin.com/ru/blog/boring-stack-brave-choice</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/boring-stack-brave-choice</guid>
            <pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Три месяца назад мне написал разработчик: «Ты до сих пор пишешь на PHP? Не жалко времени?»]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[PHP File Sessions Took Down Our Server at Peak Load. Here's What We Found.]]></title>
            <link>https://ivanpin.com/en/blog/php-file-sessions-redis-bitrix-peak-load</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php-file-sessions-redis-bitrix-peak-load</guid>
            <pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Our server went down at 23:00. Right in the middle of a marketing promotion.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Файловые сессии PHP убили наш сервер в 23:00. Вот что мы сделали]]></title>
            <link>https://ivanpin.com/ru/blog/php-file-sessions-redis-bitrix-peak-load</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php-file-sessions-redis-bitrix-peak-load</guid>
            <pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Наш сервер лёг в 23:00. Прямо во время маркетинговой акции.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I write a spec before asking AI to write code. Here's why.]]></title>
            <link>https://ivanpin.com/en/blog/spec-first-ai-coding-discipline</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/spec-first-ai-coding-discipline</guid>
            <pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[I timed it. When I write a spec before opening Claude Code, an iteration takes around 40 minutes. When I skip straight to the prompt, it&#39;s closer to two and a half hours and three rollbacks.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я пишу спецификацию до того, как прошу AI написать код. Вот почему]]></title>
            <link>https://ivanpin.com/ru/blog/spec-first-ai-coding-discipline</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/spec-first-ai-coding-discipline</guid>
            <pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Я замерил. Когда я пишу спецификацию перед тем, как открыть Claude Code, итерация занимает в среднем 40 минут. Когда сажусь сразу писать промпт — около двух с половиной часов и три откатa.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Frontend deploys in 3 minutes, backend takes 40: managing deploy velocity in headless Bitrix]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-nextjs-deploy-velocity-gap</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-nextjs-deploy-velocity-gap</guid>
            <pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We went headless. The frontend started deploying in 3 minutes. The backend didn&#39;t.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Фронт деплоится за 3 минуты, бэк — за 40: как мы это решали в headless-проекте]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-nextjs-deploy-velocity-gap</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-nextjs-deploy-velocity-gap</guid>
            <pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы перешли на headless. Фронт стал деплоиться за 3 минуты. Бэк — нет.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[\&quot;Samsunk phone\&quot; returned zero results. I found it before the client did.]]></title>
            <link>https://ivanpin.com/en/blog/elasticsearch-fuzzy-typo-tolerance-ru-ecommerce</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/elasticsearch-fuzzy-typo-tolerance-ru-ecommerce</guid>
            <pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[One of the first queries after we launched new search on a 28,000 SKU catalog: &quot;samsunk phone.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] «Самсунк телефон» вернул ноль результатов. Я нашёл это до того, как клиент.]]></title>
            <link>https://ivanpin.com/ru/blog/elasticsearch-fuzzy-typo-tolerance-ru-ecommerce</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/elasticsearch-fuzzy-typo-tolerance-ru-ecommerce</guid>
            <pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Первый нетривиальный запрос после запуска нового поиска на каталоге в 28 000 SKU: «самсунк телефон».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I stopped estimating by hours. Here's how I price projects by risk now.]]></title>
            <link>https://ivanpin.com/en/blog/pricing-project-by-risk-not-hours</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/pricing-project-by-risk-not-hours</guid>
            <pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[When a client asks &quot;how much will this cost?&quot;, the instinct is to estimate hours. Multiply by rate. Add a 20&#37; buffer. Send the number.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я перестал считать часы. Вот как я оцениваю проекты теперь]]></title>
            <link>https://ivanpin.com/ru/blog/pricing-project-by-risk-not-hours</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/pricing-project-by-risk-not-hours</guid>
            <pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда клиент спрашивает «сколько это стоит?», стандартный ответ — считать часы. Умножить на ставку. Прибавить 20&#37; буфер. Написать число.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[How I trust AI agents in production: 3 patterns from 13 cron jobs]]></title>
            <link>https://ivanpin.com/en/blog/ai-agent-production-trust-patterns</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-agent-production-trust-patterns</guid>
            <pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[When I handed 7 of 13 cron jobs to Claude, the first thing I built wasn&#39;t a prompt. It was a STOP file and an Inbox folder.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как я доверяю AI-агенту в продакшне: 3 паттерна из 13 cron-задач]]></title>
            <link>https://ivanpin.com/ru/blog/ai-agent-production-trust-patterns</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-agent-production-trust-patterns</guid>
            <pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда я отдал 7 из 13 cron-задач Claude, первое, что я сделал — написал STOP-файл и папку Inbox. Не промт. Не систему мониторинга. Именно это.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Three checks before any headless project]]></title>
            <link>https://ivanpin.com/en/blog/headless-preflight-three-checks</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-preflight-three-checks</guid>
            <pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[The first question I ask before any proposal: &quot;Who&#39;s editing content after we&#39;re done, and where?&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Три вещи, которые я проверяю до любого headless-проекта]]></title>
            <link>https://ivanpin.com/ru/blog/headless-preflight-three-checks</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-preflight-three-checks</guid>
            <pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Первый вопрос, который я задаю до любого КП: «Кто будет редактировать контент после нас — и на чём?»]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I stopped interviewing developers. Here's what I do instead.]]></title>
            <link>https://ivanpin.com/en/blog/pay-for-trial-not-interview</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/pay-for-trial-not-interview</guid>
            <pubDate>Tue, 15 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[In 2020 I hired a developer who nailed the architecture explanation in the interview, answered every PHP question correctly, and impressed two people on the team. Four months later I let him go. Not because he was incompetent in the abstract — he just couldn&#39;t work in our actual context.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я перестал собеседовать разработчиков. Вот что я делаю вместо этого]]></title>
            <link>https://ivanpin.com/ru/blog/pay-for-trial-not-interview</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/pay-for-trial-not-interview</guid>
            <pubDate>Tue, 15 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[В 2020 году я нанял разработчика, который на собеседовании безупречно объяснил архитектуру microservices, правильно ответил на все вопросы по PHP и произвёл впечатление на двух людей в команде. Через четыре месяца я его уволил. Не потому что он был плохим человеком — он просто не умел работать в нашем реальном контексте.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[How PHP OPcache Silently Degrades Bitrix in Production (and the 3-Line Fix)]]></title>
            <link>https://ivanpin.com/en/blog/php-opcache-bitrix-prod-misconfiguration</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/php-opcache-bitrix-prod-misconfiguration</guid>
            <pubDate>Sat, 15 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[For three months we chased a bottleneck in a Bitrix store. Rewrote MySQL indexes. Added Redis caching where it hadn&#39;t been. Pages got a bit faster, but the catalog still hung at 800-900ms on production with no obvious reason.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Как PHP OPcache убивает production Bitrix — и три строки, которые это чинят]]></title>
            <link>https://ivanpin.com/ru/blog/php-opcache-bitrix-prod-misconfiguration</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/php-opcache-bitrix-prod-misconfiguration</guid>
            <pubDate>Sat, 15 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Три месяца мы смотрели в slow query log. Перекраивали индексы. Добавляли Redis-кеш там, где его раньше не было. Сайт становился чуть лучше, но страницы каталога иногда виснули на 800-900ms без видимой причины.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Zero results as a product backlog: what your search logs are telling you]]></title>
            <link>https://ivanpin.com/en/blog/search-no-results-as-product-backlog</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/search-no-results-as-product-backlog</guid>
            <pubDate>Thu, 15 Jun 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[We added Elasticsearch to a 28,000 SKU catalog and assumed the hard part was done. Search works, products show up, response times are fine. A month later I opened the no-results query logs.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Что ищут и не находят: как no-results превратился в наш главный источник задач]]></title>
            <link>https://ivanpin.com/ru/blog/search-no-results-as-product-backlog</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/search-no-results-as-product-backlog</guid>
            <pubDate>Thu, 15 Jun 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Мы добавили Elasticsearch в каталог на 28 000 SKU и решили, что дело сделано. Поиск работает, товары находятся, скорость нормальная. Через месяц я открыл аналитику поиска — конкретно логи no-results запросов.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[What 'project done' means for a senior engineer (not a PM)]]></title>
            <link>https://ivanpin.com/en/blog/project-closure-senior-vs-pm</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/project-closure-senior-vs-pm</guid>
            <pubDate>Mon, 15 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A project is done when the last commit hits prod. That&#39;s how juniors think about it.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Что значит закрыть проект — для инженера, а не для PM]]></title>
            <link>https://ivanpin.com/ru/blog/project-closure-senior-vs-pm</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/project-closure-senior-vs-pm</guid>
            <pubDate>Mon, 15 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Проект считается закрытым, когда последний коммит ушёл в прод. Это рабочее определение для джуниора.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I let AI review our code for 3 months. Here's what it consistently misses.]]></title>
            <link>https://ivanpin.com/en/blog/ai-code-review-blind-spots</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-code-review-blind-spots</guid>
            <pubDate>Sat, 15 Apr 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[AI code review tools are good at what they can see — syntax, patterns, obvious errors. They consistently miss what requires system context: cache dependencies, business logic hidden in refactors, and technical debt that only shows at scale.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я дал AI проводить code review три месяца. Вот что он стабильно пропускает.]]></title>
            <link>https://ivanpin.com/ru/blog/ai-code-review-blind-spots</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-code-review-blind-spots</guid>
            <pubDate>Sat, 15 Apr 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Три месяца назад я начал прогонять все pull request через code review с помощью AI прежде, чем смотреть самому.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Five questions I ask before proposing headless to a client]]></title>
            <link>https://ivanpin.com/en/blog/headless-pre-proposal-five-questions</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-pre-proposal-five-questions</guid>
            <pubDate>Wed, 15 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[In the past two years I&#39;ve turned down headless three times. Not because I don&#39;t believe in it — I&#39;ve built it, I know what it delivers. But each time, five questions made the answer obvious before we touched a wireframe. The fourth client got the full Next.js &#43; Bitrix split. It&#39;s one of the best ecommerce projects I&#39;ve worked on.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Пять вопросов, которые я задаю перед тем, как предложить headless]]></title>
            <link>https://ivanpin.com/ru/blog/headless-pre-proposal-five-questions</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-pre-proposal-five-questions</guid>
            <pubDate>Wed, 15 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[За последние два года я трижды отговорил клиента от headless-миграции. Не потому что headless плохой — я люблю его строить и видел, что он даёт. А потому что ответы на пять вопросов делали результат очевидным ещё до того, как мы открывали Figma. В четвёртый раз ответы были другими, и проект получил полноценный Next.js &#43; Bitrix на бэкенде. Сейчас это один из лучших ecom-проектов, с которыми я работал.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Tech debt in plain money: how I talk refactoring to non-technical clients]]></title>
            <link>https://ivanpin.com/en/blog/tech-debt-in-money-client-conversation</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/tech-debt-in-money-client-conversation</guid>
            <pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Three times I explained refactoring by saying &quot;architecture&quot; — and three times I got a polite &quot;sure, but let&#39;s ship features first.&quot; Then I changed one thing: instead of &quot;architectural debt,&quot; I said &quot;this component adds about 6 hours to every new delivery type we add. Last quarter that was 18 hours we didn&#39;t have to spend.&quot; The client said: &quot;Okay, take a week.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Технический долг в деньгах: как я объясняю рефакторинг без слова «архитектура»]]></title>
            <link>https://ivanpin.com/ru/blog/tech-debt-in-money-client-conversation</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/tech-debt-in-money-client-conversation</guid>
            <pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Первые три раза я объяснял рефакторинг через «архитектуру» — и получал вежливое «окей, но давайте сначала сделаем фичи». Потом я поменял одну вещь: вместо «архитектурного долга» сказал «вот эта часть системы сейчас стоит нам дополнительных 6 часов на каждый новый тип доставки. За квартал это 60 часов, которые мы теряем». Клиент ответил: «ладно, выдели неделю».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[3 Months With MCP: What Actually Changed in My Engineering Workflow]]></title>
            <link>https://ivanpin.com/en/blog/mcp-protocol-senior-engineer-workflow</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/mcp-protocol-senior-engineer-workflow</guid>
            <pubDate>Sun, 15 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[I set up four MCP servers in one evening. Then removed two. Added one different one. Three months later I know what Model Context Protocol is: not a smarter AI. Less friction at specific handoff points.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] MCP: 3 месяца в работе — что изменилось, что нет]]></title>
            <link>https://ivanpin.com/ru/blog/mcp-protocol-senior-engineer-workflow</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/mcp-protocol-senior-engineer-workflow</guid>
            <pubDate>Sun, 15 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Когда вышел MCP, я поставил четыре сервера за день. Потом убрал два. Потом добавил один другой. Через три месяца понял: Model Context Protocol не делает тебя умнее. Он убирает трение — в конкретных местах, за конкретные минуты.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[When headless is the wrong answer]]></title>
            <link>https://ivanpin.com/en/blog/when-headless-is-wrong-answer</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/when-headless-is-wrong-answer</guid>
            <pubDate>Thu, 15 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[I build headless sites on Next.js &#43; Bitrix. I&#39;ve migrated a catalog of 28,000 SKUs. I turned down a $40K contract because rewriting a working monolith made no sense. And when a client walks in asking for headless, my first question is always: &quot;Why headless, exactly?&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Когда headless — это плохая идея]]></title>
            <link>https://ivanpin.com/ru/blog/when-headless-is-wrong-answer</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/when-headless-is-wrong-answer</guid>
            <pubDate>Thu, 15 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Я строю headless-сайты на Next.js &#43; Bitrix уже несколько лет. Мигрировал каталог на 28 000 SKU. Отказался от $40K-контракта, потому что переписывать монолит там не имело смысла. И когда клиент приходит с запросом «хотим headless», первый вопрос всегда один: «А почему именно headless?»]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Cache warming via Cron: boring, cheap, production-proven]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-cache-warming-cron</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-cache-warming-cron</guid>
            <pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Every night at 02:00, our cache resets.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Cache-warming через Cron: дёшево, скучно, работает]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-cache-warming-cron</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-cache-warming-cron</guid>
            <pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Каждую ночь в 02:00 у нас сбрасывается кеш.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Filters that sell: what we changed and what it did to conversion]]></title>
            <link>https://ivanpin.com/en/blog/facets-that-sell-conversion</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/facets-that-sell-conversion</guid>
            <pubDate>Sat, 15 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The color filter was there. It sat at position 22 in the sidebar.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Фасеты, которые продают: что мы изменили в фильтрах]]></title>
            <link>https://ivanpin.com/ru/blog/facets-that-sell-conversion</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/facets-that-sell-conversion</guid>
            <pubDate>Sat, 15 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Фильтр по цвету был. Он стоял двадцать вторым в боковой панели.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[My server is 8 years old and I won't rewrite it. Here's why.]]></title>
            <link>https://ivanpin.com/en/blog/system-longevity-vs-rewrite-culture</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/system-longevity-vs-rewrite-culture</guid>
            <pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A client came to me with a request: &quot;We need to rewrite the backend. It&#39;s old.&quot; I asked: &quot;What specifically is broken?&quot; Pause. &quot;Well... it&#39;s old.&quot;]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Этому серверу 8 лет, и я его не трогаю. Вот почему]]></title>
            <link>https://ivanpin.com/ru/blog/system-longevity-vs-rewrite-culture</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/system-longevity-vs-rewrite-culture</guid>
            <pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Один мой клиент пришёл с запросом: «Нам нужно переписать бэкенд. Он старый». Я спросил: «Что конкретно сломано?» Пауза. «Ну... он старый».]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[The bug Claude wrote. Seven days in production.]]></title>
            <link>https://ivanpin.com/en/blog/ai-written-bug-one-week-in-prod</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/ai-written-bug-one-week-in-prod</guid>
            <pubDate>Mon, 15 Aug 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The code looked correct. Tests passed. CI was green.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Баг, который написал Claude: семь дней в проде]]></title>
            <link>https://ivanpin.com/ru/blog/ai-written-bug-one-week-in-prod</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/ai-written-bug-one-week-in-prod</guid>
            <pubDate>Mon, 15 Aug 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Код выглядел правильно. Тесты были зелёными. CI прошёл без замечаний.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Headless isn't about speed. It's about deploy independence.]]></title>
            <link>https://ivanpin.com/en/blog/headless-deploy-independence</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/headless-deploy-independence</guid>
            <pubDate>Fri, 15 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Three years ago a client messaged me: we found a critical vulnerability in the payment module. How soon can we update Bitrix?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Headless — это не про скорость. Это про то, чтобы Bitrix не ронял фронт.]]></title>
            <link>https://ivanpin.com/ru/blog/headless-deploy-independence</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/headless-deploy-independence</guid>
            <pubDate>Fri, 15 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Три года назад клиент написал: нам нужно обновить Bitrix — нашли критическую уязвимость в модуле оплаты. Когда сможем?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I publish a blog, but I build my audience on LinkedIn. Here's why.]]></title>
            <link>https://ivanpin.com/en/blog/owned-audience-not-seo</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/owned-audience-not-seo</guid>
            <pubDate>Wed, 15 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Three weeks after launching ivanpin.com, I checked the traffic sources. LinkedIn sent orders of magnitude more visits than organic search. The site was three weeks old — that&#39;s normal. Young domains don&#39;t rank. But I kept thinking: what happens when indexing stabilizes?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я веду блог, но ставлю на LinkedIn. Вот почему.]]></title>
            <link>https://ivanpin.com/ru/blog/owned-audience-not-seo</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/owned-audience-not-seo</guid>
            <pubDate>Wed, 15 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Через три недели после запуска ivanpin.com я посмотрел на источники трафика. LinkedIn дал на порядок больше визитов, чем поисковая органика. Сайту три недели, это нормально. Молодые домены так не работают. Но я всё равно задал себе следующий вопрос: а что будет, когда индексация устаканится?]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[Bitrix doesn't slow down. The way teams use it does.]]></title>
            <link>https://ivanpin.com/en/blog/bitrix-not-slow-its-you</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/bitrix-not-slow-its-you</guid>
            <pubDate>Sun, 15 May 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Every third conversation about Bitrix starts with &quot;it&#39;s slow.&quot; I stopped arguing. I ask to see the profiler instead.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Bitrix не тормозит. Тормозит то, как с ним работают]]></title>
            <link>https://ivanpin.com/ru/blog/bitrix-not-slow-its-you</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/bitrix-not-slow-its-you</guid>
            <pubDate>Sun, 15 May 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Каждый третий разговор про Bitrix начинается с «он медленный». Я перестал спорить. Вместо этого прошу показать profiler.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I let Claude write tests. I don't let it choose architecture.]]></title>
            <link>https://ivanpin.com/en/blog/claude-writes-tests-not-architecture</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/claude-writes-tests-not-architecture</guid>
            <pubDate>Tue, 15 Mar 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Claude wrote 340 lines of tests for me in eight minutes. Good tests. I&#39;d have spent two hours on them. But when I asked it to suggest a module structure for a new Bitrix project, it produced something symmetric, logical, and completely wrong for our context. That gap became my working definition: where Claude&#39;s job ends and mine begins.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я даю Claude писать тесты. Я не даю ему выбирать архитектуру]]></title>
            <link>https://ivanpin.com/ru/blog/claude-writes-tests-not-architecture</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/claude-writes-tests-not-architecture</guid>
            <pubDate>Tue, 15 Mar 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Claude написал мне 340 строк тестов за восемь минут. Хорошие тесты. Я бы писал их два часа. Но когда я попросил его предложить структуру модулей для нового проекта на Bitrix, он выдал что-то симметричное, логичное и совершенно неработающее в нашем контексте. Разрыв между этими двумя результатами стал для меня рабочим определением: где заканчивается задача для Claude и начинается задача для меня.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I turned down a $40K rewrite contract. The logs told me why.]]></title>
            <link>https://ivanpin.com/en/blog/refused-40k-rewrite-contract</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/refused-40k-rewrite-contract</guid>
            <pubDate>Tue, 15 Feb 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[The call was straightforward. A client wanted their Bitrix shop rewritten from scratch.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я отказался от $40K-контракта, чтобы не переписывать Bitrix]]></title>
            <link>https://ivanpin.com/ru/blog/refused-40k-rewrite-contract</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/refused-40k-rewrite-contract</guid>
            <pubDate>Tue, 15 Feb 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Зимой мне позвонили с предложением, от которого не отказываются.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[I stopped closing tickets. I started closing risks.]]></title>
            <link>https://ivanpin.com/en/blog/closing-risks-not-tickets</link>
            <guid isPermaLink="false">https://ivanpin.com/en/blog/closing-risks-not-tickets</guid>
            <pubDate>Sat, 15 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Three years ago I could proudly show 40 closed tickets in a sprint. The client was still unhappy.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
        <item>
            <title><![CDATA[[RU] Я перестал закрывать тикеты. Стал закрывать риски.]]></title>
            <link>https://ivanpin.com/ru/blog/closing-risks-not-tickets</link>
            <guid isPermaLink="false">https://ivanpin.com/ru/blog/closing-risks-not-tickets</guid>
            <pubDate>Sat, 15 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Три года назад я мог с гордостью показать 40 закрытых тикетов за спринт. Клиент всё равно был недоволен.]]></description>
            <author>ponamarev.i@icloud.com (Ivan Ponamarev)</author>
        </item>
    </channel>
</rss>