Software Engineer · Distributed Systems · Data Engineering
I build distributed systems that move data at scale. Real-time pipelines, high-throughput APIs, and the infrastructure that keeps them reliable.
Indianapolis, IN · Open to relocation
Apache Kafka + Flink pipelines ingesting hundreds of millions of events daily into schema-driven, analytics-ready Iceberg tables on S3.
Fault-tolerant, multi-region Java microservices with circuit breakers, event partitioning, and 99.99% uptime across sustained production workloads.
Spring Boot REST APIs handling 5K+ RPS with Redis cache sharding that cuts database load by 50%, built for reliability under sustained traffic.
End-to-end data platforms: event modeling, schema consolidation, download APIs, and analytics infrastructure that scales to petabyte workloads.
I'm a Software Engineer with 5+ years building the infrastructure that makes data move: reliably, at scale, and in real time. At Genesys, I've engineered systems processing hundreds of millions of events per day, APIs that handle 5K+ requests per second, and testing infrastructure that went from zero to production-grade in weeks.
My work spans the full data path: from Kafka topics and Flink jobs to Iceberg tables and REST APIs that serve data to end users. I care deeply about correctness, fault tolerance, and the operational rigor that makes systems boring, which is exactly what production needs.
I recently published in InfoQ on schema proliferation in Kafka and Flink pipelines, and I'm an active contributor to Apache Flink CDC. At Genesys, I've mentored engineers, led cross-functional delivery of 10+ features, and held a 15-minute P0/P1 SLA.
Reference implementation for discriminator-based schema consolidation in Kafka and Flink pipelines. Collapses twelve schemas into one consolidated Avro record, enabling single filtered queries over Apache Iceberg on S3. Companion to the InfoQ article on schema proliferation.
// Discriminator-based union field
{
"name": "standardRideAttributes",
"type": ["null", {
"type": "record",
"name": "StandardRideAttributes",
"fields": [
{ "name": "vehicleClass",
"type": "string" },
{ "name": "surgeMultiplier",
"type": "double" }
]
}],
"default": null
}
Flink pipeline writing profile change events to an append-only Iceberg table. Historical state reconstructed at query time via SQL window functions.
Clinic website deployed on AWS enabling patients to find nearby doctors and book appointments. Java backend with MySQL via JDBC.
Order microservices using Spring Boot and JPA with PostgreSQL. Swagger docs, Docker containerized, Log4j logging.
Deep autoencoder using U-NET for hair/skin segmentation with Keras, tested on Celeb-A dataset with data augmentation and transfer learning.
Demo vehicle using Renesas Microcontroller with ultrasonic sensors. Proximity alerts via CubeSuite++, with AWS storing messages to nearby vehicles.
Explores schema proliferation in event-driven systems and presents a discriminator-based consolidation approach for scalable Kafka and Flink pipelines.
Read on InfoQFixed duplicate record issues in Iceberg sinks by redesigning checkpoint commit behavior for correct sequencing and delete handling.
View PR #4360Cal Poly Pomona Graduate Student Welcome
Coding Competition for Gamers