CASE STUDY / 01
Anti-money laundering supervision platform
Built a suspicious-account reporting data-entry from scratch inside an existing platform, then led the migration of the whole application to Java 21 and JBoss EAP 8.
- Role
- Technical Lead
- Context
- Banking · Central bank
- Period
- 2024 — present · Ongoing
A professional experience described through my own contribution. Client code and documentation are not published on this page.
My contribution at a glance
- Built from scratch the data-entry module for reporting suspicious accounts (money laundering), inside an existing multi-module application
- Turned the bank’s requirements into a technical implementation plan, advising on the technical options
- Designed PDF generation and bulk data-import pipelines (Thymeleaf + Flying Saucer, Apache Commons CSV)
- Led the migration of the whole application, all 7 interdependent modules, from JBoss 7 to JBoss EAP 8 / Java 21
- Delivered a system in active use, with 500+ transactions processed in UAT with zero data integrity violations
Building and modernising an AML platform as the only developer.
Technical Lead on a regulatory compliance platform for Anti-Money Laundering supervision at a central bank. I built its suspicious-account reporting data-entry from scratch and later led the migration of the whole application.
Understanding the system before touching it
I joined this project as the only developer, on an existing multi-module application. Before adding anything, I had to reverse-engineer the codebase — reconstructing the database schema, the integration points and the business logic embedded in it — to understand what the system already did and where the new module would fit.
Decisions I had to make alone
Three choices stand out.
- PDF generation. For regulatory documents, instead of building them procedurally, I switched to a rendering-based approach with Thymeleaf and Flying Saucer. It turned out to be far easier to maintain and to demo to non-technical stakeholders.
- Bulk data handling. I adopted Apache Commons CSV rather than a custom parser, after weighing the trade-off between control and maintenance cost.
- Platform migration. After building the data-entry, I led the migration of the entire application, not just my module, from JBoss 7 to JBoss EAP 8 on Java 21. Untangling classloader conflicts and the Jakarta namespace changes across seven interdependent modules was the real cost of the job.
Working directly with the client
The bank’s representatives told me what they needed and I built the technical implementation plan, giving technical advice along the way. There was no product team between us — I presented mockups and live demos directly, translated technical trade-offs into plain language, and adjusted the design based on their feedback each time.
Where it stands
The system has been in active development since 2024 and has processed over 500 transactions in user acceptance testing with zero data integrity violations.