AJ
Anubhav Jain

Anubhav Jain

I like owning problems end to end.

Frontend, backend, infrastructure: whatever the problem actually needs. I've done that at enterprise scale, at startup speed, and across client work in healthcare and fintech. Lately I've been applying the same approach to AI.

where I've done this

Experience

2023 – present

Senior Engineer II, PowerSchool

  • Redesigned attendance-report generation from eager, per-recipient generation to on-demand delivery via unique links, cutting a job that had run up to twelve hours.
  • Led a zero-downtime migration of transactional email, upwards of 300,000 sends a day, to a new provider without degrading deliverability.
  • Recovered wrongly decommissioned customers after a bad-ID incident, then rebuilt decommissioning into a single script that resolves every data relationship itself, closing the gap that caused it.
  • Serve as a go-to engineer for complex production behavior, mentoring others while driving system-level improvements.
Ruby on Rails TypeScript Angular React Postgres Redis AWS Terraform
2021 – 2023

Product Engineer, Shuru Technologies

  • Joined as one of the first engineers at a startup that pivoted from a training platform into hiring, rebuilding core parts of the app across frontend, backend, and infrastructure as it shifted.
  • Built the internal ATS a 10-person ops team ran hiring on, replacing an off-the-shelf recruiting CRM and spreadsheet-based tracking.
  • Automated content ingestion for the training product, loading instructor-authored material into the backend with no engineer in the loop.
Ruby on Rails React Next.js Postgres Redis AWS Kubernetes Datadog New Relic
2019 – 2021

Software Engineer, Betacraft Technologies

  • Worked across multiple client engagements in healthcare and fintech, each with its own domain and constraints.
  • Led development of a compliance and continuing-education platform for clinicians, built on a rules engine for requirements that varied by state and changed continuously.
  • Integrated with partner systems to pull and reconcile compliance data across sources.
  • Contributed to technical design with client stakeholders and mentored interns.
Ruby on Rails Postgres Redis
2018 – 2019

Systems Engineer, Infosys

SAP Basis operations. Early exposure to enterprise systems and production discipline.

what I've built at work

Systems

A few systems I've shaped end to end.

Redesigned attendance report generation

PowerSchool · controlled availability

Attendance reports for parents were generated eagerly for every recipient the moment a job ran, spawning upwards of 100,000 sub-jobs and hammering the database for reads. For large customers around dates like month-end, a single job could take twelve hours to finish.

How it worked

The eager generation matched no real requirement, it was just how the legacy system worked. Report open-rate data showed parents almost never opened a report the moment it was delivered. The redesign replaced eager generation with a unique link per recipient and generated the report on open instead of on send, removing the database load for documents nobody was about to read yet. It's rolling out now, and daily queue-latency alerts have already dropped as a result.

Ruby on Rails background jobs Postgres system design

Zero-downtime email vendor migration

PowerSchool · ongoing

Moved transactional email, upwards of 300,000 sends a day, onto a new provider. Mail delivery is the primary function of the system it runs in, so the migration itself couldn't be allowed to degrade it.

How it worked

The obvious approach is swapping API keys. At that volume it's also the wrong one: a new sending IP has no reputation with mail providers, and a cold IP taking full volume on day one gets treated as spam. A router ramped traffic onto the new provider up to a computed daily maximum, with everything above that falling back to the old one, so delivery never depended on the new IP earning trust faster than it could.

Ruby on Rails email infrastructure deliverability vendor migration

Rebuilt the customer decommission workflow

PowerSchool · shipped

Customer decommissioning purges PII from the database, backing the data up first in case it's needed later. The parent-child relationships that decide what gets purged were validated by hand, and a few less obvious ones sat outside that coverage — until an engineer decommissioned the wrong customers off a bad ID, and that gap became the actual failure mode.

How it worked

I led getting the wrongly purged customers back live: writing scripts that pulled the deleted rows out of the pre-purge backup and reinserted them, restoring the accounts with no lasting data loss. The fix that followed replaced manual validation entirely: decommissioning is now a single script that resolves every parent-child relationship itself, including the ones the original process missed, so nothing outside it needs a human to check first.

Ruby on Rails Postgres data recovery compliance

Internal ATS for a hiring platform

Shuru · 2021–2023

The system the operations team ran hiring on: job posting and lifecycle, interview pipelines, candidate filtering and flagging, and the outreach data recruiters worked from. Ten people used it every day.

How it worked

Before it, hiring ran on an off-the-shelf recruiting CRM alongside spreadsheets for tracking candidates. It was built as a v2 while the existing system kept running, so the ops team could move across when it was ready. Once they did, recurring operational work came off engineering.

Ruby on Rails React Postgres Redis data migration

Content ingestion for the training product

Shuru · 2021–2023

Instructors authored the course material: videos, quizzes, questions, and answer keys. This pipeline took what they produced and loaded it into the backend with no engineer in the loop.

How it worked

Content nested as modules, sub-modules, lessons, and quizzes, with each quiz holding a handful of questions. A question could be video, image, text, or a combination of them, which meant the client had to render every shape and the API had to stay generic enough to describe them all instead of special-casing each one. Instructors named their files against a convention agreed up front, and the ingestion script used that convention to resolve each asset onto the right place in the structure.

Ruby on Rails ingestion media handling automation

Compliance platform for clinicians

Betacraft · 2019–2021

A platform helping clinicians track and meet continuing-education and compliance requirements, built on a rules engine that encoded a demanding, ever-changing set of regulations.

How it worked

Requirements varied by state and by license type, and they kept changing, so the platform had to absorb updates rather than be rewritten around them. Most of them fitted one underlying model. The remaining fifth were ambiguous enough in interpretation that the rules engine had to grow new capability before it could express them at all, and that minority is where most of the work went. It also integrated with partner systems to pull and reconcile compliance data across sources.

Ruby on Rails rules engine Postgres healthcare

what I've built on my own time

Side projects

Self-directed builds, 2026 — most with Claude Code as a pair-engineer.

Vision-language model, from the ground up

building · write-up soon

A model that can look at an image and describe it in natural language, built and trained end to end from a frozen vision encoder, a trained projector, and an open-source LLM. Not an attempt to invent something new, but to understand exactly how the pieces fit together, from the vision encoder through the projection layer to the language model.

vision-language SigLIP2 Qwen2.5 Claude Code

Image and caption, generated together

building · write-up soon

A system that generates a stylized image and a matching caption from a single input, rather than generating one and describing it after the fact. Combines an image-generation model with a captioning model trained to stay coherent with it.

diffusion LoRA CLIP multimodal

Agent harness for product development

building · write-up soon

Built my own harness for agentic coding rather than taking one as given: a toy project first, then rebuilt against a real product with real requirements as the gaps showed up.

How it worked

Parallel execution is still the open problem: running multiple agent tasks against a codebase without them stepping on each other. I'm studying how existing harnesses solve it and folding what works back into mine. Planning to publish the harness and what it's built.

agent harness tool-use LLM orchestration