Staff Software Engineer at Visa, Bengaluru

I build payment systems that stay up.

10+ years building backend systems in Java across payments, e-commerce and logistics. Today I work on card payment authentication at 1,000 TPS and 99.999% availability.

Try it: authenticate a card payment

A simplified simulation of the public EMV 3-D Secure flow I work on. Timings are illustrative.

CheckoutMerchant
3DS ServerMerchant side
Directory ServerCard network
ACSCard issuer
  • Pick a risk level and run the payment to see each step.

About

  • Now: Staff Software Engineer, Visa Secure
  • Leading: a team of 4 engineers
  • Before: Porter, Jio Platforms, FirstHive, eMart
  • Based in: Bengaluru, India

I work on the Directory Server for Visa Secure, the part of EMV 3-D Secure that decides how a card payment gets authenticated before it is authorized. It's a system where a few minutes of downtime means real people can't pay, so most of my time goes into reliability, performance and making releases boring.

Before Visa, I scaled Porter's core services to handle 10x load, built fulfilment microservices and a Kafka retry library for Ajio at Jio Platforms, and ran a campaign engine and loyalty platform handling millions of requests at FirstHive.

I enjoy mentoring engineers through design and code reviews, and I'm always happy to talk about distributed systems, payments or growing into a Staff role.

Things I've built

Visa

Release automation for a payments platform

Releases on a 99.999% availability platform were slow and manual. I led a team of 4 to build an internal deployment tool that standardizes every release step and makes rollbacks predictable.

Release effort down 40%.

Porter

Scaling core services 10x

As part of the Tech Scalability pod, I profiled the hot paths, removed bottlenecks and partitioned large PostgreSQL tables that were slowing down critical queries.

10x load handled; query latency down 30%.

Jio Platforms

Kafka retry library

Async messages between fulfilment services were getting lost on transient failures. I introduced Kafka-based messaging and a reusable retry library with backoff and failure handling.

Adopted across 6 services; message reliability up 25%, downtime down 30%.

Side project

Distributed rate limiter on Redis

A token bucket rate limiter that keeps request counts consistent across many app instances by doing the check-and-decrement atomically in Redis. Try the idea below: the bucket holds 5 tokens and refills one per second.

Token bucket
Tokens available: 5 of 5

See my code on GitHub

Experience

    • Build the Directory Server for EMV 3-D Secure, which authenticates and authorizes card-not-present transactions between merchants and issuers.
    • Engineer a mission-critical platform processing 1,000 TPS at 99.999% availability on Java, Spring Boot, Kafka, Redis, gRPC and Kubernetes.
    • Lead a team of 4 engineers; built a deployment tool that cut release effort by 40%.
    • Scaled core backend services to handle 10x the previous load by finding and fixing system bottlenecks.
    • Implemented PostgreSQL table partitioning, cutting query latency by 30%.
    • Led 6 Spring Boot microservices for Ajio fulfilment across B2C, B2B and Grocery, improving shipment management efficiency by 35%.
    • Introduced Kafka and a retry library adopted across 6 services: 25% better message reliability, 30% less downtime.
    • Built the Label Service from scratch, cutting invoice and label processing time by 40%.
    • Raised pack service throughput by 50%; improved incident response time by 40% with centralized monitoring.
    • Star Performer FY 2023-24 (A* rating).
    • Led the campaign module of a customer data platform serving millions of requests; Java concurrency made campaign runs 30% faster.
    • Built WorldSwipe, a loyalty platform for high-volume points accrual and redemption.
    • Integrated payment gateways (Razorpay, Paytm, Stripe) and OAuth 2.0; cut API response times by 50% with Redis caching.
    • Built Java REST services for a CRM and client support-ticket platform on MySQL.
    • Optimized SQL queries for a 30% performance gain; set up JUnit testing and SonarQube.

Toolkit

Languages and frameworks

Java, Kotlin, Spring Boot, Hibernate/JPA, JUnit, Mockito

Distributed systems

Microservices, Kafka, event-driven design, REST, gRPC, caching, rate limiting, circuit breakers

Payments and security

EMV 3-D Secure, payment authentication and authorization, payment gateways, OAuth 2.0

Data

PostgreSQL, MySQL, Oracle, MongoDB, Redis, Elasticsearch

Cloud and delivery

AWS, Docker, Kubernetes, CI/CD, deployment automation

Observability

Prometheus, Grafana, ELK, Datadog

Let's talk

I'm happy to chat about Staff, Lead and Principal backend roles in payments and fintech, or about distributed systems in general.