Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

██████╗ ██╗  ██╗ █████╗ ██████╗  █████╗ ███╗   ██╗██╗████████╗██╗  ██╗ █████╗ ██████╗  █████╗ ███╗   ██╗
██╔══██╗██║  ██║██╔══██╗██╔══██╗██╔══██╗████╗  ██║██║╚══██╔══╝██║  ██║██╔══██╗██╔══██╗██╔══██╗████╗  ██║
██║  ██║███████║███████║██████╔╝███████║██╔██╗ ██║██║   ██║   ███████║███████║██████╔╝███████║██╔██╗ ██║
██║  ██║██╔══██║██╔══██║██╔══██╗██╔══██║██║╚██╗██║██║   ██║   ██╔══██║██╔══██║██╔══██╗██╔══██║██║╚██╗██║
██████╔╝██║  ██║██║  ██║██║  ██║██║  ██║██║ ╚████║██║   ██║   ██║  ██║██║  ██║██║  ██║██║  ██║██║ ╚████║
╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝

> Building the rails that move money.

Typing SVG


LinkedIn Gmail Portfolio Open to Work


whoami

package main

type Engineer struct {
    Name        string
    Role        string
    Location    string
    Speciality  []string
    CurrentWork string
    Availability string
}

func main() {
    me := Engineer{
        Name:     "Dharanitharan P",
        Role:     "Backend Engineer",
        Location: "Bengaluru, Karnataka 🇮🇳",
        Speciality: []string{
            "Payment Orchestration",
            "Distributed Systems",
            "High-Throughput Pipelines",
            "Fintech Infrastructure",
        },
        CurrentWork:  "PayFin · ChitChaat @ Antique Network",
        Availability: "Open to high-impact backend roles",
    }
    _ = me
}


$ cat /metrics/production

🚀 📊 Metric 💬 Context
1000 TPS sustained Payout orchestration engine
⏱️ < 1s API latency p95 Optimized internal services
📨 10,000+ events/sec ChitChaat messaging backend
🏦 4 payment rails IMPS · NEFT · RTGS · UPI
🔁 100× throughput Payout system scaling
🔒 Zero race conditions Redis distributed locking

$ ls -la /experience

📂 Antique Network Solutions — Backend Engineer  Feb 2025 → Present

PayFin · Payout Infrastructure

✦ Architected multi-bank payout orchestration with cost-aware routing + automated failover
✦ Designed liquidity & prefunding engine — dynamic capital allocation using real-time signals  
✦ Scaled throughput: 10 TPS → 1000 TPS (horizontal scaling + async pipelines + query optimization)
✦ Built concurrency-safe wallet with Redis distributed locking + PostgreSQL double-entry ledger
✦ Sliding-window rate limiter enforcing per-bank TPS contracts without upstream SLA breaches

PayFin · Pay-in Systems

✦ Scaled checkout to 200 TPS — async processing, parallelized bank calls, webhook optimization
✦ Unified abstraction layer across CUB, Axis, Jio (UPI + Cards + Netbanking)
✦ Payment routing engine with success-probability ranking across payment methods

ChitChaat · CPaaS Backend

✦ High-throughput messaging: 10K+ events/sec via Kafka + gRPC (SMS, WhatsApp, RCS)
✦ Provider failover + credit-based routing for reliable delivery under instability

Go Gin Java Spring Boot Kafka gRPC Redis PostgreSQL

📂 Indusspay / Primeindus Fintech — Software Engineer  Jan 2024 → Jan 2025
✦ Built UPI pay-in & payout APIs with idempotency guarantees + reconciliation hooks
✦ Designed webhook-driven event flows for real-time merchant state synchronization
✦ Retry & failover mechanisms with structured logging across payment callbacks
✦ Optimized API performance via indexing, connection reuse, and caching strategies

Go Java PostgreSQL Redis REST APIs


$ cat /stack/core

Languages

Go Java TypeScript JavaScript SQL

Infrastructure & Data

PostgreSQL Redis Kafka Docker

Frameworks

Gin Spring Boot gRPC React


$ cat /architecture/principles

# dharanitharan.yaml — Engineering Philosophy

correctness_over_cleverness:
  rule: "Idempotency, reconciliation, and failure handling are non-negotiable guarantees."
  not: "Add-ons or nice-to-haves."

measure_before_optimize:
  rule: "Latency distributions and system metrics drive every performance decision."
  not: "Gut feeling or premature abstraction."

design_for_failure:
  rule: "Every system is built assuming downstream failures, retries, and partial success."
  not: "Happy-path only."

patterns_used:
  - Saga Orchestration
  - CQRS
  - Circuit Breaker
  - Sliding-Window Rate Limiter
  - Outbox Pattern
  - Distributed Locking (Redis)
  - Double-Entry Ledgering
  - Dead Letter Queues

$ git log --oneline /projects

Project Domain Impact Stack
PayFin Payout Engine Payment Infra 1000 TPS · 4 rails · 0 SPOFs Go · Redis · Kafka · PG
Pay-in Checkout Payment Infra 200 TPS · 3+ acquirers Go · Next.js · Redis
Wallet & Liquidity Engine Payment Infra Strict consistency · Auto-rebalance Go · Redis · PG
ChitChaat CPaaS Communication 10K msg/sec · 3 channels Go · gRPC · Kafka
UPI Pay-in / Payout APIs Payment Infra Idempotent · Zero manual recon Go · Java · PG
Transactional Messaging Communication Multi-provider failover · DLQ Go · Kafka · Redis

$ neofetch


┌─────────────────────────────────────────────────────────┐
│                                                         │
│   "I don't just write code.                             │
│    I engineer systems that move real money,             │
│    stay correct under failure,                          │
│    and scale without apology."                          │
│                                                         │
│                              — Dharanitharan P          │
└─────────────────────────────────────────────────────────┘

Profile Views

About

Profile redme.md

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors