Posts

Why Most AML Teams Drown in False Positives – The 9‑Step Rescue I Built After a BDT 8 Million Alert

Image
AI-generated illustration High‑Stakes Hook It was 02:17 AM on a rainy Thursday in Dhaka. My phone buzzed – a senior manager from the compliance desk shouted, “We’ve got a BDT 8 million structuring alert on the MFS feed!” I ran to my laptop, opened the SAR queue, and saw 1,342 rows of red‑flagged transactions, all tagged “potential structuring.” The team was already on overtime; the regulator was breathing down our necks. Within minutes the whole AML desk was buried under a mountain of noise. No one could tell which line, if any, was the real threat. That night taught me a painful truth: false positives are not just annoying alerts – they are productivity assassins. They steal analyst hours, inflate audit costs, and, worst of all, mask the one true signal that could save the bank from a $10 million fine. The Hidden Problem: Why Standard Rules Fail in Bangladesh Most banks and fintechs in Bangladesh still rely on the classic “threshold‑plus‑velocity” rule set that the BFIU recommended ba...

Why Most Rule‑Based AML Alerts Miss Bangladesh’s Biggest Structuring Rings – My 12‑Step ML‑Hybrid Fix

Image
AI-generated illustration High‑Stakes Hook It was 02:13 am on a humid Tuesday. My dashboard lit up with BDT 27 million of inbound MFS transfers all flagged as ‘low‑risk’. The BFIU audit team was on the phone, demanding a justification before the next morning’s regulator‑roundtable. My heart raced. I knew the rule‑set that raised the alert was a three‑day velocity check on accounts crossing BDT 100,000. It had missed the elephant in the room – a layered structuring ring using bKash and Nagad wallets, each transaction just under the threshold, hopping across five accounts before landing in a shell company. I had 45 minutes to prove the system could catch it. The Hidden Problem Bangladesh’s AML ecosystem leans heavily on static thresholds and simple rule chains. The BFIU guidelines still cite “ any transaction exceeding BDT 100,000 in a single day must be reported ”. In practice, most banks and MFS providers translate that into a handful of SQL WHERE clauses. The result? Rule‑fatigue ....

Why Most Real‑Time MFS Dashboards Miss the Biggest Fraud Rings – My 9‑Step Fix

Image
AI-generated illustration High‑Stakes Hook I was staring at a blinking red line on our monitoring console at 02:13 AM. The alert said: BDTU 12 million structured across 4,217 Nagad wallets in 48 hours . My heart raced. The batch job that should have caught it two days ago was still processing 10 million rows. The regulator’s phone was about to ring. The Hidden Problem In Bangladesh, most MFS teams still rely on nightly batch jobs. They dump every transaction into a Hadoop lake, run a velocity check at 02:00 AM, and hope the BFIU’s 100,000 BDT threshold rule will catch anything. In practice, the lag creates a blind spot where structuring rings slip through, SARs pile up, and auditors point fingers. Why does it happen? Batch windows are too long – 24 hours of data is a lot to scan. Rules are static – they don’t adapt to new patterns like “burst‑and‑hide”. Alert fatigue – analysts drown in 300+ low‑value hits per day. Technical Breakdown & Logic Flow I decided to scrap the nightly bat...

Why Most Circular‑Chain Alerts Miss the Mark: My 9‑Step Forensic Playbook for Nagad Wallets

Image
AI-generated illustration High‑Stakes Hook It was 02:17 am on a rainy Thursday in Dhaka. My phone buzzed with an urgent BFIU notice: BDT 27 million moving through seven Nagad wallets in a perfect loop, each hop under the BDT 100,000 MFS velocity threshold . The audit team was breathing down my neck. If we didn’t surface the chain before the regulator’s next checkpoint, we would be on the front page of the daily financial news. I stared at the raw CSV export – rows of sender_id, receiver_id, amount, timestamp . Nothing screamed “suspicious”. No single transaction breached the 100k rule. No classic structuring pattern. Yet the regulator’s red flag was real. The Hidden Problem Most of us build circular‑chain detectors that start with a simple velocity check or a single‑node repeat . In Bangladesh that works for obvious structuring, but it collapses when criminals spread the amount across many tiny hops. The BFIU guidelines (Section 3.2.4) explicitly warn: “ circular transfers below the...

Why 3‑Word Service Worker Mistakes Keep Bangladeshi PWAs From Going Live – My 9‑Step Rescue

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 10 pm on a rainy Thursday in Gulshan. My phone buzzed: a client from Chittagong had just dropped a 2‑digit rating on the install‑prompt test they ran on their new online bakery shop. ‘The add‑to‑home button never shows up,’ the email read, followed by a screenshot of a blank Chrome UI. I was staring at a site that loaded in 3.2 seconds on my 4G dongle, but the PWA never felt like a PWA. The Hidden Problem Most freelancers I know think “just drop a service‑worker file and call it a day.” The reality in Bangladesh is harsher. Data caps, 3G‑only neighborhoods, and cheap prepaid plans mean users will abandon a site that asks for a network request twice before showing the install prompt. The culprit? A three‑word typo in the navigator.serviceWorker.register call that silently fails, plus a cascade of logic errors...

