<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Eduardo Lucas – Blog</title>
    <link>https://www.eduardo-lucas-dev.com/blog</link>
    <description>Thoughts on Python engineering, data architecture, enterprise systems, and 25+ years of lessons learned the hard way.</description>
    <language>en-us</language>
    <atom:link href="https://www.eduardo-lucas-dev.com/rss" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Tue, 25 Aug 2026 19:02:56 GMT</lastBuildDate>
    
    <item>
      <title><![CDATA[Is Claude Code Worth It If You Already Use ChatGPT and GitHub Copilot?]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/is-claude-code-worth-it</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/is-claude-code-worth-it</guid>
      <description><![CDATA[A third AI subscription is a hard sell. Here's an honest cost-benefit breakdown of where Claude Code earns its place — and where it's redundant.]]></description>
      <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Claude Code</category>
      <category>Developer Tools</category>
      <category>GitHub Copilot</category>
    </item>
    <item>
      <title><![CDATA[AI Can Write Code — But It Can't Replace Thinking: Why Learning Programming Still Matters]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/ai-cant-replace-thinking</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/ai-cant-replace-thinking</guid>
      <description><![CDATA[GitHub Copilot generates the snippet. ChatGPT explains the error. But neither can decide if the architecture is wrong. Foundational programming knowledge is more valuable now, not less.]]></description>
      <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Software Engineering</category>
      <category>Programming</category>
      <category>Tech Careers</category>
    </item>
    <item>
      <title><![CDATA[Gratitude, Growth, and the Weight of a Long Goodbye]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/gratitude-growth-long-goodbye</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/gratitude-growth-long-goodbye</guid>
      <description><![CDATA[After 26 years with one company, a LinkedIn farewell post becomes a meditation on how long careers shape identity — and why every role, challenge, and colleague leaves a mark.]]></description>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <category>Leadership</category>
      <category>Reflection</category>
      <category>Professional Growth</category>
    </item>
    <item>
      <title><![CDATA[Talking to the Machine: How to Survive — and Win — AI-Powered Job Interviews]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/ai-powered-job-interviews</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/ai-powered-job-interviews</guid>
      <description><![CDATA[AI screening is now standard in senior tech hiring. Before your CV reaches a human, an algorithm has already scored it. Here's how to engineer your way through it.]]></description>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Career</category>
      <category>Job Interviews</category>
    </item>
    <item>
      <title><![CDATA[From Procedures to Intelligence: A Developer's Shift Across Paradigms]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/from-procedures-to-intelligence</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/from-procedures-to-intelligence</guid>
      <description><![CDATA[From writing every line by hand to orchestrating systems through intent — how programming paradigms evolved and what it means to be a developer in the AI era.]]></description>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Software Architecture</category>
      <category>Career</category>
      <category>Programming Paradigms</category>
    </item>
    <item>
      <title><![CDATA[Stop Burning Tokens: A Developer's Guide to Smarter AI Usage]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/stop-burning-tokens</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/stop-burning-tokens</guid>
      <description><![CDATA[Upgrading your Claude plan won't fix inefficient habits. Learn practical strategies — from selective file referencing to model selection — to get more out of every session.]]></description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Claude Code</category>
      <category>Developer Tools</category>
      <category>Productivity</category>
    </item>
    <item>
      <title><![CDATA[Async Tasks in Django with Celery + Redis]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/async-tasks-django-celery-redis</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/async-tasks-django-celery-redis</guid>
      <description><![CDATA[Stop blocking your HTTP response cycle. A hands-on walkthrough of task queues — from installation to a real-world order processing example with retries, parallel dispatch, and periodic tasks.]]></description>
      <pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate>
      <category>Django</category>
      <category>Celery</category>
      <category>Redis</category>
      <category>Backend</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[Stop Using Django REST Framework for Internal APIs]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/stop-using-drf-for-internal-apis</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/stop-using-drf-for-internal-apis</guid>
      <description><![CDATA[DRF is battle-tested and irreplaceable for public APIs. But for internal endpoints consumed by your own frontend, it's ceremony masquerading as structure. There's a better tool.]]></description>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
      <category>Django</category>
      <category>DRF</category>
      <category>Django Ninja</category>
      <category>Python</category>
      <category>Backend</category>
    </item>
    <item>
      <title><![CDATA[Should You Be Able to Code Without AI? The Question Splitting the Dev Community]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/should-you-code-without-ai</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/should-you-code-without-ai</guid>
      <description><![CDATA[There's a heated debate in hiring rooms about whether developers should code without AI. After 25+ years in enterprise software, here's my honest take on fundamentals, fluency, and what interviews should actually test.]]></description>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Engineering</category>
      <category>Pair Programming</category>
      <category>Hiring</category>
    </item>
    <item>
      <title><![CDATA[AI Hallucination: What It Is, How to Mitigate It, and How to Detect It]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/ai-hallucination-mitigation-detection</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/ai-hallucination-mitigation-detection</guid>
      <description><![CDATA[Hallucination isn't a bug you patch — it's a structural property of how LLMs generate text. Here's what actually causes it, and the engineering patterns that keep it out of production.]]></description>
      <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>LLM</category>
      <category>Engineering</category>
      <category>Best Practices</category>
    </item>
    <item>
      <title><![CDATA[The Bottleneck Didn't Disappear. It Moved.]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/ai-code-review-bottleneck</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/ai-code-review-bottleneck</guid>
      <description><![CDATA[AI agents can generate more code than any team could write by hand, yet throughput hasn't scaled to match. Here's why review capacity — not code generation — is now the real constraint on shipping value.]]></description>
      <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Code Review</category>
      <category>Engineering</category>
      <category>Best Practices</category>
    </item>
    <item>
      <title><![CDATA[Django + DRF and Your Frontend: How the Pieces Actually Connect]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/django-drf-frontend-architecture</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/django-drf-frontend-architecture</guid>
      <description><![CDATA[Moving from server-rendered Django templates to a decoupled React, Vue, or Angular frontend feels like a mental shift — until you see the pattern. Here's the actual contract between DRF and any frontend framework, and the two things that trip everyone up.]]></description>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <category>Django</category>
      <category>DRF</category>
      <category>Frontend</category>
      <category>React</category>
      <category>API</category>
    </item>
    <item>
      <title><![CDATA[Understanding IP Addresses]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/ip-address</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/ip-address</guid>
      <description><![CDATA[An IP address is the addressing system that makes the internet possible. Here's how IPv4 and IPv6 differ, what public, private, static, and dynamic actually mean, and how to find your own.]]></description>
      <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Networking</category>
      <category>Fundamentals</category>
    </item>
    <item>
      <title><![CDATA[Django + GraphQL: What Actually Happens When You Wire Them Together]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/django-graphql-strawberry</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/django-graphql-strawberry</guid>
      <description><![CDATA[Bolting GraphQL onto a Django API today means choosing strawberry-django over the older graphene-django — and most tutorials are already out of date. A working example, where GraphQL actually earns its complexity, and four things that broke when I ran the code instead of just writing it.]]></description>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <category>Django</category>
      <category>GraphQL</category>
      <category>Python</category>
      <category>API</category>
      <category>Backend</category>
    </item>
    <item>
      <title><![CDATA[The OSI Model, Explained for Developers]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/osi-model-explained</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/osi-model-explained</guid>
      <description><![CDATA[The OSI Model isn't academic trivia — it's a systematic way to isolate where a network failure actually lives, one layer at a time.]]></description>
      <pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Networking</category>
    </item>
    <item>
      <title><![CDATA[10 Backend Concepts You Better Know Before Your Next Interview]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/backend-interview-essentials</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/backend-interview-essentials</guid>
      <description><![CDATA[It's rarely the code that trips people up in backend interviews — it's the systems thinking. Ten concepts that show up again and again, from HTTP semantics to idempotency, and why interviewers care about the 'why' behind each one.]]></description>
      <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
      <category>Backend</category>
      <category>Career</category>
      <category>Interview Prep</category>
    </item>
    <item>
      <title><![CDATA[The TCP/IP Model: A Developer's Refresher]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/tcp-ip</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/tcp-ip</guid>
      <description><![CDATA[TCP/IP is the four-layer stack the internet actually runs on: each layer wraps the one above it, strips its own header on the way back, and gives you a shape for reasoning about any network failure.]]></description>
      <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Networking</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 1: Arrays, Strings, Sets, and Big O]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-arrays-strings-sets-big-o</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-arrays-strings-sets-big-o</guid>
      <description><![CDATA[Before sliding window or backtracking, you need to be brutally solid on the fundamentals — because almost every 'clever' interview problem is really just arrays, strings, or sets used well. First in a series on the core patterns behind LeetCode-style interviews.]]></description>
      <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 2: Hash Maps]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-hash-maps</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-hash-maps</guid>
      <description><![CDATA[If there's one data structure that unlocks the most interview problems, it's the hash map. Second in a series on the core patterns behind LeetCode-style interviews, covering Two Sum and the one-pass mindset.]]></description>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[How DNS Actually Works]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dns</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dns</guid>
      <description><![CDATA[DNS isn't a phonebook lookup — it's a distributed, heavily cached, eventually-consistent system, and most 'DNS is broken' bugs trace back to a stale cache or a TTL nobody planned for.]]></description>
      <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Networking</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 3: Two Pointers]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-two-pointers</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-two-pointers</guid>
      <description><![CDATA[Two pointers is one of the few techniques that improves both time and space at once. Third in a series on the core patterns behind LeetCode-style interviews, covering the inward-moving and fast/slow variants.]]></description>
      <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 4: Sliding Window]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-sliding-window</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-sliding-window</guid>
      <description><![CDATA[Sliding window extends two pointers from tracking two positions to managing an entire contiguous range. Fourth in a series on the core patterns behind LeetCode-style interviews, covering the fixed-size and dynamic-size variants.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 5: Binary Search]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-binary-search</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-binary-search</guid>
      <description><![CDATA[Binary search isn't just 'search a sorted array' — it generalizes to any monotonic condition. Fifth in a series on the core patterns behind LeetCode-style interviews, covering the standard algorithm and the boundary-search template it unlocks.]]></description>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[What Is a CDN?]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/cdn</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/cdn</guid>
      <description><![CDATA[A CDN is just smart geography: caching content physically closer to users so requests don't have to cross the planet and back for every image and script.]]></description>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Performance</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 6: BFS and DFS]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-bfs-dfs</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-bfs-dfs</guid>
      <description><![CDATA[Once you move from linear structures to branching ones, two traversal strategies cover most problems. Sixth in a series on the core patterns behind LeetCode-style interviews, covering breadth-first and depth-first search on trees, graphs, and grids.]]></description>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[DSA Interview Patterns, Part 7: Backtracking and Heaps]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dsa-backtracking-heaps</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dsa-backtracking-heaps</guid>
      <description><![CDATA[The series closes with two more patterns: backtracking, for exhaustively exploring and pruning solution spaces, and heaps, for efficiently tracking the smallest or largest elements in a changing collection. Seventh and final part in a series on the core patterns behind LeetCode-style interviews.]]></description>
      <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
      <category>DSA</category>
      <category>Algorithms</category>
      <category>Interview Prep</category>
      <category>Python</category>
    </item>
    <item>
      <title><![CDATA[Behavioral or Technical? At the Senior Level, It's Not Even Close]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/behavioral-vs-technical-interviews</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/behavioral-vs-technical-interviews</guid>
      <description><![CDATA[At senior and staff level, technical skill is the gate, not the differentiator — the behavioral round decides the offer. Why vague STAR stories lose offers, and how to rebuild yours around real pushback and quantified results.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <category>Interview Prep</category>
      <category>Leadership</category>
    </item>
    <item>
      <title><![CDATA[Availability: The Metric Everyone Quotes and Almost Nobody Calculates Right]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/availability</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/availability</guid>
      <description><![CDATA['Five nines' gets quoted constantly and understood rarely. Here's what availability actually measures, why redundancy is the only real lever to improve it, and why the number that matters is the whole request path's, not any one service's.]]></description>
      <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Reliability</category>
    </item>
    <item>
      <title><![CDATA[Behavioral Interviews for Software Engineers: An Introduction]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/behavioral-interviews-introduction</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/behavioral-interviews-introduction</guid>
      <description><![CDATA[If the DSA series covered the technical gauntlet, this one covers the second: the behavioral interview. What it actually tests, the STAR framework nearly every strong answer is built on, and what's coming in this new series.]]></description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
      <category>Career</category>
      <category>Interview Prep</category>
    </item>
    <item>
      <title><![CDATA[Scalability: Why 'Just Add More Servers' Is Both Right and Incomplete]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/scalability</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/scalability</guid>
      <description><![CDATA[Scalability isn't a single lever you pull — it's a sequence of tradeoffs, and most of the real difficulty lives in the database, not the application tier.]]></description>
      <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Scalability</category>
    </item>
    <item>
      <title><![CDATA[Caching: The Highest-Leverage Trick in System Design]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/caching</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/caching</guid>
      <description><![CDATA[Storing data is easy. Knowing when to throw it away is not — a look at where caching layers live, the dominant invalidation patterns, and why cache invalidation earned its reputation.]]></description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Performance</category>
    </item>
    <item>
      <title><![CDATA[Proxies: The Server in the Middle]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/proxy</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/proxy</guid>
      <description><![CDATA[Forward proxy, reverse proxy, transparent proxy — same mechanism pointed in different directions. The distinction that actually matters is simple: ask who the proxy is hiding.]]></description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Networking</category>
    </item>
    <item>
      <title><![CDATA[Load Balancers: The Traffic Cop of Every System That Doesn't Fall Over]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/load-balancer</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/load-balancer</guid>
      <description><![CDATA[A load balancer is what turns a pile of individual servers into something that behaves like one reliable system — how it decides where traffic goes, and why health checks matter as much as the routing algorithm.]]></description>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Novice</category>
      <category>Scalability</category>
    </item>
    <item>
      <title><![CDATA[CAP Theorem: Why You Can't Have It All (And That's Okay)]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/cap-theorem</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/cap-theorem</guid>
      <description><![CDATA[Partition tolerance isn't really optional — networks fail eventually. The real decision CAP forces is what your system does when that happens, and it's a business trade-off wearing a technical acronym.]]></description>
      <pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Distributed Systems</category>
    </item>
    <item>
      <title><![CDATA[PACELC: The Trade-off CAP Theorem Never Told You About]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/pacelc-theorem</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/pacelc-theorem</guid>
      <description><![CDATA[CAP only describes what happens during a network partition — a rare event. PACELC covers the other 99.9% of the time, when your cluster is healthy and you're still trading latency for consistency on every request.]]></description>
      <pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Distributed Systems</category>
    </item>
    <item>
      <title><![CDATA[DBMS Fundamentals: The Layer Everyone Uses and No One Reads the Manual For]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/dbms-fundamentals</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/dbms-fundamentals</guid>
      <description><![CDATA[A database management system is four specific jobs — storage, query processing, transactions, and integrity — bundled behind a declarative interface. Knowing which job a given feature is actually doing is what separates configuring a database from understanding one.]]></description>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Databases</category>
    </item>
    <item>
      <title><![CDATA[SQL vs NoSQL: Choosing the Right Database for Your Project]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/sql-vs-nosql</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/sql-vs-nosql</guid>
      <description><![CDATA[There's no universal 'best' database, only the best fit for your data shape, access patterns, and growth plan. Here's a practical framework for making that call instead of chasing what's trendy.]]></description>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Databases</category>
    </item>
    <item>
      <title><![CDATA[Database Replication: The Backup That's Also Your Bottleneck]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/database-replication</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/database-replication</guid>
      <description><![CDATA[Replication buys you availability and read scale, but never for free — you're always trading either latency or a data-loss window, and managing some amount of lag. Knowing which failure you're least willing to tolerate is the whole design decision.]]></description>
      <pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Databases</category>
    </item>
    <item>
      <title><![CDATA[Database Indexing: The Difference Between a 2ms Query and a 20-Second One]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/database-indexing</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/database-indexing</guid>
      <description><![CDATA[A single CREATE INDEX statement can turn a full table scan into a lookup that touches a handful of rows — but every index also slows down writes and costs storage. Here's how indexes actually work under the hood, and when to skip them.]]></description>
      <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Databases</category>
      <category>Performance</category>
    </item>
    <item>
      <title><![CDATA[Database Normalization: The Complete Guide for Developers]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/database-normalization</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/database-normalization</guid>
      <description><![CDATA[Normalization isn't academic trivia — it's the difference between a schema that quietly corrupts itself over time and one that stays consistent no matter how much data you throw at it. Here's what 1NF through BCNF actually solve, and when it's fine to break the rules.]]></description>
      <pubDate>Sun, 08 Nov 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Databases</category>
    </item>
    <item>
      <title><![CDATA[Database Sharding: A Practical Guide to Scaling Beyond a Single Machine]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/database-sharding</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/database-sharding</guid>
      <description><![CDATA[Sharding solves a real problem — writes and storage that no single machine can handle — but it trades that scale for real complexity in queries, transactions, and operations. Here's how to choose a shard key, pick a strategy, and know whether you actually need it.]]></description>
      <pubDate>Sun, 15 Nov 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Practitioner</category>
      <category>Databases</category>
      <category>Scalability</category>
    </item>
    <item>
      <title><![CDATA[N-Tier Architecture: Why Your App Shouldn't Be One Giant Blob]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/n-tier-architecture</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/n-tier-architecture</guid>
      <description><![CDATA[N-tier architecture separates presentation, logic, and data into independent layers — not for performance, but so a change in one place doesn't ripple through the whole system.]]></description>
      <pubDate>Sun, 22 Nov 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Architecture</category>
    </item>
    <item>
      <title><![CDATA[Monolith vs. Microservices: Choosing the Right Architecture]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/monolith-vs-microservices</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/monolith-vs-microservices</guid>
      <description><![CDATA[The monolith-versus-microservices debate isn't about which is better — it's about which tradeoffs your team and product stage can actually afford.]]></description>
      <pubDate>Sun, 29 Nov 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Architecture</category>
    </item>
    <item>
      <title><![CDATA[Message Brokers: The Middleman Your Services Actually Need]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/message-broker-explained</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/message-broker-explained</guid>
      <description><![CDATA[A message broker decouples producers from consumers in time, load, and availability — understanding queues versus topics and delivery guarantees is what separates a resilient system from a fragile one.]]></description>
      <pubDate>Sun, 06 Dec 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Messaging</category>
    </item>
    <item>
      <title><![CDATA[APIs Explained: How Software Talks to Software]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/api-fundamentals</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/api-fundamentals</guid>
      <description><![CDATA[An API is a contract, not a technology — this walks through the client-server model, REST's core verbs and nouns, and the request/response anatomy underlying almost every integration you'll build.]]></description>
      <pubDate>Sun, 13 Dec 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>APIs</category>
    </item>
    <item>
      <title><![CDATA[REST, GraphQL, and gRPC: Three Ways to Ask for Data]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/rest-graphql-grpc</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/rest-graphql-grpc</guid>
      <description><![CDATA[REST, GraphQL, and gRPC solve different problems rather than compete for the same one — knowing how each actually works under the hood is what lets you pick the right one instead of the familiar one.]]></description>
      <pubDate>Sun, 20 Dec 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>APIs</category>
    </item>
    <item>
      <title><![CDATA[WebSockets, Long Polling, and Server-Sent Events]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/websockets-long-polling-sse</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/websockets-long-polling-sse</guid>
      <description><![CDATA[Real-time features fail in production more often from picking the wrong transport than from bad code — here's how long polling, SSE, and WebSockets actually trade off, and how to choose before the incident, not after.]]></description>
      <pubDate>Sun, 27 Dec 2026 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>APIs</category>
      <category>Real-Time</category>
    </item>
    <item>
      <title><![CDATA[Service Mesh: Who's Watching Your Microservices Talk to Each Other?]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/service-mesh-explained</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/service-mesh-explained</guid>
      <description><![CDATA[A service mesh moves retries, encryption, and observability out of application code and into a dedicated infrastructure layer — a tool that earns its keep at a specific scale, not a default choice.]]></description>
      <pubDate>Sun, 03 Jan 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Microservices</category>
    </item>
    <item>
      <title><![CDATA[API Gateway: The Front Door to Your Backend]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/api-gateway</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/api-gateway</guid>
      <description><![CDATA[An API Gateway centralizes routing, auth, and rate limiting that would otherwise be duplicated across every service and client — at the cost of becoming a critical path you now have to run with real rigor.]]></description>
      <pubDate>Sun, 10 Jan 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>APIs</category>
      <category>Microservices</category>
    </item>
    <item>
      <title><![CDATA[Rate Limiting: How Systems Protect Themselves From Their Own Popularity]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/rate-limiting</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/rate-limiting</guid>
      <description><![CDATA[Rate limiting is a policy enforced through an algorithm — token bucket, sliding window, leaky bucket — and the one you pick determines which kind of unfairness your system tolerates under load.]]></description>
      <pubDate>Sun, 17 Jan 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Reliability</category>
    </item>
    <item>
      <title><![CDATA[Single Sign-On: One Login, Many Doors]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/single-sign-on</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/single-sign-on</guid>
      <description><![CDATA[SSO works by moving trust, not passwords — an identity provider authenticates once, and every downstream application just verifies a signed assertion instead of checking a password itself.]]></description>
      <pubDate>Sun, 24 Jan 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Security</category>
    </item>
    <item>
      <title><![CDATA[OAuth: Letting Apps Act on Your Behalf Without Handing Over Your Password]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/oauth</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/oauth</guid>
      <description><![CDATA[OAuth's real contribution is replacing 'share your credentials' with a scoped, revocable, time-limited token — here's how the authorization code flow, refresh tokens, and PKCE fit together.]]></description>
      <pubDate>Sun, 31 Jan 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Security</category>
    </item>
    <item>
      <title><![CDATA[Symmetric and Asymmetric Encryption]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/symmetric-asymmetric-encryption</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/symmetric-asymmetric-encryption</guid>
      <description><![CDATA[Symmetric encryption is fast but can't solve key distribution on its own; asymmetric encryption solves distribution but is too slow for bulk data — real systems, from TLS on down, use both together.]]></description>
      <pubDate>Sun, 07 Feb 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Security</category>
    </item>
    <item>
      <title><![CDATA[Consistent Hashing]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/consistent-hashing</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/consistent-hashing</guid>
      <description><![CDATA[Plain modulo hashing remaps almost every key when a node joins or leaves a cluster; consistent hashing turns that into a local event by remapping only the share of keys that actually needs to move.]]></description>
      <pubDate>Sun, 14 Feb 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Distributed Systems</category>
    </item>
    <item>
      <title><![CDATA[Concurrency Control and Locks: Keeping Shared State Sane]]></title>
      <link>https://www.eduardo-lucas-dev.com/blog/concurrency-control-and-locks</link>
      <guid isPermaLink="true">https://www.eduardo-lucas-dev.com/blog/concurrency-control-and-locks</guid>
      <description><![CDATA[Race conditions are invisible until load arrives — locks and optimistic concurrency control are the two answers to the same question: who gets to touch shared state first, and what happens when two actors collide.]]></description>
      <pubDate>Sun, 21 Feb 2027 00:00:00 GMT</pubDate>
      <category>System Design</category>
      <category>Expert</category>
      <category>Distributed Systems</category>
    </item>
  </channel>
</rss>