AkshadipsinhBackend · Distributed Systems
Currently buildingHelios — distributed job scheduling

Building reliable systems for the real world.

I'm a Computer Science engineering student focused on backend engineering, distributed systems, concurrency, and performance.

Ahmedabad, Gujarat, IndiaB.Tech CSE · PDEU · 2023–2027CGPA 9.58 / 10
cluster_topology.svg
etcdCAS leader electionLEADERlease · fencing tokenKafkajobs topicheartbeatpublishworker.1worker.2worker.3PostgreSQLSKIP LOCKED claims
dispatchmessage flowactive
  • Java 21
  • Spring Boot 3
  • etcd
  • Kafka
  • PostgreSQL
  • Redis
  • Docker
  • SQL
  • C++
  • Python
  • Concurrency Control
  • Fault Tolerance
01 — Selected work

Featured Projects

Backend systems built around concurrency, coordination, and failure. Each one starts from a hard correctness problem and ships with the reasoning and the measurements behind it.

01 / HeliosMay 2026 – Present
etcdLEADERlease · fencing tokenKafkaworker.1worker.2worker.3PostgreSQLSKIP LOCKED claims
Java 21Spring Boot 3etcdKafkaPostgreSQLDocker

Helios

In development

Distributed Job Scheduler

A multi-node cron scheduler that elects a single leader over etcd and dispatches jobs through Kafka, guaranteeing that a scheduled job is claimed and executed exactly once — even while nodes crash or get partitioned.

Core challenge

Guarantee at-most-one active leader and exactly-one execution of each scheduled job across nodes that can crash, stall, or lose network connectivity in the middle of a dispatch.

Key decisions

  • 01

    etcd compare-and-swap leader election

    Leadership is claimed with an etcd CAS transaction on a single key backed by a lease. A heartbeat keeps the lease alive, and a node that loses the lease stops dispatching immediately — so there is at most one active leader at any instant.

  • 02

    Fencing tokens against stale writes

    Every leadership epoch carries a monotonically increasing token. Writes stamped with a token older than the last accepted one are rejected before they can reach the data layer, so a demoted or partitioned leader can never corrupt state.

  • 03

    Kafka dispatch + SKIP LOCKED claiming

    The leader publishes due jobs to a Kafka topic; workers consume independently and claim their work with SELECT … FOR UPDATE SKIP LOCKED. Two workers can never lock and execute the same pending job.

  • 04

    Transactional outbox & dead-letter handling

    Job-state changes and their dispatch records are written in a single database transaction to an outbox table, giving atomic DB-then-broker delivery. Jobs stranded after a crash are recovered asynchronously, and tasks stuck in repeated-failure loops are quarantined in a dead-letter queue.

active leader at any instant
1active leader at any instant
execution per scheduled job
Onceexecution per scheduled job
dispatch & outbox poll loop
5sdispatch & outbox poll loop
REST API for jobs & cluster state
CRUDREST API for jobs & cluster state
02 / AtomicXApr. 2026 – Jul. 2026
ACCOUNT AsenderACCOUNT BreceivertransferLOCKCHECKACTDEBIT−100.0000 · account ACREDIT+100.0000 · account Bone @Transactional(timeout=10) boundary
Java 21Spring BootPostgreSQLREST API

AtomicX

Completed

Financial Ledger API

An ACID-compliant double-entry ledger REST API that transfers funds with exactly-once semantics, staying correct under hundreds of concurrent threads and deadlock-free by construction.

Core challenge

Keep a financial ledger perfectly consistent under high concurrency — no lost updates, no deadlocks, and no double-spend when a client retries a request that already succeeded.

Key decisions

  • 01

    Pessimistic write locks

    Both participating accounts are locked with PESSIMISTIC_WRITE for the critical section. This blocks conflicting writers at the database level and gives deterministic, predictable latency instead of optimistic retry storms.

  • 02

    Deterministic UUID lock ordering

    Locks are always acquired lower-UUID first. If every transfer follows the same order, a circular wait — and therefore a deadlock — becomes structurally impossible.

  • 03

    Idempotency keys

    Header-supplied keys are persisted under a unique index. Duplicate requests short-circuit on an O(1) indexed lookup before any lock is taken, so a network retry can never double-spend.

  • 04

    Immutable append-only ledger

    Balances are derived by summing append-only DEBIT/CREDIT entries. The ledger is the single source of truth, every mutation is auditable, and there is no separate balance row that can drift out of sync.

  • 05

    LOCK → CHECK → ACT in one transaction

    Validation, locking, and the debit/credit pair all commit inside a single @Transactional(timeout = 10) boundary. Any failure rolls the whole transfer back within a ten-second guardrail.

RPS at 13 ms average transfer latency
1,000RPS at 13 ms average transfer latency
RPS sustained under k6 load testing
1,600RPS sustained under k6 load testing
unit tests: concurrency, precision, idempotency
27unit tests: concurrency, precision, idempotency
concurrent threads handled
500+concurrent threads handled

Measured on the project's own k6 load tests (Hikari pool of 50, Tomcat pool of 500). These are results from that environment, not a universal guarantee.

03 / FlowGuardJan. 2025 – Mar. 2025
requestsFILTERhighestprecedenceRedis windowprevcurrw-avg/ minute5 min key expiry200429
Java 21Spring Boot 3Redis

FlowGuard

Completed

Distributed Rate Limiter

A Redis-backed rate limiter that smooths bursty traffic with a sliding-window weighted average and enforces limits before a request ever reaches application logic.

