<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shakhzodbek Sharipov — Blog</title>
    <link>https://shakha.uz/en/blog/</link>
    <description>Notes on building software — architecture, payments, and lessons from shipping real products.</description>
    <language>en</language>
    <lastBuildDate>Tue, 12 May 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://shakha.uz/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How I actually use AI to ship</title>
      <link>https://shakha.uz/en/blog/shipping-with-ai/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/shipping-with-ai/</guid>
      <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
      <description>Honest take from a senior dev: where AI actually helps (boilerplate, translations, refactors), where it falls flat (architecture, judgment, knowing what to build), and how I stay in control.</description>
      <category>AI</category>
      <category>Workflow</category>
      <category>Claude Code</category>
    </item>
    <item>
      <title>Building where the users already are: Telegram Mini Apps</title>
      <link>https://shakha.uz/en/blog/telegram-mini-apps/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/telegram-mini-apps/</guid>
      <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
      <description>Why Telegram Mini Apps made sense for BookUp and MyPolis in this region, the quirks you&apos;ll run into (HMAC auth, keyboard weirdness, no real back button), and my honest pros/cons after shipping a few of them.</description>
      <category>Telegram</category>
      <category>Mobile</category>
      <category>Product</category>
    </item>
    <item>
      <title>Building software nobody will screenshot</title>
      <link>https://shakha.uz/en/blog/erp-nobody-screenshots/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/erp-nobody-screenshots/</guid>
      <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
      <description>The unglamorous internal ERP/CRM work at InterRail — automating accounting, acts and contracts, KPI dashboards, AI document processing that killed manual Excel entry. Why boring internal tools are some of the most satisfying work I&apos;ve done.</description>
      <category>ERP</category>
      <category>Internal tools</category>
      <category>Career</category>
    </item>
    <item>
      <title>Why I keep reaching for boring tech</title>
      <link>https://shakha.uz/en/blog/boring-tech-postgres/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/boring-tech-postgres/</guid>
      <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
      <description>After shipping several real products, I keep landing on Postgres, NestJS, and plain TypeScript. Not because I haven&apos;t tried the shiny stuff — I have. Just because boring works.</description>
      <category>Postgres</category>
      <category>Architecture</category>
      <category>Opinion</category>
    </item>
    <item>
      <title>Multi-tenant SaaS: what I actually had to figure out</title>
      <link>https://shakha.uz/en/blog/designing-multi-tenant-saas/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/designing-multi-tenant-saas/</guid>
      <pubDate>Thu, 30 Oct 2025 00:00:00 GMT</pubDate>
      <description>BookUp started because I was annoyed. Barbershops and salons running bookings out of Telegram DMs and a paper notebook. I built the thing I wished they had — and here&apos;s the messy part nobody talks about: the multi-tenancy.</description>
      <category>SaaS</category>
      <category>Architecture</category>
      <category>Multi-tenancy</category>
      <category>Next.js</category>
    </item>
    <item>
      <title>Modeling money as a ledger (and why I had to rewrite billing twice)</title>
      <link>https://shakha.uz/en/blog/prepaid-wallet-billing-with-payme/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/prepaid-wallet-billing-with-payme/</guid>
      <pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate>
      <description>The first billing system I built for BookUp lasted two weeks before the support messages started. Here&apos;s what I got wrong, how I fixed it, and what I now know about integrating Payme in a multi-tenant app.</description>
      <category>Payments</category>
      <category>Billing</category>
      <category>Payme</category>
      <category>NestJS</category>
    </item>
    <item>
      <title>I built a WebSocket server from raw TCP to actually understand it</title>
      <link>https://shakha.uz/en/blog/zero-dependency-websocket-server/</link>
      <guid isPermaLink="true">https://shakha.uz/en/blog/zero-dependency-websocket-server/</guid>
      <pubDate>Tue, 05 Aug 2025 00:00:00 GMT</pubDate>
      <description>I&apos;d been using WebSockets for years without really knowing what was happening under the hood. So I built one from scratch on raw TCP sockets — RFC 6455 handshake, frame parsing, masking, the whole thing. Here&apos;s what I learned.</description>
      <category>Node.js</category>
      <category>WebSocket</category>
      <category>Networking</category>
      <category>From scratch</category>
    </item>
  </channel>
</rss>