<?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: Salim Adedeji</title>
    <description>The latest articles on DEV Community by Salim Adedeji (@salim_adedeji_233f2fcf315).</description>
    <link>https://dev.to/salim_adedeji_233f2fcf315</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3547358%2F042a7f66-8cd9-43a8-b67a-17db78835f9c.jpg</url>
      <title>DEV Community: Salim Adedeji</title>
      <link>https://dev.to/salim_adedeji_233f2fcf315</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/salim_adedeji_233f2fcf315"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Salim Adedeji</dc:creator>
      <pubDate>Wed, 08 Oct 2025 03:39:19 +0000</pubDate>
      <link>https://dev.to/salim_adedeji_233f2fcf315/-4ab7</link>
      <guid>https://dev.to/salim_adedeji_233f2fcf315/-4ab7</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/salim_adedeji_233f2fcf315" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3547358%2F042a7f66-8cd9-43a8-b67a-17db78835f9c.jpg" alt="salim_adedeji_233f2fcf315"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/salim_adedeji_233f2fcf315/stress-testing-the-vault-how-software-engineers-use-resilience-testing-to-future-proof-fintech-3jk2" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Stress-Testing the Vault: How Software Engineers Use Resilience Testing to Future-Proof Fintech 💻&lt;/h2&gt;
      &lt;h3&gt;Salim Adedeji ・ Oct 8&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#softwareengineering&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#software&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#architecture&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>softwareengineering</category>
      <category>software</category>
      <category>webdev</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Stress-Testing the Vault: How Software Engineers Use Resilience Testing to Future-Proof Fintech 💻</title>
      <dc:creator>Salim Adedeji</dc:creator>
      <pubDate>Wed, 08 Oct 2025 03:38:58 +0000</pubDate>
      <link>https://dev.to/salim_adedeji_233f2fcf315/stress-testing-the-vault-how-software-engineers-use-resilience-testing-to-future-proof-fintech-3jk2</link>
      <guid>https://dev.to/salim_adedeji_233f2fcf315/stress-testing-the-vault-how-software-engineers-use-resilience-testing-to-future-proof-fintech-3jk2</guid>
      <description>&lt;p&gt;In the fast-paced world of financial services and fintech, software isn't just an interface—it is the bank, the trading platform, and the payment network. When a system fails, the impact isn't just inconvenience; it's lost money, regulatory fines, and shattered customer trust. This is where &lt;strong&gt;resilience testing&lt;/strong&gt; shines, translating abstract operational goals into concrete &lt;strong&gt;Software Engineering&lt;/strong&gt; practice.&lt;/p&gt;