Core challenge

Reject bursts fairly across multiple application instances without the hard resets of a fixed window and without stale per-client keys accumulating in memory.

Key decisions

  • 01

    Sliding-window weighted average

    weighted_avg = (elapsed × current + (60 − elapsed) × previous) / 60 blends the current and previous minute, so the limit transitions smoothly instead of snapping open at the minute boundary.

  • 02

    Redis-backed shared state

    Counters live in Redis and are keyed per client IP, so the limit holds across every instance of the service rather than only within a single process.

  • 03

    Enforcement before application logic

    A custom servlet filter registered with highest precedence rate-checks every incoming request before it reaches a controller and returns HTTP 429 on violation.

  • 04

    Five-minute key expiry

    Keys expire automatically, so stale per-IP counters never pile up and Redis memory stays bounded without a cleanup job.

returned on limit violation
HTTP 429returned on limit violation
weighted sliding window
60sweighted sliding window
automatic key expiry
5 minautomatic key expiry
Redis ops per request
2–3Redis ops per request
02 — Engineering approach

How I Think About Systems

Four ideas that shape how I design backend software — each one tied to a decision I actually made and can explain.

Concurrency & Consistency

Shared state is where correctness quietly breaks. I reach for pessimistic locking, deterministic ordering, and immutable records so concurrent writers cannot corrupt an invariant.

In practice

In AtomicX, UUID-ordered PESSIMISTIC_WRITE locks make deadlocks impossible and an append-only ledger keeps debits and credits in perfect balance under 500+ concurrent threads.

Pessimistic locksLock orderingAppend-only modelsBigDecimal precision

Fault Tolerance

I design for the gap between two steps, not the steps themselves. If a node dies between a write and a publish, the system should recover from durable state rather than lose work.

In practice

Helios commits job state and its dispatch record in one transaction (transactional outbox), recovers jobs stranded by a crash, and quarantines repeatedly failing jobs in a dead-letter queue.

Transactional outboxDead-letter queuesCrash recoveryAt-least-once delivery

Distributed Coordination

Coordination is about agreeing who is in charge and proving it. Lease-backed election plus fencing tokens keeps a single writer even when the network disagrees about who is alive.

In practice

Helios elects a leader with an etcd CAS transaction, renews it through a lease heartbeat, and rejects writes carrying a stale epoch token before they reach the database.

etcd CASLease heartbeatsFencing tokensSplit-brain safety

Performance & Reliability

Performance is a property I measure, not a claim I make. I tune pool sizes and window algorithms, then verify the result with load tests and reproducible numbers.

In practice

AtomicX sustains 1,000 RPS at 13 ms average transfer latency (1,600 RPS peak) on tuned Hikari and Tomcat pools, while FlowGuard bounds bursty traffic with a weighted sliding window.

k6 load testingConnection poolingWeighted windowsBackpressure
03 — Toolbox

Skills

Technologies I have used to build and ship actual systems — grouped by where they fit in the stack.

Languages

05
  • C++
  • Java 21
  • Python
  • JavaScript
  • SQL

Backend & Infrastructure

09
  • Spring Boot 3
  • etcd
  • Kafka
  • Redis
  • PostgreSQL
  • Docker
  • Git
  • GitHub
  • Linux

Distributed Systems

07
  • Leader election
  • Consensus (etcd / CAS)
  • Fencing tokens
  • Idempotency
  • Replication
  • Fault tolerance
  • Concurrency control

Computer Science

04
  • Data structures & algorithms
  • Operating systems
  • DBMS
  • Object-oriented programming
04 — About

Correctness first, then measured performance.

I build backend systems where correctness is not optional — schedulers that must never run a job twice, ledgers that must never lose a cent, and rate limiters that must stay fair across every instance of a service.

Most of what I enjoy happens at the boundary between code and failure: leader election during a partition, lock ordering that quietly prevents deadlocks, idempotency keys that make retries safe. I like understanding the trade-offs behind a design before I commit to it, then measuring whether it actually holds up under load.

Outside of projects I spend time on competitive programming, which keeps my fundamentals — data structures, algorithms, and the discipline of thinking about edge cases — sharp.

Focus
Backend & distributed systems
Based in
Ahmedabad, India
CGPA
9.58 / 10.0

Education

  • Pandit Deendayal Energy University

    2023 – 2027

    B.Tech in Computer Science and Engineering

    CGPA: 9.58 / 10.0Gandhinagar, India
  • Utkarsh Secondary Highschool

    2021 – 2023

    Higher Secondary Education (HSC)

    Ahmedabad, Gujarat

Leadership

Team Lead — Real-Time Auction Platform

Jan. 2026 – May 2026

Pandit Deendayal Energy University

  • Led a 4-member team across system design, task allocation, integration, and delivery of a real-time auction platform.
05 — Competitive programming

Achievements

Signals of consistency and fundamentals — the same discipline that shows up in how I reason about edge cases in systems.

CodeChef max rating
1637

3-star competitive programmer

Problems solved
600+

Across CodeChef, Codeforces, and CSES

Global rank — Starters 118
327

CodeChef Starters contest

Global rank — Starters 114
794

CodeChef Starters contest

CodeChef profile · competitive programming on CodeChef, Codeforces, and CSES

View CodeChef
06 — Contact

Let's build systems that stay up.

I'm open to backend engineering internships, new-grad roles, and technical conversations about distributed systems. Email is the fastest way to reach me.

Ahmedabad, Gujarat, India · +91 7778032178