<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>O'Brien Taiwo | Blog</title>
    <link>https://obrien-adedapo.vercel.app/blog</link>
    <description>Thoughts on fullstack development, web3, backend architecture, and Go.</description>
    <language>en</language>
    <lastBuildDate>Wed, 24 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://obrien-adedapo.vercel.app/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>eas-preflight: Catching Expo Bundle Size Regressions Before They Ship</title>
      <link>https://obrien-adedapo.vercel.app/blog/eas-preflight-catching-bundle-size-regressions</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/eas-preflight-catching-bundle-size-regressions</guid>
      <description>I built a free GitHub Action that diffs your Expo app&apos;s JS bundle size on every PR. Here&apos;s how it works, and three real bugs that only showed up once I stopped testing against my own machine.</description>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <category>GitHub Actions</category>
      <category>Expo</category>
      <category>React Native</category>
      <category>DevTools</category>
      <category>CI/CD</category>
    </item>
    <item>
      <title>Building Proposly: AI Proposals, Dual Payments, and PDF Generation</title>
      <link>https://obrien-adedapo.vercel.app/blog/building-proposly-ai-proposals-dual-payments-pdf</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/building-proposly-ai-proposals-dual-payments-pdf</guid>
      <description>How I built a full-stack proposal management platform for freelancers — Claude for AI generation and inline editing, Stripe + Paystack for subscriptions, and a Puppeteer-based PDF pipeline with auto-generated terms.</description>
      <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
      <category>NestJS</category>
      <category>TypeScript</category>
      <category>Claude AI</category>
      <category>Stripe</category>
      <category>Paystack</category>
      <category>Next.js</category>
    </item>
    <item>
      <title>Building an AI News Summarizer in Go with Gemini</title>
      <link>https://obrien-adedapo.vercel.app/blog/building-an-ai-news-summarizer-in-go</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/building-an-ai-news-summarizer-in-go</guid>
      <description>How I built BriefMe — a Go API that scrapes any URL, pulls articles from NewsAPI, summarizes them with Gemini 2.5 Flash, and supports follow-up questions with conversational context.</description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <category>Go</category>
      <category>AI</category>
      <category>Gemini</category>
      <category>Backend</category>
    </item>
    <item>
      <title>Row-Level Multitenancy in Go: What I Learned Building Proctura</title>
      <link>https://obrien-adedapo.vercel.app/blog/row-level-multitenancy-in-go</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/row-level-multitenancy-in-go</guid>
      <description>Proctura is a Go backend for a multitenant online coding exam platform — students write real code instead of pencil on paper. Here&apos;s how I designed the tenant isolation, RBAC, and Judge0 code execution.</description>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <category>Go</category>
      <category>PostgreSQL</category>
      <category>Multitenancy</category>
      <category>Backend</category>
      <category>SaaS</category>
    </item>
    <item>
      <title>Go for TypeScript Developers: What to Expect</title>
      <link>https://obrien-adedapo.vercel.app/blog/go-for-typescript-developers</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/go-for-typescript-developers</guid>
      <description>Coming from TypeScript, Go feels both familiar and alien at the same time. Here&apos;s what surprised me, what I liked, and what I&apos;m still adjusting to.</description>
      <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
      <category>Go</category>
      <category>TypeScript</category>
      <category>Backend</category>
    </item>
    <item>
      <title>Building a Production-Ready Wallet Service with NestJS and Paystack</title>
      <link>https://obrien-adedapo.vercel.app/blog/building-a-wallet-service-with-nestjs</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/building-a-wallet-service-with-nestjs</guid>
      <description>A walkthrough of the architecture decisions, trade-offs, and implementation details behind a real-world wallet service with deposits, transfers, and audit trails.</description>
      <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
      <category>NestJS</category>
      <category>TypeScript</category>
      <category>PostgreSQL</category>
      <category>Paystack</category>
      <category>Backend</category>
    </item>
    <item>
      <title>How I Architected an NFT Marketplace on Ethereum</title>
      <link>https://obrien-adedapo.vercel.app/blog/nft-marketplace-architecture</link>
      <guid isPermaLink="true">https://obrien-adedapo.vercel.app/blog/nft-marketplace-architecture</guid>
      <description>Behind-the-scenes look at the smart contract design, The Graph integration, and frontend architecture of HexSea — a decentralized NFT marketplace.</description>
      <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
      <category>Solidity</category>
      <category>Web3</category>
      <category>Next.js</category>
      <category>The Graph</category>
      <category>IPFS</category>
    </item>
  </channel>
</rss>