&lt;p&gt;Think of it as the ultimate quality assurance for mission-critical systems. For engineers, resilience isn't just a business requirement; it's a design philosophy deeply rooted in core software principles.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Resilience as a Software Engineering Discipline&lt;/strong&gt;&lt;br&gt;
Resilience testing isn't merely a post-deployment checklist; it's an iterative process that influences everything from architecture choices to deployment pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Beyond Unit and Integration Tests&lt;/strong&gt;&lt;br&gt;
While &lt;strong&gt;Unit Tests&lt;/strong&gt; verify individual code blocks and &lt;strong&gt;Integration Tests&lt;/strong&gt; ensure components work together, resilience testing focuses on the &lt;strong&gt;Non-Functional Requirements&lt;/strong&gt; (NFRs) of the system.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Availability&lt;/strong&gt;: Can the system be accessed when needed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Recoverability&lt;/strong&gt;: How quickly can the system restore operations after a failure?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fault Tolerance&lt;/strong&gt;: Can the system continue to operate despite the failure of one or more components?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Engineers use resilience testing to prove these NFRs under stress, especially for distributed, microservices-based architectures common in fintech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The Role of Chaos Engineering&lt;/strong&gt;&lt;br&gt;
The most powerful tool for engineering resilience is Chaos Engineering. This concept, famously pioneered by Netflix, involves intentionally injecting failures into a system to expose hidden weaknesses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fault Injection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Engineering Action&lt;/strong&gt;: Deliberately killing a server instance or container (e.g., using a tool like Chaos Monkey).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fintech Relevance&lt;/strong&gt;: Simulating a cloud availability zone (AZ) failure and verifying automatic failover to a healthy AZ, ensuring continuous trading.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Latency Injection&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Engineering Action&lt;/strong&gt;: Introducing artificial delays in the network communication between microservices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fintech Relevance&lt;/strong&gt;: Testing if a payment microservice can gracefully handle a slowdown in a remote KYC (Know Your Customer) service without timing out the customer's transaction.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Resource Exhaustion&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Engineering Action&lt;/strong&gt;: Overloading a component's CPU, memory, or disk I/O.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fintech Relevance&lt;/strong&gt;: Checking if the rate-limiting mechanism protects the database when a sudden traffic spike hits the customer login service.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;By running these controlled experiments, engineers transform theoretical system weaknesses into actionable data, leading to &lt;strong&gt;code changes&lt;/strong&gt; and &lt;strong&gt;architectural improvements&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Key Software Engineering Concepts in Resilience Testing&lt;/strong&gt;&lt;br&gt;
Resilience testing forces the application of several advanced software design principles:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Circuit Breakers and Bulkheads&lt;/strong&gt;&lt;br&gt;
These are design patterns engineers build into the code to prevent cascading failures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Circuit Breakers&lt;/strong&gt;: Just like an electrical circuit breaker, this pattern stops repeated calls to a failing service. Resilience tests verify the &lt;strong&gt;trip threshold&lt;/strong&gt; and the &lt;strong&gt;half-open state&lt;/strong&gt; (which attempts to check if the service has recovered).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bulkheads&lt;/strong&gt;: This pattern isolates parts of a system so a failure in one section doesn't take down the entire application. In a fintech app, a failure in the low-priority "marketing offer" service should _never _impact the high-priority "funds transfer" service. Tests verify that the bulkhead truly isolates the failure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Retry and Backoff Strategies&lt;/strong&gt;&lt;br&gt;
When a transient failure occurs (like a momentary network glitch), the system shouldn't immediately give up. Resilience tests focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retries&lt;/strong&gt;: Ensuring that services attempt to re-connect or re-submit a request.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exponential Backoff&lt;/strong&gt;: Critically, the system must wait increasing periods (e.g., 1s, then 2s, then 4s) between retries. This prevents a failing service from being overwhelmed by a flood of immediate re-requests, which is a common cause of system collapse.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Observability and Monitoring&lt;/strong&gt;&lt;br&gt;
You can't test resilience without &lt;strong&gt;Observability&lt;/strong&gt;. Software engineers must ensure that when a failure is injected, the monitoring tools accurately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Log&lt;/strong&gt; the failure details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trace&lt;/strong&gt; the request path to pinpoint the failure's origin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Metric&lt;/strong&gt; the impact on performance (e.g., latency, error rates).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resilience testing validates the monitoring setup itself, ensuring that the team gets the right alert before a small issue becomes a customer-facing crisis.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Bottom Line for Engineers&lt;/strong&gt;&lt;br&gt;
In fintech, the cost of failure is too high to rely on hope. Resilience testing is the bridge between theoretical architectural diagrams and production reality. It ensures that the &lt;strong&gt;microservices&lt;/strong&gt;, the &lt;strong&gt;APIs&lt;/strong&gt;, the &lt;strong&gt;database clusters&lt;/strong&gt;, and the &lt;strong&gt;cloud infrastructure&lt;/strong&gt; that engineers deploy can truly "&lt;strong&gt;handle the heat&lt;/strong&gt;." It transforms systems from merely functional to reliably &lt;strong&gt;battle-hardened&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>software</category>
      <category>webdev</category>
      <category>architecture</category>
    </item>
    <item>
      <title>The Secret to Secure Cloud Access from Restricted Regions: Reverse Proxy Everything</title>
      <dc:creator>Salim Adedeji</dc:creator>
      <pubDate>Sun, 05 Oct 2025 21:37:33 +0000</pubDate>
      <link>https://dev.to/salim_adedeji_233f2fcf315/the-secret-to-secure-cloud-access-from-restricted-regions-reverse-proxy-everything-15lc</link>
      <guid>https://dev.to/salim_adedeji_233f2fcf315/the-secret-to-secure-cloud-access-from-restricted-regions-reverse-proxy-everything-15lc</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53hz2lk0pmo5bvo21bzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53hz2lk0pmo5bvo21bzx.png" alt="secure routing" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
