<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ruben Rodrigues — Blog</title>
    <link>https://rrodrigues.dev/blog/</link>
    <description>Writing by Ruben Rodrigues — notes on NestJS, Angular, PostgreSQL and building full-stack TypeScript products.</description>
    <language>en</language>
    <atom:link href="https://rrodrigues.dev/feed.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Tue, 14 Jul 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Multi-tenancy in NestJS without losing your mind</title>
      <link>https://rrodrigues.dev/blog/multi-tenancy-nestjs/</link>
      <guid isPermaLink="true">https://rrodrigues.dev/blog/multi-tenancy-nestjs/</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <description>Three ways to isolate tenant data in a NestJS API, why I stopped passing tenantId around by hand, and the request-scoped approach I settled on.</description>
      <category>NestJS</category>
      <category>PostgreSQL</category>
      <category>TypeScript</category>
    </item>
    <item>
      <title>RBAC that survives contact with product</title>
      <link>https://rrodrigues.dev/blog/rbac-that-scales/</link>
      <guid isPermaLink="true">https://rrodrigues.dev/blog/rbac-that-scales/</guid>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <description>Roles are easy to add and almost impossible to remove. A look at permission-first access control, and why the role list should stay boring.</description>
      <category>NestJS</category>
      <category>TypeScript</category>
      <category>Microservices</category>
    </item>
    <item>
      <title>Key-based queues beat cron jobs</title>
      <link>https://rrodrigues.dev/blog/queues-over-cron/</link>
      <guid isPermaLink="true">https://rrodrigues.dev/blog/queues-over-cron/</guid>
      <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
      <description>How replacing a pile of scheduled jobs with per-key queues fixed our ordering bugs, flattened a nasty traffic spike, and made failures debuggable.</description>
      <category>Node.js</category>
      <category>Redis</category>
      <category>Microservices</category>
    </item>
  </channel>
</rss>
