<?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: Ben Clifford</title>
    <description>The latest articles on DEV Community by Ben Clifford (@benten_clifford).</description>
    <link>https://dev.to/benten_clifford</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%2F4039769%2F27869faa-e669-45df-b559-008b0c438ba7.png</url>
      <title>DEV Community: Ben Clifford</title>
      <link>https://dev.to/benten_clifford</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benten_clifford"/>
    <language>en</language>
    <item>
      <title>What "Single Source of Truth" Actually Means in Practice — A Look at Omnea's Data Architecture</title>
      <dc:creator>Ben Clifford</dc:creator>
      <pubDate>Fri, 07 Aug 2026 07:04:41 +0000</pubDate>
      <link>https://dev.to/benten_clifford/what-single-source-of-truth-actually-means-in-practice-a-look-at-omneas-data-architecture-2ehn</link>
      <guid>https://dev.to/benten_clifford/what-single-source-of-truth-actually-means-in-practice-a-look-at-omneas-data-architecture-2ehn</guid>
      <description>&lt;p&gt;"Single source of truth" gets thrown around in every SaaS pitch deck until it's basically meaningless. Omnea, a London based procurement platform, is a decent case study in what the phrase actually requires architecturally, because their core product depends on it working correctly across an entire company's finance stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: supplier data lives everywhere except where you need it
&lt;/h2&gt;

&lt;p&gt;Procurement data in most companies is scattered across spreadsheets, email threads, Slack messages, and half a dozen disconnected point solutions. Legal has one view of a vendor contract, finance has another, IT security has a third. None of them reconcile automatically. &lt;br&gt;
That fragmentation isn't just annoying, it creates real risk: duplicate suppliers nobody notices, compliance gaps that surface only during an audit, and spend nobody can actually account for.&lt;/p&gt;

&lt;p&gt;Omnea's pitch is that instead of bolting a dashboard on top of that mess, you need a continuously synced layer that pulls from and writes back to the systems finance, legal, and IT already use. That's a meaningfully harder engineering problem than a read only reporting tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two-way sync problem
&lt;/h2&gt;

&lt;p&gt;A one-way data pipeline (pull data in, display it) is comparatively easy. A two-way orchestration layer, where changes in your procurement platform propagate back out to the source systems and vice versa, is a different class of problem entirely. &lt;br&gt;
You're now dealing with conflict resolution, race conditions between systems updating the same record, and the question of which system is authoritative when two updates disagree.&lt;/p&gt;

&lt;p&gt;This is the unglamorous infrastructure work that decides whether a "single source of truth" claim is real or marketing. Any team building similar orchestration layers across multiple enterprise systems will recognize the shape of the problem: sync frequency versus API rate limits, partial failure handling when one downstream system is unreachable, and audit logging robust enough that when a discrepancy shows up, you can actually trace where it originated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why natural language intake is the easy part
&lt;/h2&gt;

&lt;p&gt;The AI facing feature that gets the press attention is the natural language request intake, someone typing "I need to get this vendor approved" instead of filling out a form. That's the visible layer. It's also, relatively speaking, the easier engineering problem: parse intent, route to the right workflow. &lt;br&gt;
The harder problem sitting underneath it is making sure that once the request is captured, the resulting data update is consistent, reconciled, and doesn't silently create a duplicate supplier record that undermines the entire premise of having one source of truth.&lt;/p&gt;

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

&lt;p&gt;If you're building anything that claims to unify data across systems your users already use elsewhere, the marketing pitch and the actual engineering effort will diverge sharply. The dashboard is the 10% everyone sees. &lt;br&gt;
The two-way sync, conflict resolution, and reconciliation logic underneath it is the 90% that determines whether the product actually works at scale, and it's exactly the kind of infrastructure problem that gets buried in most startup founder stories in favor of the AI feature that made the funding headline.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>startup</category>
      <category>uk</category>
    </item>
    <item>
      <title>Building Retry Logic for Recurring Payments: What Failed Direct Debit Collections Teach You About Idempotency</title>
      <dc:creator>Ben Clifford</dc:creator>
      <pubDate>Tue, 04 Aug 2026 07:20:07 +0000</pubDate>
      <link>https://dev.to/benten_clifford/building-retry-logic-for-recurring-payments-what-failed-direct-debit-collections-teach-you-about-4gdb</link>
      <guid>https://dev.to/benten_clifford/building-retry-logic-for-recurring-payments-what-failed-direct-debit-collections-teach-you-about-4gdb</guid>
      <description>&lt;p&gt;Recurring billing is one of those systems that looks trivial in a demo and turns into a distributed-systems problem the moment it touches production. The core issue: payment rails fail in ways that aren't binary, and your retry logic needs to reflect that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "just retry" isn't a strategy