The $1,750 Pricing Slip I Took on My First PWA and the 8 Lessons That Saved My Freelance Reputation

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 → Real‑World Hook I was on a shaky Zoom call with the owner of a boutique clothing store in Gulshan. She stared at her laptop screen, her brow furrowed. ‘My customers drop off after three seconds,’ she said, pointing at the Google Analytics bounce rate: 73% . She had just paid BDT 120,000 for a “quick fix” that never left the browser cache. She asked me, “Can you make it a PWA? I need offline checkout for the rainy season.” I said yes, but I also said my standard rate for a full‑stack PWA was US$2,500 . She hesitated, then offered US$800 because she was a small SME and her monthly internet bill was barely BDT 1,200 . I swallowed my pride, signed the contract, and started coding. The Hidden Problem Most freelancers in Bangladesh think: “If I lower the price, the client will be happy and I’ll get a testimonial.” That’...

Why Most BD Banks Trip Over Sanctions Screening: The 7 Mistakes I Fixed After a $3 Million Alert

Image
AI-generated illustration High‑Stakes Hook It was 02:17 am on a humid Tuesday. My phone buzzed – the BFIU had just emailed a provisional SAR on a single transaction that moved BDT 3,120,000 from a Dhaka‑based corporate account to a shell company in the UAE. The red‑flag came from our sanctions‑screening engine, but the alert had been dismissed two weeks earlier as a false positive. The regulator was now demanding a full audit trail, and my team was scrambling to prove we hadn’t missed a sanctioned party. The Hidden Problem Most banks in Bangladesh treat sanctions screening like a checkbox. They load a static OFAC list, run a fuzzy match, and hope the result is clean. In reality the list changes daily, local counterparties have multiple spellings, and the BFIU expects a documented risk‑based approach. The mistake that cost us the $3 million alert was not the list itself – it was how we integrated it. Technical Breakdown & Logic Flow We broke the process into four logical layers: Dat...

Why Most Bangladeshi PWAs Stall at Install Prompt: The 7‑Step Fix I Discovered

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 → Real‑World Hook It was 3 am in my tiny Dhaka flat. My phone buzzed: "Client: our checkout page crashed on 4G, sales down 12% overnight" . I grabbed my laptop, opened the live site – a modest WordPress shop selling handmade jam. PageSpeed flagged 3.9 seconds on 4G, and the "Add to Home Screen" banner never showed. The client had spent BDT 25,000 on a Google Ads burst that day and saw zero conversions. My first instinct was to blame the theme. My second instinct? I’d seen this exact symptom before – a service worker silently failing. I knew the fix could turn that jam shop into a offline‑first PWA that loads in 800 ms on 3G, and the install prompt would finally appear. The question was: how? The Hidden Problem Most indie devs in Bangladesh treat service workers like a fancy after‑thought. They copy...

Why My First WhatsApp Business Auto‑Responder Crashed a Dhaka Grocery – The 7‑Step Fix I Built with Python

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 → Real‑World Hook It was 9 am on a rainy Tuesday. My client, a family‑run grocery on Mirpur‑10, opened WhatsApp Business and started getting 120 messages per hour. Every single query bounced back with "We are currently unavailable". Their sales dropped 30 % in two days. I was on a Fiverr call, coffee cooling, and the client’s inbox was exploding. The Hidden Problem Most Bangladeshi SMEs think a “quick reply” setting in the app is enough. They ignore three brutal facts: Network jitter on 3G/4G means latency spikes above 5 seconds. WhatsApp Business API costs per message, so a blind auto‑reply can burn BDT 5,000 in a day. Message context is lost – a “thanks” to a price inquiry looks like spam. I learned that the real issue is missing a lightweight, stateful responder that respects rate limits and understands conv...

Why My First PageSpeed Bot Missed 30% of Slow Pages – The 6‑Step Fix I Built in Python

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 → Real‑World Hook I was staring at my inbox on a rainy Saturday in Gulshan, Dhaka. A new client – a boutique tea‑shop that sells on Daraz – had just pinged me. Their WordPress store was loading in 9.8 seconds on a 3G connection, and the Google PageSpeed Insights score was a pitiful 42. They threatened to drop the site if I didn’t shave off at least 3 seconds within a week. My rate was $25 hour, and I had 12 hours left before the deadline. Panic? Sure. But also a spark: could I automate the audit so I never missed a slow page again? The Hidden Problem Most freelancers treat a PageSpeed audit as a one‑off checklist. Run Lighthouse, copy the suggestions, hand‑write a report, send it. That works for a single site, but it collapses when you juggle 5‑10 clients, each with dozens of URLs, localized assets, and flaky Banglade...