<?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: John Ayodele</title>
    <description>The latest articles on DEV Community by John Ayodele (@delehq).</description>
    <link>https://dev.to/delehq</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%2F4122678%2Fce51d771-7f8f-4439-b09f-10b4283ef890.png</url>
      <title>DEV Community: John Ayodele</title>
      <link>https://dev.to/delehq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/delehq"/>
    <language>en</language>
    <item>
      <title>Locking Exchange Rates for Multi-Currency Billing</title>
      <dc:creator>John Ayodele</dc:creator>
      <pubDate>Sun, 13 Sep 2026 01:38:22 +0000</pubDate>
      <link>https://dev.to/delehq/locking-exchange-rates-for-multi-currency-billing-oce</link>
      <guid>https://dev.to/delehq/locking-exchange-rates-for-multi-currency-billing-oce</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;When a subscription platform bills in more than one currency, the price a customer agreed to at checkout and the amount that eventually settles in your account are not the same number by default. Between the moment a customer sees "$29/mo" and the moment your payment processor actually converts and settles that charge, the underlying exchange rate has moved — sometimes by fractions of a percent, sometimes, during a volatile week for a given currency, by several points.&lt;/p&gt;

&lt;p&gt;Nothing about the product changed. The customer didn't get more or less value. But if you're resolving the exchange rate at charge time instead of at the time the customer agreed to a price, you've quietly turned every invoice into a small, unmanaged FX bet. Multiply that across thousands of renewals a month and it stops being a rounding error and starts showing up as unexplained variance in revenue reports.&lt;/p&gt;

&lt;p&gt;There's a second-order problem too: unpredictability erodes trust. A customer who sees their local-currency price shift slightly from one renewal to the next — with no clear reason — is more likely to open a support ticket, dispute the charge, or churn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "just re-resolve the rate" breaks down
&lt;/h2&gt;

&lt;p&gt;The naive implementation looks like this: store the price in a reference currency (say USD), and at charge time, call an FX API, convert, and charge the card. It's simple, and it's wrong for billing, because it silently couples your revenue to a rate you never showed the customer and never agreed to.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Two specific failure modes show up in practice:&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Checkout-to-settlement drift. A customer completes checkout, sees a converted price, and authorizes payment. If the actual charge is created moments later — or, worse, days later for deferred or invoice-based flows — the rate used for authorization and the rate used for settlement can diverge. The customer was quoted one number and charged another.&lt;br&gt;
Renewal drift. On a monthly or annual subscription, the price shown at signup is not necessarily the price used at each renewal if the rate is re-resolved every cycle. Customers don't expect their subscription price to float with the currency markets; they expect it to be stable unless you've told them otherwise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;None of this changes what the product does. It's a small architectural decision — snapshot instead of re-resolve — with an outsized effect on two things that compound over time: revenue integrity (you stop absorbing unmanaged FX risk on every single invoice) and customer trust (prices behave the way customers already expect subscription prices to behave: stable, and only changing when you say so).&lt;/p&gt;




