Posts

The 9‑Step Backtesting Trap That Blew Up My Dhaka Fintech’s AML Engine

Image
AI-generated illustration Bangladesh, 09/28/2026. My phone buzzed at 02:17 am. An alert from our real‑time MFS monitor flashed: BDT 3,245,876 moved across three Rocket accounts in 12 minutes, all under the BFIU’s BDT 100,000 threshold. My gut screamed – this was a structuring ring about to explode. I fired up the back‑testing suite we’d built two years ago, expecting a clean hit list. The report came back empty. Zero alerts. My heart sank. Two weeks later, the regulator knocked. A formal audit discovered that our back‑testing methodology was blind to exactly the pattern we’d just seen. The BFIU cited us for “inadequate validation of detection logic.” I was forced to shut down the alert engine for a week while we rewrote the whole thing. The Hidden Problem: Why Most Bangladeshi Backtests Miss the Real Threat Everyone tells you to “split your data 70/30, train on the past, test on the future.” Sounds neat. In reality, our local MFS landscape throws that rule out the window. Transaction ...

Why My First End‑to‑End Case Management Workflow Collapsed in Dhaka – The 9 Fixes That Saved My AML Team

Image
AI-generated illustration High‑Stakes Hook It was 02:17 am on a rainy Tuesday. My phone buzzed with a red badge: “STR # B‑2026‑0147 – BDT 9.8 million structured over 48 hours.” The alert came from the MFS monitoring engine at bKash, but the case file was empty, the audit log showed a dead‑end, and the senior compliance officer was already on a conference call with the BFIU. Within minutes the whole desk was on fire. The senior analyst shouted, “Where are the supporting documents? Why is the workflow stuck?” The system had thrown a “case‑state‑transition error” after the third escalation, and every analyst downstream was staring at a blank screen. The regulator was breathing down our necks, and the potential penalty for a missed SAR could be BDT 5 million plus reputational damage. The Hidden Problem Most Bangladeshi fintechs build a case management layer on top of an off‑the‑shelf ticketing system. They assume the generic “open → assign → resolve” flow will catch everything. In practi...

The $1,200 Lighthouse Cold‑Email Blunder I Fixed in 5 Moves

Image
AI-generated illustration 🚌 Try it yourself — Bus Fare Calculator BD This case study is based on a real, live product. Check it out below. Get Bus Fare Calculator BD → It was a rainy Thursday in Gulshan. My inbox pinged – a reply from a boutique textile shop in Mirpur that had just read my cold‑email. They’d looked at the Lighthouse report I’d attached, saw a 55 % performance score, and asked: ‘Can you fix this? We’re losing customers.’ I replied, "Sure, let’s chat," and booked a Zoom call for 3 PM. Fast forward two weeks: the shop’s PWA now scores 92 % on performance, 97 % on accessibility, and their sales jumped 18 %. The client paid BDT 45,000 – a tidy win for a solo freelancer. The Hidden Problem: Why Most Lighthouse Cold‑Emails Crash and Burn Most freelancers copy‑paste a generic Lighthouse link, write a one‑liner, and hit send. They assume the score alone will close the deal. Reality check: a 55 % score is a red flag, not a selling point. It tells the business they’re ...
Image
🚌 Try it yourself — Bus Fare Calculator BD This case study is based on a real, live product. Check it out below. Get Bus Fare Calculator BD → AI-generated illustration Real‑World Hook It was a rainy Tuesday in Gulshan. I stared at my laptop, coffee cooling, and saw a new notification: "You have a new lead!" The lead was a small boutique bakery, “Sweet Crumbs”, that’d just posted a Lighthouse report with a 62 Performance score. Their owner, Rafiq, was desperate—sales had dipped 12% since the last month, and his site was loading in 6 seconds on a 3G dongle. I drafted a cold email, slapped the Lighthouse score in the subject line, and hit send. No reply. After three more attempts, I realized I’d burned $1,200 of my own ad‑budget chasing a dead‑end. The Hidden Problem Most freelancers think a Lighthouse number is a magic bullet. “Your site scores 45, hire me!” sounds persuasive, but the reality in Bangladesh is messier. Local SMEs juggle: Spotty 3G/4G coverage tha...
Image
🚌 Try it yourself — Bus Fare Calculator BD The app from this case study is live and free on the Microsoft Store. Check real fares and distances between any two points in Bangladesh. Get Bus Fare Calculator BD → AI-generated illustration My phone buzzed at 2 am. A client in Chittagong—owner of a tiny bus ticket kiosk—had just sent a screenshot of his PWA crashing on a 3G phone. The error: Service worker failed to fetch . He was losing 12 % of daily riders because the app wouldn’t load on the cheapest data plan. I had promised a fast, offline‑first fare lookup that would survive Dhaka’s 3G black spots. I was staring at a deadline, a frustrated client, and a pile of assumptions that I’d never questioned. The Hidden Problem Most Indie Developers Overlook Everyone talks about “offline‑first” as a buzzword. The reality in Bangladesh is far harsher: average 3G latency hovers around 2.8 seconds, data caps cost BDT 15 per gigabyte, and many commuters share a single 4G hotspot...

Why My First Real‑Time MFS Alert Dashboard Crashed and How I Rebuilt It in 48 Hours

