Skip to content

Lead Software Engineer · Robi Axiata

I build event-driven systems wherebeing wrong costs money.

Eight years on telecom billing, mobile financial services and utility platforms — the kind of software where a dropped message means someone is not billed, or is billed twice. Currently leading a team of four on a pipeline that generates around two million invoices per cycle.

8+
years shipping
~2M
invoices / cycle
4
engineers led
3
domains: telco, fintech, utility

Case Studies

Most of this work is under NDA, so there are no screenshots or repositories here. What there is instead: the architecture, the decisions, and the alternatives I turned down.

How I Work

01

Absence of an error is not evidence of progress

The worst production failure I have owned did not throw. A Kafka producer stalled silently and a billing run simply stopped. Anything that can hang needs a clock on it, so an invisible wedge becomes a loud, catchable failure.

02

Model the lifecycle, not the current state

A boolean tells you where something is. It cannot tell you how it got there or who authorised it. In billing, ledgers and utility connections, that history is the part auditors, courts and customers actually ask about.

03

Contracts belong in one place

Six services drifting apart on message shape is how an event-driven system rots quietly. One shared library owning topic names, encoding and DTOs turns a breaking change into a compile error instead of a 3am incident.

04

Choose the boring tier deliberately

Reactive where the work is I/O and back-pressure is real. A monolith where one team shares one database. Complexity is a budget — spend it where the problem is, and be able to say why you did not spend it elsewhere.

Stack

Things I have shipped and operated in production — not a list of everything I have read about.

Core
Java 21KotlinSpring Boot 3.xSpring BatchSpring Security
Distributed
Apache KafkaRabbitMQSpring Cloud GatewayWebFluxShedLock
Data
OraclePostgreSQLClickHouseRedisFlywayLiquibase
Platform
DockerKubernetesHelmArgoCDGitLab CISonarQube
Frontend
ReactAnt DesignTypeScript

Happy to talk about backend architecture, event-driven systems, and telecom or fintech platforms.