&lt;p&gt;Have a project in mind, or a question about this post? Reach out at &lt;a href="mailto:john.ayo.jam@gmail.com"&gt;john.ayo.jam@gmail.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>fintech</category>
      <category>saas</category>
    </item>
    <item>
      <title>What Google Earth Engine Actually Is (and What It's Capable Of)</title>
      <dc:creator>John Ayodele</dc:creator>
      <pubDate>Sun, 13 Sep 2026 01:38:21 +0000</pubDate>
      <link>https://dev.to/delehq/what-google-earth-engine-actually-is-and-what-its-capable-of-5ni</link>
      <guid>https://dev.to/delehq/what-google-earth-engine-actually-is-and-what-its-capable-of-5ni</guid>
      <description>&lt;h2&gt;
  
  
  Start with the basics
&lt;/h2&gt;

&lt;p&gt;Satellites take pictures of the Earth constantly. Some take pictures of the same spot every single day. Over decades, this adds up to an enormous amount of imagery: what a forest looked like ten years ago versus today, how a city has grown, how a lake has shrunk.&lt;/p&gt;

&lt;p&gt;The problem is that this imagery is huge. We are talking about more data than a normal computer could ever download and process. For a long time, that meant only large research institutions with serious computing power could actually work with it.&lt;/p&gt;

&lt;p&gt;Google Earth Engine exists to fix that. It is a free (for most people) tool that lets anyone analyze decades of satellite imagery using Google's own computers, without ever downloading the images to their own machine. You write a request like "show me how this area changed between 2015 and 2025," and Google's servers do the heavy lifting and just hand you the answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What kind of data is actually in it
&lt;/h2&gt;

&lt;p&gt;Earth Engine's library holds more than 50 petabytes of data. To put that in perspective, one petabyte is roughly one million gigabytes, so this is an almost unimaginable amount of imagery and information. Some of what is in there:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decades of Landsat satellite imagery, going back to the 1970s&lt;/li&gt;
&lt;li&gt;Recent, detailed imagery from the Sentinel satellites (a European satellite program)&lt;/li&gt;
&lt;li&gt;Daily global images from a satellite system called MODIS, used to track things like plant health across entire continents&lt;/li&gt;
&lt;li&gt;Rainfall and climate records&lt;/li&gt;
&lt;li&gt;Elevation maps&lt;/li&gt;
&lt;li&gt;Nighttime images of the Earth, which sounds unusual but is genuinely useful. Because brighter areas at night usually mean more human activity, this data gets used to estimate things like economic growth, or even to detect gas flares burning at oil facilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How people actually use it
&lt;/h2&gt;

&lt;p&gt;You do not need to be a scientist to use Earth Engine, but you do need to write some code. There are two main ways people work with it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A web-based tool where you type simple instructions and immediately see the result on a map. This is where most beginners start.&lt;/li&gt;
&lt;li&gt;A version that plugs into Python, a popular programming language, for people who want to combine Earth Engine with other data tools they already use.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Whichever way you use it, the basic idea is always the same. You pick an area on the map, you pick a time period, and you ask a question about how that area changed. Earth Engine can even turn the result into a simple website that other people can explore themselves, without needing to write any code at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What people actually build with it
&lt;/h2&gt;

&lt;p&gt;Almost everything people use Earth Engine for comes down to one question: how has this place changed over time, and how has it changed. Real examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking how much forest has been cut down in a region, year by year&lt;/li&gt;
&lt;li&gt;Watching a city expand outward over a decade&lt;/li&gt;
&lt;li&gt;Measuring how a lake or river has dried up during a drought&lt;/li&gt;
&lt;li&gt;Estimating how healthy crops are across a farming region, to predict harvests&lt;/li&gt;
&lt;li&gt;Assessing damage after a flood, earthquake, or wildfire, by comparing images from before and after&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern is always the same: satellites saw it happen automatically, and Earth Engine makes it possible to actually look through everything they saw.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in 2026
&lt;/h2&gt;

&lt;p&gt;For most of its history, Earth Engine's answer to "how much does this cost" was simple: free, as long as you were not using it for a commercial business. That is still mostly true, but 2026 brought a real change. Free users now have to pick a usage tier to keep the system fair for everyone, since so many people use it that Google needed to manage how much computing power each person gets. Anyone who does not choose a tier is automatically placed on the free default option, called the Community Tier. Businesses using it commercially have always paid separately, based on how much they use it.&lt;/p&gt;

&lt;p&gt;If you looked into Earth Engine a few years ago and moved on, this tier system is the one genuinely new thing worth knowing about.&lt;/p&gt;

&lt;h2&gt;
  
  
  The simple takeaway
&lt;/h2&gt;

&lt;p&gt;The reason Earth Engine matters is not that satellite pictures exist. It is that, before this, actually working with decades of satellite imagery required serious money and serious computing infrastructure. Earth Engine took that barrier away. A question that used to require a research team and a supercomputer can now be answered from a laptop, in an afternoon.&lt;/p&gt;

&lt;p&gt;That is why it keeps showing up everywhere from climate research, to journalism, to businesses that need to understand how the physical world is changing.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://developers.google.com/earth-engine/guides" rel="noopener noreferrer"&gt;Google for Developers, Earth Engine guides&lt;/a&gt;, &lt;a href="https://earthengine.google.com/commercial/" rel="noopener noreferrer"&gt;Google Earth Engine, Commercial access&lt;/a&gt;, &lt;a href="https://earthengine.google.com/noncommercial/" rel="noopener noreferrer"&gt;Google Earth Engine, Noncommercial access&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>data</category>
      <category>datascience</category>
      <category>google</category>
    </item>
  </channel>
</rss>