&lt;/h2&gt;

&lt;p&gt;With Direct Debit specifically, a failed collection can mean a few very different things: insufficient funds, an expired or cancelled mandate, an account that no longer exists, or a bank-side technical failure. Treating all of these the same way, retry in 24 hours, is how you end up hammering a dead mandate for weeks or, worse, retrying a payment that already technically succeeded on the bank's side but hasn't reported back yet.&lt;/p&gt;

&lt;p&gt;A better mental model is to bucket failures:&lt;/p&gt;

&lt;p&gt;Transient failures (technical error, timeout) → retry quickly, maybe within hours&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Insufficient funds&lt;/strong&gt; → retry, but with backoff timed around typical pay cycles rather than a fixed interval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mandate invalid/cancelled&lt;/strong&gt; → do not retry, surface it to the customer immediately&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate/already processed&lt;/strong&gt; → don't retry at all, this is where 
idempotency keys save you&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Idempotency is not optional
&lt;/h2&gt;

&lt;p&gt;Every payment initiation call should carry an idempotency key generated client-side, not server-side, so that a network timeout followed by a client retry doesn't create two charges. This matters more with bank rails than cards because the feedback loop is slower. If your API call times out on a Direct Debit submission, you genuinely don't know whether the bank received it. Retrying blind without an idempotency key means you might double-collect from a real customer's real bank account, which is a much worse failure mode than a failed card charge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Webhooks as the source of truth
&lt;/h2&gt;

&lt;p&gt;Polling for payment status works until it doesn't. The scalable pattern is to treat webhooks as your source of truth for state transitions (submitted → confirmed → paid, or submitted → failed → retried), and to build your system so it's resilient to webhooks arriving out of order or being delivered more than once. Store the event ID, dedupe on it, and never assume webhook delivery is exactly-once, because it almost never is in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The dunning problem is a UX problem, not just a backend one
&lt;/h2&gt;

&lt;p&gt;A surprising amount of churn in subscription businesses isn't voluntary cancellation, it's failed payments that never got resolved. If your retry logic silently fails three times and then cancels the subscription without ever nudging the customer, you're optimizing for backend simplicity at the cost of revenue. The systems that handle this well pair backend retry logic with proactive customer messaging, "your payment failed, update your details," timed to land before the account actually lapses.&lt;/p&gt;

&lt;p&gt;None of this is unique to payments. It's the same class of problem as any system dealing with unreliable delivery, partial failure, and eventual consistency; payments just make the stakes for getting it wrong immediately visible in someone's bank balance. &lt;br&gt;
It's also a recurring theme in startup founder stories: the unglamorous failure-handling work is usually what separates a subscription business that scales from one that quietly bleeds churn.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>business</category>
    </item>
    <item>
      <title>What UK Bootstrapped SaaS Founders Actually Pay for Business Banking</title>
      <dc:creator>Ben Clifford</dc:creator>
      <pubDate>Sat, 01 Aug 2026 07:39:38 +0000</pubDate>
      <link>https://dev.to/benten_clifford/what-uk-bootstrapped-saas-founders-actually-pay-for-business-banking-mk6</link>
      <guid>https://dev.to/benten_clifford/what-uk-bootstrapped-saas-founders-actually-pay-for-business-banking-mk6</guid>
      <description>&lt;p&gt;"Free business banking" is one of the most misleading phrases in UK fintech marketing. Every major digital bank advertises a free tier Starling, Tide, Mettle, Monzo, Revolut but "free" depends entirely on how many transfers you make, whether you invoice, and whether you touch foreign currency. Here's what five common bootstrapped-founder scenarios actually cost, worked out line by line.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenario 1: Solo SaaS founder, 10 transfers a month, no invoicing
&lt;/h2&gt;

