Skip to content
Al Shakib E Elahi
Dhaka, BangladeshFintech & Trade Finance Systems

AL SHAKIB E ELAHI

Building software that survives production.

Trade finance, payment rails and the services underneath them, where an edge case is somebody's rent.

Selected workTrade Finance

I build the parts of a product that cannot fail quietly. Trade finance messaging, payment rails, the reconciliation job nobody sees. Most of the work is deciding what happens when something breaks - because it will, and the answer should already be written down. 

Projects delivered end to end
100+Projects delivered end to end
Years shipping systems into production
3+Years shipping systems into production
Banks running trade finance software I build
2Banks running trade finance software I build
Countries reached through integrated payment rails
6Countries reached through integrated payment rails
Payment railsCore bankingDistributed systemsWorker servicesEvent-driven architectureIdempotencyReconciliationObservability
01Current work · Leads Corporation Ltd.

A payment message is either structurally valid, or it is an incident with a customer attached.

SwiftFusion carries trade finance onto the SWIFT ISO 20022 standard inside BankUltimus - Spring Boot and Angular 19 over a Kafka backbone, with a Rust orchestrator holding the multi-service transactions together. It runs in two bank environments.

Ordering bankMT / ISO 20022SwiftFusionSpring Boot · Angular 19ISO 20022 schema validationBeneficiarySettlementAPACHE KAFKA · EVENT BACKBONETwo-Phase CommitBlocking, trusted participantsSagaChoreographed, compensatingHybrid coordinationPer-workflow tradeoffRUST · ACTIX WEB ORCHESTRATORgRPC between services · Prometheus, Grafana, Elasticsearch across all of itpacs.008
Messaging standard, validated at the boundary
ISO 20022Messaging standard, validated at the boundary
Bank environments running it - NRBC, Southeast
2Bank environments running it - NRBC, Southeast
Coordination models: 2PC, Saga, hybrid
3Coordination models: 2PC, Saga, hybrid

Built for banking clients - the interface and message contents are covered by client confidentiality. The diagram below describes the architecture at the level already published in my CV, and shows no institution's data.

02Product · SaaS product

One employee record. Four audiences with completely different rights.

SovoHR is a full HR ERP - employment, payroll, attendance, rota scheduling, compliance and recruitment - delivered as SaaS across three independently deployed surfaces. Laravel underneath, React on Vite in the portal, Next.js on everything public.

SovoHR organisation dashboard showing quick actions, upcoming holidays and subscription status
  • portal.sovohr.comOrganisation portal · React · Vite
  • sovohr.comMarketing · Next.js
  • jobs.sovohr.comJob portal · Next.js

Modules that have to agree with each other.

Attendance feeds the rota, the rota feeds payroll, and payroll is the number somebody disputes. Corrections are recorded as attributed adjustments rather than edits in place - which is also exactly what a compliance audit asks for.

  • Employee management - records, education history and work experience in one profile
  • Payroll processing with attributed, auditable adjustments
  • Attendance tracking with an hourly weekly grid and shift coverage
  • ROTA and shift scheduling, including shift-change request workflows
  • Right-to-work checks, document management and sponsor compliance reporting
  • Recruitment and ATS feeding a public job portal on its own domain
SovoHR employee list with records, departments, designations and active status

Employee management - records, education and work history in one profile.

SovoHR weekly rota shown as a 24-hour grid with shift coverage per day

Rota scheduling as a 24-hour weekly grid, with shift coverage per day.

03Selected work

More launched systems still carrying real users.

Payments, bookings, contest infrastructure and a talent network. Most of them move money, all of them are launched, and each has a full write-up covering the architecture and what I would change.

04Experience

Three years, and the shift from writing features to owning uptime.

From real-time messaging as an intern, to leading agency delivery across a hundred-plus builds, to the trade finance team of a core banking platform.

  1. Feb 2025 - Present

    Junior Software Engineer

    Leads Corporation Ltd. - Core banking & financial software - Mirpur-14, Dhaka

    Current
  2. Jul 2024 - Jan 2025

    Software Engineer & Team Lead

    SparkTech Agency - Betopia Group - Banasree, Dhaka

  3. Dec 2023 - Jun 2024

    Junior Software Engineer

    SparkTech Agency - Betopia Group - Banasree, Dhaka

  4. Sep 2023 - Nov 2023

    Software Engineer Intern

    SparkTech Agency - Betopia Group - Banasree, Dhaka

05How I work

Opinions earned from things that broke.

None of these are novel. All of them cost something to learn.

  1. 01

    Read the spec twice

    Most production incidents are not clever failures. They are a field that meant something slightly different than assumed, discovered six months later at volume. An hour with the specification is cheaper than a week with the postmortem.

  2. 02

    Make failure a state, not an exception

    Anything crossing a network will fail partway through. If a partial failure leaves a queryable, resumable record, it is an operations task. If it leaves nothing, it is an incident and a customer support ticket.

  3. 03

    Idempotency is not optional

    Every external system will eventually deliver the same event twice. Handlers keyed on the caller's reference converge on one outcome no matter how many times they run. Design for the retry before you need it.

  4. 04

    Boring where it counts

    Novelty belongs in the parts of a system nobody's money depends on. In the settlement path, prefer the technology with the longest, dullest track record.

  5. 05

    Write for the engineer who inherits it

    Code is read far more often than it is written, usually by someone under time pressure who was not in the room for the decision. Leave the reasoning behind, not just the result.