Skip to content
Arjit Kulkarni
03Capabilities

What I build, and how I know it works.

Backend services and systems work, with the measurement, testing and delivery practice that keeps them standing once real traffic arrives.
01

Backend Services

REST APIs designed before they are written — clear resources, honest error states, and a data model that still makes sense six months in.

  • FastAPI, Node.js, NestJS
  • REST API design
  • Authentication
  • PostgreSQL schema design
  • Query optimisation
02

Systems Programming

Work close to the machine: storage engines, concurrency, and the memory and I/O behaviour that decides whether a system holds under load.

  • C++17, RAII, ownership
  • Concurrency & multithreading
  • Caching, indexing, persistence
  • File I/O and durability
  • Storage-engine internals
03

Performance & Debugging

Measure, then change. Profiles and query plans decide what gets optimised — never a hunch about where the time is going.

  • Linux perf, profiling
  • PostgreSQL query plans
  • Benchmarking
  • Root-cause analysis
  • ThreadSanitizer, fault injection
04

Applied Machine Learning

Controlled experiments with reproducible pipelines, fixed seeds and metrics written to disk — so a result can be defended, not just reported.

  • PyTorch
  • Transfer learning
  • Experiment design & tracking
  • Evaluation pipelines
  • Vector search & retrieval
05

Delivery & Tooling

Small commits, real code review, green CI. The unglamorous parts are what make shipping to production routine instead of eventful.

  • Git, GitHub Actions, CI/CD
  • Docker, CMake
  • Unit & integration testing
  • Prometheus, Grafana
  • Vercel, Neon PostgreSQL
06

Interfaces

Frontends built with the same care as the services behind them — typed, accessible, and fast on the devices people actually use.

  • React.js
  • Next.js
  • TypeScript
  • Tailwind CSS
  • WebGL / three.js
07Process
The same four steps, whether it is a storage engine or a REST endpoint.
  1. 01

    Understand the failure

    Before anything is written, the question is what breaks and under what conditions — concurrency, crash, scale, or all three. Duplicate records mean state is wrong upstream, and that is where the work starts.

  2. 02

    Design the data first

    Schema and retrieval path together, not search bolted onto an existing model. A data model that survives six months of change is worth more than any amount of clever code above it.

  3. 03

    Ship it small

    Incremental delivery through Git, real code review and CI. Small changes are easier to review, easier to revert, and much easier to attribute when something moves in the wrong direction.

  4. 04

    Prove it held

    Profiles, query plans, benchmarks, load tests, fault injection and sanitizers. If the improvement cannot be measured after the fact, it was a guess that happened to feel faster.

See how this plays out in practice.