&lt;p&gt;You're paying a couple of contractors and a hosting bill. Nothing fancy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Starling:&lt;/strong&gt; £0. Unlimited free UK transfers, no monthly fee.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mettle:&lt;/strong&gt; £0. Same story, plus FreeAgent (~£150/year value) thrown in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monzo Lite:&lt;/strong&gt; £0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tide:&lt;/strong&gt; 5 transfers free, then 5 × £0.20 = £1/month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revolut:&lt;/strong&gt; £10/month minimum (Basic plan fee applies regardless of volume).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this volume, Starling, Mettle, and Monzo Lite are functionally tied at zero cost. Revolut is the expensive outlier here because you're paying for multi-currency capability you're not using.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenario 2: Invoice-heavy consultancy, 50 transfers a month, client invoicing
&lt;/h2&gt;

&lt;p&gt;You bill clients directly and chase payments monthly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tide:&lt;/strong&gt; 5 free transfers, then 45 × £0.20 = £9/month, plus 3 free invoices monthly (extra invoices need the paid Smart plan at £12.49/month if you exceed that).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Starling:&lt;/strong&gt; £0 for transfers, but invoicing is a £7/month add-on — so roughly £7/month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monzo Pro:&lt;/strong&gt; £9/month flat, invoicing included.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mettle:&lt;/strong&gt; £0, invoicing included via bundled FreeAgent the cheapest option if you don't need multi-user access or international payments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a solo consultancy that only invoices UK clients, Mettle wins on pure cost. The moment you need a second user or an international client, that calculus changes fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenario 3: Cash-heavy small retailer/market trader, £2,000/month in cash deposits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Starling:&lt;/strong&gt; 0.7% at the Post Office, minimum £3 — on £2,000 that's £14/month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tide:&lt;/strong&gt; 0.5% at Post Office (min £2.50) or 3% at PayPoint Post Office route costs £10/month, PayPoint costs £60.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mettle:&lt;/strong&gt; up to £500/day free at the Post Office, so £2,000 spread across the month can land at £0 if you deposit in smaller batches but confirm current terms directly with Mettle, as cash deposit policy details vary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monzo Lite:&lt;/strong&gt; £500/month free, so anything above that starts incurring charges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cash-handling businesses should model this scenario specifically it's the one place "free" digital banking quietly becomes the most expensive option on the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenario 4: Exporting SaaS, billing US and EU clients in USD/EUR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Revolut:&lt;/strong&gt; £10/month, but you get 25+ currencies at interbank rates for the first £1,000 monthly, then 0.6% FX on weekdays (1% weekends). For a founder converting say £5,000/month, that's roughly £10 + (0.6% × £4,000) = £34/month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Starling:&lt;/strong&gt; EUR add-on only, limited multi-currency workable for EU-only, not for USD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Others:&lt;/strong&gt; no meaningful multi-currency support, meaning you'd be paying your card processor's FX markup on top of a domestic-only account, which is typically a worse rate than Revolut's interbank pricing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're actually invoicing in foreign currency every month, Revolut's £10 fee is usually cheaper than eating a worse FX spread elsewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenario 5: Growth-stage, want lending headroom
&lt;/h2&gt;

&lt;p&gt;Only one account on this list offers overdrafts and business lending as a fully licensed bank: Starling. Monzo Business also offers overdrafts and loans subject to credit checks. &lt;br&gt;
Tide, Mettle, and Revolut don't offer overdrafts at all. If you're planning to need short-term credit as you scale, that's not a fee comparison it's a structural feature only some of these accounts have.&lt;/p&gt;

&lt;h2&gt;
  
  
  The actual lesson
&lt;/h2&gt;