In the high-stakes world of finance, connecting global users to critical cloud services , especially from places with tough network rules like China is a massive headache. You need speed, security, and compliance all at once.&lt;/p&gt;

&lt;p&gt;For global financial institutions, connecting users in areas with strict network controls, like China, to core services hosted on AWS presents a difficult challenge. The requirement is not just speed, but absolute security and regulatory compliance.&lt;/p&gt;

&lt;p&gt;The solution is a controlled hybrid architecture: using an on-premise reverse proxy like Kong Gateway to create a single, compliant choke point for all sensitive traffic.&lt;/p&gt;

&lt;p&gt;Understanding the Gatekeeper: Kong Gateway&lt;br&gt;
An API Gateway acts as the single entry point for all client requests before they reach your backend services. Kong Gateway is a powerful, cloud-native API gateway built on a high-performance proxy.&lt;/p&gt;

&lt;p&gt;Its primary functions are critical in this scenario:&lt;/p&gt;

&lt;p&gt;Security Enforcement: Applying authentication, authorization, and rate-limiting policies at the network edge.&lt;br&gt;
Intelligent Routing: Directing traffic to the correct destination, regardless of where the service lives.&lt;br&gt;
Policy Control: Allowing an organization to manage, log, and audit all traffic centrally.&lt;br&gt;
In essence, Kong sits at your network perimeter to ensure no unauthorized or unvetted request ever touches your core cloud infrastructure.&lt;/p&gt;

&lt;p&gt;The Dual-Domain Compliance Strategy&lt;br&gt;
The need for a reverse proxy stems directly from the geopolitical reality of network restrictions and local regulations. A single, global domain is insufficient because direct connections from regions like China to global AWS regions are often unreliable, slow, or blocked by the Great Firewall (GFoC).&lt;/p&gt;

&lt;p&gt;This necessitates a dual-domain approach:&lt;/p&gt;

&lt;p&gt;Outside China — Hits the standard Global Domain (e.g., app.financecorp.com)&lt;/p&gt;

&lt;p&gt;Standard open internet routing and resolves directly to AWS&lt;/p&gt;

&lt;p&gt;Inside China — Hits a dedicated China Domain (e.g., app.financecorp.cn)&lt;/p&gt;

&lt;p&gt;Bypasses public internet unpredictability and resolves to on-premise Kong Gateway IP&lt;/p&gt;

&lt;p&gt;By using a dedicated China domain that resolves to a locally managed IP, you address the requirement for an Internet Content Provider (ICP) license, which is often mandatory for internet services in mainland China.&lt;/p&gt;

&lt;p&gt;The Security and Performance Payoff&lt;br&gt;
The reverse proxy setup provides two critical advantages that solve the core cross-border challenges:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Optimized, Secure Connectivity&lt;br&gt;
Instead of relying on the unpredictable public internet, the connection from your on-premise Kong to your AWS backend is established over a dedicated, high-speed link (e.g., AWS Direct Connect). Kong routes all vetted local traffic through this Turbo Tunnel, drastically reducing latency, preventing packet loss, and ensuring a stable service experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Narrowed Attack Surface (Firewall Whitelisting)&lt;br&gt;
This is the key security benefit for a financial institution:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without the proxy, your AWS firewall would need to be open to a wide range of global IP addresses, creating a significant security risk.&lt;br&gt;
With the reverse proxy, every connection from the restricted region is consolidated through the single, static public IP address of the Kong Gateway&lt;br&gt;
This means you can configure the firewall on your core AWS resources to accept connections ONLY from that one trusted Kong IP. This dramatically reduces your attack surface, providing granular, verifiable access control that is essential for regulatory compliance and enterprise security.&lt;/p&gt;

&lt;p&gt;By making the on-premise reverse proxy the only authorized ingress point for restricted regions, you satisfy both the regulatory mandate for local control and the security mandate for rigid network defense.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>apigateway</category>
      <category>webdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
