<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Al Beltran — Engineering Journal</title>
    <link>https://albeltran.com/blog/</link>
    <description>Engineering notes and interview prep by Al Andrew Paul Beltran. Published articles only.</description>
    <language>en-ph</language>
  <item>
    <title>The React Compiler Is a Purity Contract, Not a Speed Hack</title>
    <link>https://albeltran.com/blog/react-compiler-is-a-purity-contract/</link>
    <guid>https://albeltran.com/blog/react-compiler-is-a-purity-contract/</guid>
    <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
    <description>React Compiler only pays off if render stays pure. Memo soup is not the same contract. Here is what I change in components before I trust automatic memoization.</description>
  </item>
  <item>
    <title>Next.js `&apos;use cache&apos;` Is a Commit, Not a Faster Fetch</title>
    <link>https://albeltran.com/blog/nextjs-use-cache-is-a-commit/</link>
    <guid>https://albeltran.com/blog/nextjs-use-cache-is-a-commit/</guid>
    <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
    <description>Cache Components in Next.js look like a performance flag. They are a freshness contract: what is cached, who invalidates it, and what the user is allowed to see stale.</description>
  </item>
  <item>
    <title>TypeScript Interview Questions, With the Reasoning</title>
    <link>https://albeltran.com/interviews/typescript-interview-questions/</link>
    <guid>https://albeltran.com/interviews/typescript-interview-questions/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Types at boundaries, narrowing, generics, and the questions that separate autocomplete from design.</description>
  </item>
  <item>
    <title>TypeScript as an API Contract, Not a Costume</title>
    <link>https://albeltran.com/blog/typescript-api-contracts/</link>
    <guid>https://albeltran.com/blog/typescript-api-contracts/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Share types across producer and consumer, validate at the edge, and stop trusting JSON because it compiled once.</description>
  </item>
  <item>
    <title>System Design Interview Questions, With the Reasoning</title>
    <link>https://albeltran.com/interviews/system-design-interview-questions/</link>
    <guid>https://albeltran.com/interviews/system-design-interview-questions/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>A small set of design prompts with the tradeoffs interviewers listen for — not a 50-box diagram.</description>
  </item>
  <item>
    <title>SQL Interview Questions, With the Reasoning</title>
    <link>https://albeltran.com/interviews/sql-interview-questions/</link>
    <guid>https://albeltran.com/interviews/sql-interview-questions/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Joins, indexes, NULL, and transactions — answered the way a production engineer talks about plans.</description>
  </item>
  <item>
    <title>React Interview Questions, With the Reasoning</title>
    <link>https://albeltran.com/interviews/react-interview-questions/</link>
    <guid>https://albeltran.com/interviews/react-interview-questions/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>A compact React interview set: hooks, rendering, state, and architecture — with what interviewers are actually scoring.</description>
  </item>
  <item>
    <title>A Mental Model for React Hooks That Survives Production</title>
    <link>https://albeltran.com/blog/react-hooks-mental-model/</link>
    <guid>https://albeltran.com/blog/react-hooks-mental-model/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Treat hooks as subscriptions to render, not lifecycle methods with new names. The model that prevents stale state and mystery effects.</description>
  </item>
  <item>
    <title>Node.js Interview Questions, With the Reasoning</title>
    <link>https://albeltran.com/interviews/nodejs-interview-questions/</link>
    <guid>https://albeltran.com/interviews/nodejs-interview-questions/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>The event loop, errors, streams, and production habits — not a list of module names.</description>
  </item>
  <item>
    <title>AWS Lambda Failure Modes You Should Budget For</title>
    <link>https://albeltran.com/blog/lambda-failure-modes/</link>
    <guid>https://albeltran.com/blog/lambda-failure-modes/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Timeouts, retries, partial batch failure, and the handler that is not idempotent.</description>
  </item>
  <item>
    <title>JavaScript Interview Questions, With the Reasoning</title>
    <link>https://albeltran.com/interviews/javascript-interview-questions/</link>
    <guid>https://albeltran.com/interviews/javascript-interview-questions/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Closures, the event loop, equality, and this — explained as runtime behavior, not trivia.</description>
  </item>
  <item>
    <title>The AEM Author–Developer Contract</title>
    <link>https://albeltran.com/blog/aem-author-developer-contract/</link>
    <guid>https://albeltran.com/blog/aem-author-developer-contract/</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>A component is successful when an author can use it without a Slack thread. Dialogs, names, and defaults are the product.</description>
  </item>
  <item>
    <title>When the GPU Vendor Owns the Model Hub</title>
    <link>https://albeltran.com/blog/chip-vendor-model-hub/</link>
    <guid>https://albeltran.com/blog/chip-vendor-model-hub/</guid>
    <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
    <description>If the company that sells the chips also owns the default place engineers pull open models, pinning, licensing, and exit plans stop being theoretical.</description>
  </item>
  <item>
    <title>Your Agent Is Missing the Monitoring Layer the Labs Shipped</title>
    <link>https://albeltran.com/blog/agents-need-monitoring-layers/</link>
    <guid>https://albeltran.com/blog/agents-need-monitoring-layers/</guid>
    <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
    <description>Frontier models are being wrapped in eval gates and misalignment monitors. Most product agents still log prompts and hope. That gap is now the production problem.</description>
  </item>
  <item>
    <title>SQLite Is Back, and the Edge Is Why</title>
    <link>https://albeltran.com/blog/sqlite-at-the-edge/</link>
    <guid>https://albeltran.com/blog/sqlite-at-the-edge/</guid>
    <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
    <description>D1, Turso, LiteFS, and a decade of Postgres-by-default have teams rediscovering a file database. The win is locality. The bill is replication and migration discipline.</description>
  </item>
  <item>
    <title>Why Most RAG Demos Die in Production</title>
    <link>https://albeltran.com/blog/rag-demos-die-in-production/</link>
    <guid>https://albeltran.com/blog/rag-demos-die-in-production/</guid>
    <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
    <description>Retrieval-augmented generation looks finished in a notebook. In production it is a search problem, a freshness problem, and an evaluation problem wearing a chat UI.</description>
  </item>
  <item>
    <title>Idempotency Keys Are the Real API Contract</title>
    <link>https://albeltran.com/blog/idempotency-keys-are-the-contract/</link>
    <guid>https://albeltran.com/blog/idempotency-keys-are-the-contract/</guid>
    <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
    <description>Retries are not an edge case. If a client can double-submit a payment, a reward, or a provision call, the header that names the attempt is the interface.</description>
  </item>
  <item>
    <title>Post-Quantum TLS Is an Operations Problem</title>
    <link>https://albeltran.com/blog/post-quantum-tls-is-an-ops-problem/</link>
    <guid>https://albeltran.com/blog/post-quantum-tls-is-an-ops-problem/</guid>
    <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
    <description>Hybrid key exchange is landing in browsers and CDNs. The engineering work is inventory, dual-stack certificates, and not breaking the middleboxes you forgot you had.</description>
  </item>
  <item>
    <title>Platform Engineering Is Not a Portal</title>
    <link>https://albeltran.com/blog/platform-engineering-is-not-a-portal/</link>
    <guid>https://albeltran.com/blog/platform-engineering-is-not-a-portal/</guid>
    <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
    <description>A golden path is paved workflows, paved defaults, and a team that owns the pavement. A catalog of links with a search bar is a bookmark manager.</description>
  </item>
  <item>
    <title>Serverless Still Has a Latency Budget</title>
    <link>https://albeltran.com/blog/serverless-still-has-a-latency-budget/</link>
    <guid>https://albeltran.com/blog/serverless-still-has-a-latency-budget/</guid>
    <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
    <description>Managed functions removed capacity planning. They did not remove tail latency, cold starts, or the cost of chatty downstreams. You still have a budget. It is just itemized differently.</description>
  </item>
  <item>
    <title>Observability Without SLOs Is Expensive Logging</title>
    <link>https://albeltran.com/blog/observability-without-slos/</link>
    <guid>https://albeltran.com/blog/observability-without-slos/</guid>
    <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
    <description>Dashboards that cannot tell you whether to wake someone up are decoration. Start from the user promise, then buy traces.</description>
  </item>
  <item>
    <title>TypeScript Won the Integration Layer</title>
    <link>https://albeltran.com/blog/typescript-won-the-integration-layer/</link>
    <guid>https://albeltran.com/blog/typescript-won-the-integration-layer/</guid>
    <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
    <description>The interesting TypeScript story is not frontend fashion. It is the language teams use to glue APIs, workers, and infrastructure code that used to be a pile of untyped scripts.</description>
  </item>
  <item>
    <title>CSS Finally Caught Up to the Layout We Hacked</title>
    <link>https://albeltran.com/blog/css-caught-up-to-layout/</link>
    <guid>https://albeltran.com/blog/css-caught-up-to-layout/</guid>
    <pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
    <description>Container queries, :has(), and nested CSS removed a generation of JavaScript measuring hacks. The remaining work is restraint: not every layout needs a new primitive.</description>
  </item>
  <item>
    <title>Feature Flags Beat Long-Lived Branches</title>
    <link>https://albeltran.com/blog/feature-flags-beat-long-lived-branches/</link>
    <guid>https://albeltran.com/blog/feature-flags-beat-long-lived-branches/</guid>
    <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
    <description>A flag in production is a smaller, reversible risk than a branch that only exists on one laptop. Trunk-based delivery is an operations choice, not a Git fashion.</description>
  </item>
  <item>
    <title>Supply Chain Security Is a Runtime Problem Now</title>
    <link>https://albeltran.com/blog/supply-chain-security-is-runtime/</link>
    <guid>https://albeltran.com/blog/supply-chain-security-is-runtime/</guid>
    <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
    <description>xz and a decade of npm incidents taught the same lesson: you run other people&apos;s code. Pinning, provenance, and a small dependency graph beat a PDF named policy.</description>
  </item>
  <item>
    <title>The SPA Hangover and What Server Components Are For</title>
    <link>https://albeltran.com/blog/spa-hangover-and-server-components/</link>
    <guid>https://albeltran.com/blog/spa-hangover-and-server-components/</guid>
    <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
    <description>Client-rendered apps solved a 2015 shipping problem. They also shipped empty shells and waterfalls. Server Components are a boundary tool, not a rewrite religion.</description>
  </item>
  <item>
    <title>Local-First Sync Is a Product Problem</title>
    <link>https://albeltran.com/blog/local-first-sync-is-a-product-problem/</link>
    <guid>https://albeltran.com/blog/local-first-sync-is-a-product-problem/</guid>
    <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
    <description>CRDTs and sync engines are impressive. Users still need a story for conflict, offline writes, and what happens when two cashiers sell the last seat.</description>
  </item>
  <item>
    <title>SQL Is Still the Skill That Compounds</title>
    <link>https://albeltran.com/blog/sql-still-compounds/</link>
    <guid>https://albeltran.com/blog/sql-still-compounds/</guid>
    <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
    <description>Models can draft a query. They cannot own the index, the cardinality, or the 2 a.m. plan that scans the wrong partition. Relational literacy is still leverage.</description>
  </item>
  <item>
    <title>Rate Limits Are Product Design</title>
    <link>https://albeltran.com/blog/rate-limits-are-product-design/</link>
    <guid>https://albeltran.com/blog/rate-limits-are-product-design/</guid>
    <pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate>
    <description>429s are not just a WAF rule. They encode who gets capacity, what a client should do next, and whether your API is a partner or a trap.</description>
  </item>
  <item>
    <title>Wasm on the Server Is a Boundary Tool</title>
    <link>https://albeltran.com/blog/wasm-on-the-server/</link>
    <guid>https://albeltran.com/blog/wasm-on-the-server/</guid>
    <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
    <description>WebAssembly in the data center is useful when you need isolation, multi-language plugins, or a portable sandbox. It is not a replacement for a well-run service.</description>
  </item>
  <item>
    <title>Designing Event-Driven Loyalty Rewards for Card Activation</title>
    <link>https://albeltran.com/blog/event-driven-loyalty/</link>
    <guid>https://albeltran.com/blog/event-driven-loyalty/</guid>
    <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
    <description>How an activation-to-reward pipeline using SQS, SNS, Lambda, and Talon.One keeps fintech loyalty flows decoupled and operable.</description>
  </item>
  <item>
    <title>Event Sourcing Without the Religion</title>
    <link>https://albeltran.com/blog/event-sourcing-without-religion/</link>
    <guid>https://albeltran.com/blog/event-sourcing-without-religion/</guid>
    <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
    <description>An event log is a tool for audit and replay. It is not a requirement for every domain object. Most systems need durable facts and a projection, not a conference architecture.</description>
  </item>
  <item>
    <title>WebGPU Makes the Browser a Compute Node</title>
    <link>https://albeltran.com/blog/webgpu-browser-as-compute/</link>
    <guid>https://albeltran.com/blog/webgpu-browser-as-compute/</guid>
    <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
    <description>When the tab can run serious GPU work, the architecture question is not &apos;can we?&apos; It is &apos;should this run next to the user&apos;s passwords, and what is the fallback?&apos;</description>
  </item>
  <item>
    <title>AI-Augmented Engineering Without Outsourcing Judgment</title>
    <link>https://albeltran.com/blog/ai-augmented-engineering/</link>
    <guid>https://albeltran.com/blog/ai-augmented-engineering/</guid>
    <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
    <description>How Claude and Cursor can compress design, coding, and review cycles while keeping architecture and production decisions human-owned.</description>
  </item>
  <item>
    <title>Reusable AEM Components That Actually Reduce Authoring Work</title>
    <link>https://albeltran.com/blog/aem-reusable-components/</link>
    <guid>https://albeltran.com/blog/aem-reusable-components/</guid>
    <pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate>
    <description>Lessons from enterprise Adobe Experience Manager delivery on making component libraries useful for authors, not just developers.</description>
  </item>
  <item>
    <title>Cutting System Load Time from 15 Seconds to 2 Seconds</title>
    <link>https://albeltran.com/blog/performance-15s-to-2s/</link>
    <guid>https://albeltran.com/blog/performance-15s-to-2s/</guid>
    <pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate>
    <description>A practical account of performance work on a high-availability insurance technology platform: find the critical path, measure, then simplify.</description>
  </item>
  <item>
    <title>Lessons from Serverless ETL on AWS</title>
    <link>https://albeltran.com/blog/serverless-etl-lessons/</link>
    <guid>https://albeltran.com/blog/serverless-etl-lessons/</guid>
    <pubDate>Fri, 09 May 2025 00:00:00 GMT</pubDate>
    <description>What matters when Lambda, S3, and Step Functions process high-volume data under production SLAs.</description>
  </item>
  </channel>
</rss>
