[ 02 ] · Work

ENGINEER
& BUILDER

Java Developer with 2 yrs 6 mos of production experience building high-volume payment processing systems at Citi. I specialize in Spring Boot, Spring Data JPA, and event-driven microservices — owning end-to-end delivery from development through production with strict SLAs.

Role
Senior Software Engineer
Stack
Java / Spring / Kafka
Based
Bengaluru, India
Mode
Remote · Open
Exp
2.5+ years

Experience.log

HCLTech (Client: Citi)

Feb 2024 — Present
Senior Software Engineer
Bengaluru, Karnataka
  • 01Architected transaction processing for APAC region with Kafka event-driven architecture, processing thousands of transactions daily with zero compliance incidents.
  • 02Engineered multi-country Payment service consuming and validating cross-border transactions across diverse regional formats, reducing manual reconciliation effort by 80%.
  • 03Owned Payment Acceptance System (PAS) transaction pipeline end-to-end, optimizing Kafka consumers and MongoDB queries to consistently meet 2-second per-transaction SLA.
  • 04Onboarded pre-sanctions screening service to the regional team, reducing dependency on core banking systems by offloading compliance checks to an independent microservice.
  • 05Designed Payer ID resolution service, reducing new country onboarding time from 2 days to 3-4 hours (85% faster), eliminating 95% of country-specific code changes.
  • 06Collaborated with product and compliance teams to translate regional regulatory requirements into technical specifications, delivering 4 quarterly releases on schedule with zero production defects.

Values.md

The principles behind the code — how I make tradeoffs when nobody's watching.

[01]

Boring tech, sharp fundamentals

Prefer well-understood building blocks (Spring, Kafka, Postgres) over novelty. Depth over breadth.

[02]

Explicit over clever

Readable code, typed contracts, obvious failure modes. Future-you will thank present-you.

[03]

Own the pager

The engineer who designs the system runs it in production. Feedback loops shape better systems.

[04]

Write it down

Diagrams, ADRs, runbooks. Distributed systems die in tribal knowledge.

Toolbox.yaml

01 Languages
Java 17SQLTypeScriptBash
02 Frameworks
Spring BootSpring CloudSpring SecuritySpring BatchJPA / Hibernate
03 Data & Messaging
Apache KafkaMongoDBMySQLRedis
04 Platform
DockerKeycloakEurekaSpring Cloud GatewayFeign
05 Practice
Event-driven designMicroservicesREST APIsTDD / JUnitObservability

Proficiency.chart

Java95%
Spring Boot92%
Microservices88%
Spring Security82%
Docker80%
Kafka78%
MongoDB75%
System Design72%

Beyond_Code

What I read, teach, and do when the IDE is closed.

Long-form writing

Publish deep-dives on Hashnode about Kafka, Spring Batch, and Feign — teaching is how I close my own gaps.

Mentoring juniors

Pair with early-career engineers on system design and Spring internals inside the team.

Reading

Currently working through Designing Data-Intensive Applications and Release It! for the second time.

Off-screen

Long walks, cricket, and slowly cooking through a South Indian recipe backlog.

Credentials

© 2026 Karthik KulkarniUTF-8 // Blueprint_1.0