Image
Photo by Mark Chan on Unsplash High‑Stakes Hook It was 02:13 am on a rainy Thursday. The BFIU inbox pinged, a SAR arrived, and the numbers screamed: BDT 4.2 million moved through three Rocket accounts in under five minutes, each just under the BDT 100,000 threshold. My team’s alert list was a sea of noise—1,200 warnings per hour, most of them false. The system timed out, the dashboard froze, and senior management started asking, “Did we miss a structuring ring?” I stared at a blinking red line on a Grafana panel and felt the weight of an audit looming. The Hidden Problem Standard batch‑oriented monitoring works in banks that process a few thousand wires a day. In Bangladesh’s mobile‑financial‑services (MFS) world, transaction velocity is a different beast. bKash, Nagad, Rocket—all push millions of micro‑payments per hour. The BFIU guideline Rule 3.2.1 tells us to watch any series of transactions that cumulatively cross BDT 100,000 within a 24‑hour window, but it does not prescribe ...

Why My First PEP‑Screening Audit Went South in Dhaka – The 9‑Step Fix That Saved My Bank

Image
AI-generated illustration Bangladesh, 3 AM. My phone buzzed. The alert read: PEP match – BDT 12.4 million inbound transfer to a new corporate account. My supervisor’s voice crackled on the speaker: ‘We’ve got 30 minutes before the regulator’s audit team walks in. Explain this.’ My heart hammered. I stared at the transaction log – a single wire from a shell company in Chittagong, linked to a name that showed up in the BFIU’s “high‑risk PEP” list last year. The red flag was real, but the system had thrown *dozens* of similar alerts that turned out to be harmless relatives of the same politician. The audit team would see a mountain of false positives and wonder why we couldn’t separate wheat from chaff. The Hidden Problem: Bangladeshi PEP Data Isn’t Ready for Plug‑and‑Play Most off‑the‑shelf screening engines assume three things: Names are clean, Latin‑script, and consistently formatted. Sanctions lists are static, updated monthly. Local AML teams have a single, unified risk‑score thresh...

Why My First Synthetic Transaction Generator Crashed the AML Rule Engine – The 9‑Step Fix I Discovered in Dhaka

Image
AI-generated illustration Bangladesh, 09/23/2026. My phone buzzed at 02:17 AM. The AML dashboard at bKash lit up with a red fire‑alarm: 5,432 alerts in the last 30 minutes. The system was choking. Our false‑positive rate had spiked from 12% to a staggering 68% overnight. I stared at the numbers, heart pounding, wondering if the BFIU audit deadline next week would turn into a nightmare. The Hidden Problem: Synthetic Test Data Isn’t Synthetic Enough We had built a tiny test harness months ago – a handful of hard‑coded CSV rows that mimicked a few typical MFS transfers. It was enough to convince the team that the rule set was solid. But when the regulator demanded a stress‑test of the entire rule engine, the harness fell apart. It didn’t cover: Cross‑border remittance patterns that bounce between Rocket, Nagad, and local banks Layered structuring attempts just under the BDT 100,000 threshold Entity‑resolution edge cases where a single phone number appears on three different accounts In ...

Why Most BD Banks Miss Sanctions Hits: The Audit‑Night Tale That Changed My Screening Playbook

Image
AI-generated illustration Bangladesh, 02:17 am. My phone buzzed. An email from BFIU: ‘Immediate audit – 150 flagged transactions pending review’ . My team’s sanctions screen had just exploded with false positives – 1,200 alerts for a $5 million daily volume. The regulator was breathing down our necks, senior management was threatening budget cuts, and I could hear the coffee machine sputtering in the background. I was staring at a dashboard that looked like a fireworks show. That night, I realized we’d built the wrong kind of filter. The Hidden Problem Behind the Noise Most banks in Bangladesh start with a “plug‑and‑play” sanctions list from the UN and OFAC, then sprinkle a few country‑code checks. It sounds sensible until you factor in three local quirks: Bangladeshi Mobile Financial Services (MFS) push billions through BDT 100,000 thresholds, but the BFIU only requires detailed SARs for transactions above BDT 5 million . Names are often transliterated from Bangla to Latin script, pr...

Why My First End‑to‑End AML Model Crashed at a Bangladeshi Fintech—and the 7 Fixes That Saved the Day

Image
AI-generated illustration The Moment the Dashboard Went Red It was 09:15 on a humid Tuesday. My phone buzzed, the AML console lit up with 1,245 alerts in under a minute. The spike wasn’t random – the total flagged amount topped BDT 12 million, most of it clustered around a single merchant ID that processed 3,800 micro‑payments in the last 24 hours. My team stared, coffee gone cold, and the compliance manager whispered, “We’re about to get a BFIU audit tomorrow.” The room fell silent. That was the hook that pulled me out of my chair and into a frantic sprint to understand why the model we’d just deployed was blowing up our false‑positive budget. The Hidden Problem Behind the Numbers Most AML models I’ve seen in Bangladesh start with a textbook approach: train a gradient‑boosted tree on historic SARs, add a few rule‑based thresholds (BDT 100,000 MFS limit, high‑risk country flag), and call it a day. The reality is messier. Our fintech’s user base is 65 % unbanked, transaction velocity sp...