<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jason Teixeira — Engineering &amp; Architecture</title>
    <description>Technical writing on systems architecture, automation, trading systems, cloud infrastructure, and software engineering.</description>
    <link>https://sageideas.dev/blog</link>
    <atom:link href="https://sageideas.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <managingEditor>sage@sageideas.org (Jason Teixeira)</managingEditor>
    <lastBuildDate>Mon, 27 Apr 2026 21:08:11 GMT</lastBuildDate>
    <ttl>60</ttl>
    
    <item>
      <title><![CDATA[Designing a 185-Table Database Schema: Lessons from Building Nexural]]></title>
      <description><![CDATA[How I designed a normalized database schema for a fintech platform with 7 interconnected systems. Schema phases, RLS policies, denormalization trade-offs, and migration strategies.]]></description>
      <link>https://sageideas.dev/blog/designing-a-185-table-database-schema-lessons-from-building-nexural</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/designing-a-185-table-database-schema-lessons-from-building-nexural</guid>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Building a Fintech Platform Solo: 185 Tables, 69 APIs, 7 Systems]]></title>
      <description><![CDATA[The full story of architecting and building the Nexural ecosystem from scratch — database design, API architecture, Stripe integration, and lessons from being the sole engineer on a production fintech platform.]]></description>
      <link>https://sageideas.dev/blog/building-a-fintech-platform-solo-185-tables-69-apis-7-systems</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/building-a-fintech-platform-solo-185-tables-69-apis-7-systems</guid>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Real-Time WebSocket Architecture: Patterns That Actually Scale]]></title>
      <description><![CDATA[How I handle WebSocket connections in trading platforms — reconnection strategies, heartbeats, backpressure, and the patterns that work when milliseconds matter.]]></description>
      <link>https://sageideas.dev/blog/real-time-websocket-architecture-patterns-that-actually-scale</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/real-time-websocket-architecture-patterns-that-actually-scale</guid>
      <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Building an AI Discord Bot for a Trading Community]]></title>
      <description><![CDATA[How I built the Nexural Discord AI Engine — 30+ commands, GPT-4o integration, auto-moderation, and market intelligence. Lessons on AI safety in financial contexts.]]></description>
      <link>https://sageideas.dev/blog/building-an-ai-discord-bot-for-a-trading-community</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/building-an-ai-discord-bot-for-a-trading-community</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Stripe Integration Lessons: What the Docs Don't Tell You]]></title>
      <description><![CDATA[Webhook idempotency, subscription state machines, dunning strategies, and the edge cases that will break your billing system if you don't handle them.]]></description>
      <link>https://sageideas.dev/blog/stripe-integration-lessons-what-the-docs-don</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/stripe-integration-lessons-what-the-docs-don</guid>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Why I Treat My Portfolio Like a Production System]]></title>
      <description><![CDATA[SLOs, incident drills, WAF rate limiting, and OIDC federation — why I operate my portfolio site with the same rigor as enterprise infrastructure, and what it signals to hiring managers.]]></description>
      <link>https://sageideas.dev/blog/why-i-treat-my-portfolio-like-a-production-system</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/why-i-treat-my-portfolio-like-a-production-system</guid>
      <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
      <category>Cloud Automation</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Monolith vs Microservices: Why I Chose a Modular Monolith for Nexural]]></title>
      <description><![CDATA[The Nexural platform has 7 systems but runs as a modular monolith, not microservices. Here's why that was the right call for a solo engineer, and when I'd split.]]></description>
      <link>https://sageideas.dev/blog/monolith-vs-microservices-why-i-chose-a-modular-monolith-for-nexural</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/monolith-vs-microservices-why-i-chose-a-modular-monolith-for-nexural</guid>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Recruiter Pack: Why I Give Away My QA Playbooks]]></title>
      <description><![CDATA[I created a downloadable ZIP with my resume, test strategies, architecture samples, and operational evidence. Here's why giving away your best work for free is the best career move you can make.]]></description>
      <link>https://sageideas.dev/blog/the-recruiter-pack-why-i-give-away-my-qa-playbooks</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-recruiter-pack-why-i-give-away-my-qa-playbooks</guid>
      <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Feature Engineering for Trading: 200+ Indicators That Actually Matter]]></title>
      <description><![CDATA[How I built AlphaStream's feature engineering pipeline — which indicators predict price movement, which are noise, and how to select features that generalize.]]></description>
      <link>https://sageideas.dev/blog/feature-engineering-for-trading-200-indicators-that-actually-matter</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/feature-engineering-for-trading-200-indicators-that-actually-matter</guid>
      <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
      <category>Trading</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Building a Backtesting Engine That Doesn't Lie to You]]></title>
      <description><![CDATA[Most backtesting engines produce results that look great but fall apart in live trading. Here's how I built QuantumTrader's backtesting engine to be honest about performance.]]></description>
      <link>https://sageideas.dev/blog/building-a-backtesting-engine-that-doesn</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/building-a-backtesting-engine-that-doesn</guid>
      <pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
      <category>Trading</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Portfolio Risk Math Explained: VaR, CVaR, and Why Covariance Estimation Matters]]></title>
      <description><![CDATA[The math behind RiskRadar — Value at Risk, Conditional VaR, Ledoit-Wolf shrinkage, and Monte Carlo simulation explained for engineers who aren't quants.]]></description>
      <link>https://sageideas.dev/blog/portfolio-risk-math-explained-var-cvar-and-why-covariance-estimation-matters</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/portfolio-risk-math-explained-var-cvar-and-why-covariance-estimation-matters</guid>
      <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
      <category>Trading</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Terraform Module Patterns: How I Structure IaC for Reuse]]></title>
      <description><![CDATA[Opinionated Terraform module patterns — consistent variable naming, output contracts, testing with Terratest, and the module structure that works across teams.]]></description>
      <link>https://sageideas.dev/blog/terraform-module-patterns-how-i-structure-iac-for-reuse</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/terraform-module-patterns-how-i-structure-iac-for-reuse</guid>
      <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
      <category>Cloud Automation</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Docker in CI/CD: The Patterns That Cut My Pipeline Time by 82%]]></title>
      <description><![CDATA[Layer caching, multi-stage builds, BuildKit, and the Docker patterns that took my CI pipeline from 45 minutes to 8 minutes.]]></description>
      <link>https://sageideas.dev/blog/docker-in-ci-cd-the-patterns-that-cut-my-pipeline-time-by-82</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/docker-in-ci-cd-the-patterns-that-cut-my-pipeline-time-by-82</guid>
      <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
      <category>DevOps</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[AWS Cost Optimization: How I Keep a Production Platform Under $50/Month]]></title>
      <description><![CDATA[The Nexural platform runs on AWS with Vercel, Supabase, and targeted AWS services. Here's how I keep costs under $50/month for a platform with 185 tables and real-time data.]]></description>
      <link>https://sageideas.dev/blog/aws-cost-optimization-how-i-keep-a-production-platform-under-50-month</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/aws-cost-optimization-how-i-keep-a-production-platform-under-50-month</guid>
      <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
      <category>Cloud Automation</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Test Strategy for Startups: What to Test When You Can't Test Everything]]></title>
      <description><![CDATA[You have 2 engineers and 100 features. You can't test everything. Here's the risk-based test strategy I use to maximize coverage with minimal investment.]]></description>
      <link>https://sageideas.dev/blog/test-strategy-for-startups-what-to-test-when-you-can</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/test-strategy-for-startups-what-to-test-when-you-can</guid>
      <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
      <category>Testing</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Eliminating Flaky Tests: A Systematic Approach]]></title>
      <description><![CDATA[How I took a test suite from 10% flaky rate to under 1% — retry logic, test isolation, deterministic data, and the patterns that make tests reliable.]]></description>
      <link>https://sageideas.dev/blog/eliminating-flaky-tests-a-systematic-approach</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/eliminating-flaky-tests-a-systematic-approach</guid>
      <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
      <category>Testing</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[OWASP Top 10 Automated Testing: A Practical Implementation]]></title>
      <description><![CDATA[How I built a security scanner that checks for SQL injection, XSS, broken auth, and 7 other OWASP categories automatically in CI/CD pipelines.]]></description>
      <link>https://sageideas.dev/blog/owasp-top-10-automated-testing-a-practical-implementation</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/owasp-top-10-automated-testing-a-practical-implementation</guid>
      <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
      <category>Security</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[What I Learned Building in Public as a Solo Engineer]]></title>
      <description><![CDATA[One year of building the Nexural ecosystem, trading futures, writing a book, and documenting everything. The wins, the failures, and what I'd tell someone starting today.]]></description>
      <link>https://sageideas.dev/blog/what-i-learned-building-in-public-as-a-solo-engineer</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/what-i-learned-building-in-public-as-a-solo-engineer</guid>
      <pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Solo Engineer's Toolkit: Tools That Replace a Team]]></title>
      <description><![CDATA[How I operate as a solo engineer building production systems — the tools, workflows, and automations that let one person do the work of a small team.]]></description>
      <link>https://sageideas.dev/blog/the-solo-engineer</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-solo-engineer</guid>
      <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Bug That Taught Me More Than Any Course Ever Did]]></title>
      <description><![CDATA[A race condition in a payment webhook handler sat undetected for 3 weeks. When it fired, it double-charged 4 customers. Here's the full postmortem and why I now test billing code differently.]]></description>
      <link>https://sageideas.dev/blog/the-bug-that-taught-me-more-than-any-course-ever-did</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-bug-that-taught-me-more-than-any-course-ever-did</guid>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Your Test Coverage Number Is Lying to You]]></title>
      <description><![CDATA[80% test coverage means nothing if you're testing the wrong 80%. Here's how I think about coverage — not as a number to chase, but as a map of where you're blind.]]></description>
      <link>https://sageideas.dev/blog/your-test-coverage-number-is-lying-to-you</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/your-test-coverage-number-is-lying-to-you</guid>
      <pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate>
      <category>Testing</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[I Read 50 Senior Engineer Job Descriptions. Here's What They Actually Want.]]></title>
      <description><![CDATA[I analyzed 50 job postings for senior/staff engineers at companies paying $180K-$350K. The patterns are clear — and most portfolios miss them completely.]]></description>
      <link>https://sageideas.dev/blog/i-read-50-senior-engineer-job-descriptions-here</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/i-read-50-senior-engineer-job-descriptions-here</guid>
      <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Why I Use Raw SQL Instead of an ORM (Most of the Time)]]></title>
      <description><![CDATA[ORMs are great until they're not. After debugging generated queries that took 30 seconds on a 185-table database, I switched to raw SQL for the hot paths. Here's when each makes sense.]]></description>
      <link>https://sageideas.dev/blog/why-i-use-raw-sql-instead-of-an-orm-most-of-the-time</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/why-i-use-raw-sql-instead-of-an-orm-most-of-the-time</guid>
      <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[What Trading Futures Taught Me About Writing Software]]></title>
      <description><![CDATA[I trade ES, NQ, and CL futures every morning before I write code. The parallels between risk management in trading and risk management in software are uncomfortably similar.]]></description>
      <link>https://sageideas.dev/blog/what-trading-futures-taught-me-about-writing-software</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/what-trading-futures-taught-me-about-writing-software</guid>
      <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
      <category>Trading</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[GitHub OIDC → AWS (No Long-Lived Keys): Cloud Automation the Right Way]]></title>
      <description><![CDATA[How to use GitHub Actions OIDC to assume an AWS IAM role and deploy/upload artifacts without storing AWS keys. Includes least-privilege IAM, trust policy patterns, and troubleshooting tips.]]></description>
      <link>https://sageideas.dev/blog/github-oidc-aws-no-long-lived-keys-cloud-automation-the-right-way</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/github-oidc-aws-no-long-lived-keys-cloud-automation-the-right-way</guid>
      <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
      <category>Cloud Automation</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[How I Debug Production Issues (A Real Framework, Not Guessing)]]></title>
      <description><![CDATA[Most developers debug by changing things until the error goes away. I debug by narrowing the blast radius systematically. Here's my actual framework.]]></description>
      <link>https://sageideas.dev/blog/how-i-debug-production-issues-a-real-framework-not-guessing</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/how-i-debug-production-issues-a-real-framework-not-guessing</guid>
      <pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Authentication Is Harder Than You Think]]></title>
      <description><![CDATA[I've implemented auth 4 times across different projects. Every time I thought it would take 2 days. Every time it took 2 weeks. Here's why, and what I'd do differently.]]></description>
      <link>https://sageideas.dev/blog/authentication-is-harder-than-you-think</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/authentication-is-harder-than-you-think</guid>
      <pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Architecture Decision Nobody Writes Down]]></title>
      <description><![CDATA[We spend weeks choosing between Kafka and RabbitMQ but never document why. ADRs take 15 minutes and save months of 'why did we do this?' conversations.]]></description>
      <link>https://sageideas.dev/blog/the-architecture-decision-nobody-writes-down</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-architecture-decision-nobody-writes-down</guid>
      <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Rate Limiting: The Feature Nobody Thinks About Until It's Too Late]]></title>
      <description><![CDATA[Your API works perfectly at 10 requests per second. At 10,000, it falls over. Here's how I implement rate limiting that protects without annoying legitimate users.]]></description>
      <link>https://sageideas.dev/blog/rate-limiting-the-feature-nobody-thinks-about-until-it</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/rate-limiting-the-feature-nobody-thinks-about-until-it</guid>
      <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[How to Review Your Own Code (When There's Nobody Else)]]></title>
      <description><![CDATA[Solo engineering means no code reviews. I've developed a self-review process that catches 80% of what a second pair of eyes would find. It starts with stepping away.]]></description>
      <link>https://sageideas.dev/blog/how-to-review-your-own-code-when-there</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/how-to-review-your-own-code-when-there</guid>
      <pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Case Against Over-Engineering (From Someone Who's Done It)]]></title>
      <description><![CDATA[I once built a plugin architecture for a system that never needed plugins. 3 weeks of abstraction layers for a feature nobody asked for. Here's how I learned to stop.]]></description>
      <link>https://sageideas.dev/blog/the-case-against-over-engineering-from-someone-who</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-case-against-over-engineering-from-someone-who</guid>
      <pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Supabase in Production: What I Wish I Knew Before 185 Tables]]></title>
      <description><![CDATA[After a year of running Supabase in production with 185 tables, here's the honest review — what's incredible, what's frustrating, and what almost made me switch.]]></description>
      <link>https://sageideas.dev/blog/supabase-in-production-what-i-wish-i-knew-before-185-tables</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/supabase-in-production-what-i-wish-i-knew-before-185-tables</guid>
      <pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Environment Variables: The Security Hole in Every Startup]]></title>
      <description><![CDATA[Your .env file has your database password, Stripe secret key, and AWS credentials. It's in a Slack message, a developer's laptop, and probably a Docker image somewhere. Let's fix that.]]></description>
      <link>https://sageideas.dev/blog/environment-variables-the-security-hole-in-every-startup</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/environment-variables-the-security-hole-in-every-startup</guid>
      <pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
      <category>Security</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[How I Structure a Next.js Project (After 6 Production Apps)]]></title>
      <description><![CDATA[Folder conventions, data fetching patterns, component organization, and the file structure that scales from MVP to 185 database tables without becoming unmanageable.]]></description>
      <link>https://sageideas.dev/blog/how-i-structure-a-next-js-project-after-6-production-apps</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/how-i-structure-a-next-js-project-after-6-production-apps</guid>
      <pubDate>Sat, 08 Nov 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Monitoring That Actually Tells You Something]]></title>
      <description><![CDATA[Dashboards with 47 panels where everything is green aren't monitoring. They're decoration. Here's what I actually monitor and why most alerting is useless noise.]]></description>
      <link>https://sageideas.dev/blog/monitoring-that-actually-tells-you-something</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/monitoring-that-actually-tells-you-something</guid>
      <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
      <category>DevOps</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Git Workflows That Don't Make You Want to Quit]]></title>
      <description><![CDATA[Trunk-based vs GitFlow vs GitHub Flow — I've used all three. Here's what actually works for solo developers and small teams, and why most Git workflows are over-complicated.]]></description>
      <link>https://sageideas.dev/blog/git-workflows-that-don</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/git-workflows-that-don</guid>
      <pubDate>Sat, 25 Oct 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Why Most API Documentation Is Useless (And How to Fix Yours)]]></title>
      <description><![CDATA[If your API docs list every endpoint but don't show me how to complete a task, they're a reference manual disguised as documentation. Here's what developers actually need.]]></description>
      <link>https://sageideas.dev/blog/why-most-api-documentation-is-useless-and-how-to-fix-yours</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/why-most-api-documentation-is-useless-and-how-to-fix-yours</guid>
      <pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Myth of the 10x Developer]]></title>
      <description><![CDATA[There are no 10x developers. There are developers with 10x clarity about what to build and what to skip. The difference is decision-making, not typing speed.]]></description>
      <link>https://sageideas.dev/blog/the-myth-of-the-10x-developer</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-myth-of-the-10x-developer</guid>
      <pubDate>Fri, 10 Oct 2025 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Building for the Next Engineer: Code That Outlasts You]]></title>
      <description><![CDATA[Every system I've built at Home Depot is still running without me. That's not luck — it's intentional design for operability. Here's what I do differently.]]></description>
      <link>https://sageideas.dev/blog/building-for-the-next-engineer-code-that-outlasts-you</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/building-for-the-next-engineer-code-that-outlasts-you</guid>
      <pubDate>Wed, 01 Oct 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Running an LLC as an Engineer: What Nobody Tells You]]></title>
      <description><![CDATA[I founded Sage Ideas LLC. Here's the stuff the 'start a consulting business' articles leave out — taxes, insurance, contracts, and why I keep a personal financial runway.]]></description>
      <link>https://sageideas.dev/blog/running-an-llc-as-an-engineer-what-nobody-tells-you</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/running-an-llc-as-an-engineer-what-nobody-tells-you</guid>
      <pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Technical Interview From Both Sides of the Table]]></title>
      <description><![CDATA[I've been the candidate sweating through system design questions and the interviewer evaluating them. The gap between what interviewers look for and what candidates prepare is enormous.]]></description>
      <link>https://sageideas.dev/blog/the-technical-interview-from-both-sides-of-the-table</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-technical-interview-from-both-sides-of-the-table</guid>
      <pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[The Automation Mindset: If You Do It Twice, Script It]]></title>
      <description><![CDATA[I have 47 shell scripts, 6 CI workflows, and a cron job that texts me when my SSL cert is expiring. Here's the mindset behind automating everything.]]></description>
      <link>https://sageideas.dev/blog/the-automation-mindset-if-you-do-it-twice-script-it</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/the-automation-mindset-if-you-do-it-twice-script-it</guid>
      <pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Writing a 120,000-Word Book While Building Software Full-Time]]></title>
      <description><![CDATA[I wrote a 24-chapter book on trading while building the Nexural platform. Here's how I managed both, what nearly broke me, and why writing made me a better engineer.]]></description>
      <link>https://sageideas.dev/blog/writing-a-120-000-word-book-while-building-software-full-time</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/writing-a-120-000-word-book-while-building-software-full-time</guid>
      <pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Error Handling That Respects Your Users]]></title>
      <description><![CDATA[Your users don't care about stack traces. They care about what went wrong and what to do next. Here's how I design error experiences that help instead of frustrate.]]></description>
      <link>https://sageideas.dev/blog/error-handling-that-respects-your-users</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/error-handling-that-respects-your-users</guid>
      <pubDate>Mon, 25 Aug 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Why I Document Every System I Build (And the Template I Use)]]></title>
      <description><![CDATA[I have a 1-page template for system documentation. It takes 30 minutes to fill out and saves 30 hours of 'how does this work?' questions. Here's the template.]]></description>
      <link>https://sageideas.dev/blog/why-i-document-every-system-i-build-and-the-template-i-use</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/why-i-document-every-system-i-build-and-the-template-i-use</guid>
      <pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Everything I Shipped This Year (And What I'd Cut in Hindsight)]]></title>
      <description><![CDATA[A year-end retrospective: 7 systems, 185 tables, 50 blog posts, a book, and a trading career. What was worth it, what wasn't, and what I'm building next.]]></description>
      <link>https://sageideas.dev/blog/everything-i-shipped-this-year-and-what-i</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/everything-i-shipped-this-year-and-what-i</guid>
      <pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate>
      <category>Career</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Building a Production-Ready API Testing Framework]]></title>
      <description><![CDATA[Learn how I built an API testing framework that reduced flaky tests from 10% to <1% using intelligent retry logic, Pydantic validation, and session pooling.]]></description>
      <link>https://sageideas.dev/blog/building-a-production-ready-api-testing-framework</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/building-a-production-ready-api-testing-framework</guid>
      <pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate>
      <category>API Testing</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Page Object Model: Beyond the Basics]]></title>
      <description><![CDATA[Most teams implement POM wrong. Here's how to build a truly maintainable Selenium framework that scales to hundreds of tests.]]></description>
      <link>https://sageideas.dev/blog/page-object-model-beyond-the-basics</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/page-object-model-beyond-the-basics</guid>
      <pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate>
      <category>Selenium</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Fixing Docker Compose Connection Errors in CI/CD]]></title>
      <description><![CDATA[Spent 4 hours debugging 'Connection refused' errors in Jenkins. Here's what I learned about Docker networking in CI pipelines.]]></description>
      <link>https://sageideas.dev/blog/fixing-docker-compose-connection-errors-in-ci-cd</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/fixing-docker-compose-connection-errors-in-ci-cd</guid>
      <pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate>
      <category>CI/CD</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Performance Testing: From Zero to Production]]></title>
      <description><![CDATA[How I built a performance testing suite that identified 3 critical bottlenecks before production and improved API response times by 40%.]]></description>
      <link>https://sageideas.dev/blog/performance-testing-from-zero-to-production</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/performance-testing-from-zero-to-production</guid>
      <pubDate>Thu, 28 Dec 2023 00:00:00 GMT</pubDate>
      <category>Performance</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
    <item>
      <title><![CDATA[Mobile Test Automation with Appium: The Complete Guide]]></title>
      <description><![CDATA[Built a cross-platform mobile testing framework that reduced regression time from 2 days to 2 hours and found 23 device-specific bugs before release.]]></description>
      <link>https://sageideas.dev/blog/mobile-test-automation-with-appium-the-complete-guide</link>
      <guid isPermaLink="true">https://sageideas.dev/blog/mobile-test-automation-with-appium-the-complete-guide</guid>
      <pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate>
      <category>Mobile Testing</category>
      <author>sage@sageideas.org (Jason Teixeira)</author>
    </item>
  </channel>
</rss>