Design for change
Frequent business variation belongs behind clear configuration boundaries and reusable components where that makes sense.
Lead Backend Engineer · Distributed Systems · Financial Platforms
12 years across digital payments, banking, lending, telecom and enterprise software. Current work centres on configurable financial platforms, partner integrations, performance engineering and production reliability.
Engineering approach
Slow APIs are not always database problems. Threads, caches, logging, downstream services and JVM behaviour can all shape latency. The approach is to establish the evidence first, then change the system.
Frequent business variation belongs behind clear configuration boundaries and reusable components where that makes sense.
Traffic, JVM, threads, database, cache, logging and downstream latency provide a better basis for decisions than assumptions.
Good production design should be observable, recoverable and practical for the team operating it at 2 AM.
Selected work
JVM analysis, multi-level caching, database optimisation and asynchronous processing improved throughput while reducing the application footprint.
Thread dumps and Grafana exposed request threads waiting in the logging path during peak traffic.
A small scheduling model removed manual activation and deactivation from a recurring campaign workflow.
A potential Redis expiry stampede was addressed with simple proactive cache warming rather than distributed locking.
Development workflow
CLI-based AI tools are used as part of the development loop for coding, exploration, refactoring, debugging, documentation and code review. Depending on the task, that includes Claude Sonnet, Haiku or Opus, ChatGPT, and open models such as GLM and Kimi. Architecture, trade-offs and final code remain human decisions.
Current scope
Digital payments · cashback · lending · NPS · referral programmes · banking integrations