&lt;p&gt;None of these accounts is "cheap" or "expensive" in the abstract cost is a function of your transaction pattern, not the marketing page. Map your real monthly numbers (transfers, invoices, cash, foreign currency) against the scenario closest to yours before deciding, because the gap between the cheapest and most expensive option for your specific pattern can be £30-40 a month real money for a bootstrapped founder. &lt;br&gt;
It's a small enough gap to get lost in the noise of running a business, but it's exactly the kind of detail that gets overlooked in most &lt;a href="https://giphy.com/channel/epplusuk" rel="noopener noreferrer"&gt;UK business news&lt;/a&gt; coverage of these accounts, which tends to stop at the headline "free" claim.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All fees and limits verified against provider websites as of mid-2026 banking fee structures change, so confirm current pricing before choosing an account.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>saas</category>
      <category>uk</category>
      <category>ai</category>
    </item>
    <item>
      <title>Three Acquisitions, Three Different Jobs: How Allica Bank Built a £3.7B Loan Book by Buying, Not Building</title>
      <dc:creator>Ben Clifford</dc:creator>
      <pubDate>Tue, 21 Jul 2026 09:40:02 +0000</pubDate>
      <link>https://dev.to/benten_clifford/three-acquisitions-three-different-jobs-how-allica-bank-built-a-ps37b-loan-book-by-buying-not-2oam</link>
      <guid>https://dev.to/benten_clifford/three-acquisitions-three-different-jobs-how-allica-bank-built-a-ps37b-loan-book-by-buying-not-2oam</guid>
      <description>&lt;p&gt;Most companies build every feature themselves and treat acquisitions as a last resort. Allica Bank did the opposite. In four years it made three acquisitions, each solving a completely different problem, and turned a bank with almost no loan book into one holding £3.7 billion in loans. If you like thinking about buy vs. build decisions at the company level, this is a genuinely clean case study.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deal one: buying scale instead of waiting for it
&lt;/h2&gt;

&lt;p&gt;In 2021, Allica bought Allied Irish Bank's GB SME lending book. That's not a flashy move. It's literally buying an existing portfolio of business loans rather than originating them one at a time.&lt;/p&gt;

&lt;p&gt;For a young bank still figuring out its identity, this did two things at once. It gave Allica immediate scale in commercial lending, and it handed them a proven template for exactly the kind of customer they wanted to serve going forward: established SMEs. Instead of spending years slowly building trust and track record in a regulated industry where trust can't be manufactured through marketing, they bought a working example of it.&lt;/p&gt;

&lt;p&gt;Think of it like acquiring a mature codebase with real production traffic instead of building your MVP from zero and hoping users show up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deal two: filling a specific gap, not chasing raw scale
&lt;/h2&gt;

&lt;p&gt;By August 2024, Allica had organically built out commercial mortgages, asset finance, and growth finance. One thing was missing: bridging finance. Rather than spend years building that expertise from scratch, they acquired Tuscan Capital, a specialist in semi commercial and full commercial bridging loans.&lt;/p&gt;

&lt;p&gt;This is the more instructive deal of the three. It's not about buying size, it's about identifying one precise capability gap and acquiring a team that already did that one thing well. Most fintech M&amp;amp;A coverage focuses on splashy consumer app acquisitions, but this kind of surgical, boring acquisition is arguably the more useful pattern to actually learn from.&lt;/p&gt;

&lt;p&gt;It's the equivalent of not building your own payments infrastructure because a team already nailed it, and just acquiring them instead of reinventing it internally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deal three: Kriya and the jump into a new category entirely
&lt;/h2&gt;

&lt;p&gt;The biggest move came in October 2025: an all share acquisition of Kriya, the SME working capital and PayLater fintech previously known as MarketInvoice and MarketFinance. Founded in 2011, Kriya had already processed over £4 billion in SME finance across more than 300,000 transactions, with a PayLater product built on a Stripe partnership already live with retailers like Halfords.&lt;/p&gt;

&lt;p&gt;This one's different from the first two. It wasn't filling a gap in an existing product line, it was entering an entirely new category: embedded finance. Kriya kept its own brand, and its CEO Anil Stocker stayed on, saying joining forces with Allica gave the business the platform to scale further. The stated goal attached to the deal is concrete: £1 billion in working capital finance to SMEs over the next three years, part of a broader push toward 10% share of the established SME market by 2028.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the sequencing matters more than any single deal
&lt;/h2&gt;

&lt;p&gt;Look at the order here. First, buy raw scale. Then, fill a specific product gap. Then, acquire your way into an entirely new category. That's not opportunistic dealmaking where you grab whatever's available. It's a deliberate sequence, and it's a decent signal for where fintech M&amp;amp;A is heading more broadly: acquisition as a growth lever, not a fallback when organic growth stalls.&lt;/p&gt;

&lt;p&gt;If you're building or scaling a product and treating "build everything ourselves" as the only legitimate path, this is a useful counterexample. Acquisition can be a precision tool. You can use it to buy scale, buy a missing capability, or buy your way into a new business line entirely, and each of those is a different decision with a different playbook.&lt;/p&gt;

&lt;p&gt;Allica's three deals each did exactly one of those jobs. The £3.7 billion loan book isn't the result of one big bet. It's the result of getting that sequencing right, three separate times, for three separate reasons.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
