<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paulo Dalmas</title>
    <description>The latest articles on DEV Community by Paulo Dalmas (@dalmasjunior).</description>
    <link>https://dev.to/dalmasjunior</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F586474%2F6bd0bf69-fc18-409e-aec6-4faf7025860c.jpg</url>
      <title>DEV Community: Paulo Dalmas</title>
      <link>https://dev.to/dalmasjunior</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dalmasjunior"/>
    <language>en</language>
    <item>
      <title>True FinOps Starts in the Code: Why Buying Reserved Instances Isn't Architecture</title>
      <dc:creator>Paulo Dalmas</dc:creator>
      <pubDate>Fri, 26 Jun 2026 10:17:55 +0000</pubDate>
      <link>https://dev.to/dalmasjunior/true-finops-starts-in-the-code-why-buying-reserved-instances-isnt-architecture-4d9m</link>
      <guid>https://dev.to/dalmasjunior/true-finops-starts-in-the-code-why-buying-reserved-instances-isnt-architecture-4d9m</guid>
      <description>&lt;p&gt;If you've ever sat in a technical leadership or architectural role at a cloud-native company, you've likely witnessed the classic clash between Engineering and the Finance department. On one side, developers fighting to refactor bottlenecks. On the other, a well-intentioned "FinOps" team trying to slash the AWS bill armed with nothing but Excel spreadsheets.&lt;/p&gt;

&lt;p&gt;The outcome of this story is usually predictable (and frustrating): real code optimization projects get shelved because the finance team chose to sign a 3-year contract for Reserved Instances (RIs) or Savings Plans to "solve the cost issue."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Illusion of Financial Discounts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's be pragmatic: financial optimizations and RIs are excellent management instruments. The problem arises when we use long-term contracts as a band-aid for inefficient architectures.&lt;/p&gt;

&lt;p&gt;Buying reserved capacity on AWS to run a service suffering from chronic memory leaks, or that executes thousands of N+1 database queries, is literally subsidizing waste at a discount. You aren't solving your system's scale problem; you're merely ensuring the company pays slightly less for continuous waste over the next three years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost-Aware Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a Senior Architect, I argue that true FinOps isn't just done in the AWS billing portal; it's done in the IDE, in domain design, and in infrastructure choices.&lt;/p&gt;

&lt;p&gt;Cloud costs are no longer a mere consequence of the system; they have become a non-functional requirement, just as critical as latency, security, or high availability. In a Cost-Aware Architecture, the financial impact of every microservice or asynchronous worker is designed and validated from Day 1.&lt;/p&gt;

&lt;p&gt;This is exactly why, strategically, I advocate for the introduction of languages like Rust in critical processing domains. The low memory footprint and absurdly efficient CPU usage of Rust code drastically change the baseline of the required infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Right Value Stream&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Architectural efficiency must always precede financial negotiation. Only after eliminating the computational bottleneck — whether by redesigning inter-service communication or injecting a high-performance language into the data plane — does it make sense to bring in the finance team to sign Reserved Instance contracts based on the newly optimized metrics. The ROI of optimizing the code first is incomparable.&lt;/p&gt;

&lt;p&gt;In short, reducing the cloud bill isn't a war between Engineering and Finance. It's a partnership where Engineering tackles computational waste, and Finance tackles commercial waste. If your company is only doing the latter, you are leaving a lot of money on the table.&lt;/p&gt;

</description>
      <category>finops</category>
      <category>cloudarchitecture</category>
      <category>aws</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The Illusion of Microservices: Why the Modular Monolith is Once Again the Gold Standard in Architecture</title>
      <dc:creator>Paulo Dalmas</dc:creator>
      <pubDate>Thu, 25 Jun 2026 18:15:35 +0000</pubDate>
      <link>https://dev.to/dalmasjunior/the-illusion-of-microservices-why-the-modular-monolith-is-once-again-the-gold-standard-in-1ppl</link>
      <guid>https://dev.to/dalmasjunior/the-illusion-of-microservices-why-the-modular-monolith-is-once-again-the-gold-standard-in-1ppl</guid>
      <description>&lt;p&gt;Throughout my career, transitioning between CTO roles and, more recently, focusing purely on distributed systems architecture and high-performance engineering, I've seen many architectural patterns rise and fall. But few have caused as much silent damage to company bottom lines as the premature adoption of microservices.&lt;/p&gt;

&lt;p&gt;Over the last decade, the industry bought into the idea that, in order to scale, you needed to split your system into dozens (or hundreds) of independent services. The practical result I find in most companies? The creation of the dreaded "Distributed Monolith."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Anatomy of Waste: Networks vs. Memory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The hard truth we need to face with maturity is that microservices primarily solve problems of organizational scale (Conway's Law), not necessarily performance. If your engineering team isn't the size of Netflix or Uber, prematurely fragmenting your codebase is shooting yourself in the foot.&lt;/p&gt;

&lt;p&gt;Technically, what happens when we break down a monolith without the proper domain boundaries? We trade extremely fast and cheap local function calls (resolved in the processor's L1/L2 Cache) for slow and expensive network calls (TCP/IP).&lt;/p&gt;

&lt;p&gt;We start spending an absurd amount of computational time on constant JSON serialization and deserialization, and the AWS bill explodes with internal traffic costs (egress/ingress) between Availability Zones (AZs). You haven't scaled your application; you've merely added network latency and infrastructure complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Return of the Modular Monolith&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;True seniority in software engineering isn't about mastering the most complex architecture of the moment, but having the wisdom to know when not to use it. That's why the Modular Monolith has consolidated itself as the initial gold standard for new projects and restructurings.&lt;/p&gt;

&lt;p&gt;In a well-designed Modular Monolith (and languages with strong type systems and strict scope control, like Rust, shine absurdly well here), you maintain the logical separation of domains. Modules are independent, business rules are isolated, but the deployment is singular. Communication between modules goes back to being in-memory. Performance skyrockets. AWS costs plummet. The team's cognitive overload disappears.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's exactly the difficulty of debugging this invisible latency between poorly divided services that motivated me to adopt the 'Build in Public' approach to create a DevTools Chrome extension. I'm developing a tool focused on giving engineers real visibility into payloads and client-side bottlenecks, saving hours of troubleshooting in complex architectures&lt;br&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Pragmatism as a Metric&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Software engineering is a continuous exercise in managing trade-offs. If your current architecture is consuming financial resources that should go towards the product (or into the employees' pockets) just to maintain "vanity complexity", it's time to rethink. Having the courage to lead a rollback to a well-structured monolith isn't a step backward; it's the pinnacle of technical pragmatism.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>aws</category>
      <category>microservices</category>
      <category>rust</category>
    </item>
  </channel>
</rss>
