Welcome—and thanks for being here. I'm a Staff Software Lead, with 15+ years in Java. For the last few years, I've lived in event-driven, distributed systems.
I build real-time platforms for financial infrastructure—streaming on Apache Kafka and Apache Flink, handling strict ordering, exactly-once processing, watermarking, and schema evolution with Avro.
I've built reconciliation pipelines for core banking, where a lost event isn't a bug—it's a financial discrepancy. I also led one platform's shift to a SaaS-ready, multi-tenant product, deployed globally.
I own the full lifecycle: Kafka topology, consumer lag, Flink state tuning, CI/CD for streaming jobs, plus the surrounding architecture—Cassandra, Oracle, Spring Boot.
Low-level design matters to me: clean class structures, solid interfaces. Systems fail at the seams, so I weigh trade-offs constantly—consistency vs. availability, throughput vs. latency.
I stay hands-on, shipping code and solving hard consistency problems, while also leading teams and mentoring engineers.
Check this out : Technical notes
Flink Heartbeat of TaskManager Timed Out: Causes and Fixes
Fix the Flink 'Heartbeat of TaskManager with id ... timed out' error. Real causes — GC pauses, OOMKilled pods, network saturation — and the exact config fixes.
Kafka TimeoutException: Expiring N record(s) — Cause and Fix
Kafka producer failing with TimeoutException: Expiring N record(s): ms has passed since batch creation? What delivery.timeout.ms really does — and the fix.
Kafka InconsistentClusterIdException: Cluster ID Mismatch Fix
Fix kafka.common.InconsistentClusterIdException: Cluster ID doesn't match stored clusterId in meta.properties — the Docker volume cause and the real fix.
Flink: Could Not Find Any Factory for Identifier 'kafka'
Flink throws ValidationException: Could not find any factory for identifier 'kafka' in the classpath. Here is why SPI discovery fails and how to fix it.
NoClassDefFoundError vs ClassNotFoundException in Java
NoClassDefFoundError and ClassNotFoundException look interchangeable and are not. Read the frames, find the real cause, and stop the repeat throws.
Flink: Cannot Map Savepoint State for Operator — Fix It
Flink's "Cannot map checkpoint/savepoint state for operator to the new program" error breaks upgrades. Here's why it happens and how to fix it with stable uid().
Flink Checkpoint Expired Before Completing: Causes & Fixes
Fix the Apache Flink 'Checkpoint expired before completing' error. Learn why checkpoints time out under backpressure and large state, and the exact config to stop it.
Flink NoResourceAvailableException: Could Not Acquire Minimum Resources
Fix Flink's NoResourceAvailableException 'Could not acquire the minimum required resources' — slot arithmetic, slot sharing, and the config that actually solves it.