Skip to content

The short version

I build things, self-host them, and take them apart to see why they work. No company has employed me yet, which means every line in the work section exists because I decided it should — a football association needed a league platform, a library needed an API it did not have, a group of couriers needed their pay split without an argument.

That is a smaller claim than a CV and a more checkable one. Everything is public. The commit history is the reference.

Token-sensitive

I spend a lot of time working alongside agentic AI, which means I spend a lot of time watching a very capable system waste effort on things nobody asked for. Context is finite and expensive. So is attention. The habit transfers: say the thing, cut the preamble, do not ship a dependency to solve a problem you could state in four lines.

Babysitting agents is not a joke title. It is genuinely the work — scoping a task tightly enough that a capable system cannot wander, then reading everything it produces as though a stranger wrote it. Several of the repositories here carry a CLAUDE.md, which is what that discipline looks like when it is written down.

Patterns, and the maths under them

The projects that hold my attention are the ones where the interesting part is a function rather than a feature. Forecasting personal finances is a regression problem with an honest confidence interval attached. Splitting delivery income is a proportion, and the formula is printed on the page so nobody has to trust the app. The background of this site in its 2026 era is a closed-form vector field, and the equation is in the corner for the same reason.

Maths is not decoration in any of those. It is the part that makes the answer defensible.

Self-hosted by default

Free tiers are a launch strategy, not an architecture. Every project here is built so that leaving is dull: Postgres rather than a proprietary data store, S3-compatible object storage, migrations in the repository, Docker from the first commit. The league platform runs on Vercel today and is designed to move to a homelab behind a Cloudflare Tunnel without a rewrite.

Self-hosted analytics over a hosted product, for a community organisation's site, was not a performance decision. It was a decision about whose members get tracked.

The interface complaint

Current interfaces are documents pretending to be applications. Every product hands you a map and expects you to memorise it, and each map is arranged slightly differently for no reason that benefits you. Automating your own relationship with your own data usually means scraping, because the institution holding it decided your automation is not their problem.

I do not think the answer is a better map. I think it is not needing one — you state what you want and the surface assembles around the request. This site's last era is a small, deliberately limited argument for that, and it is honest about the fact that nobody has built it properly yet, including me.

What I am looking for

Work where the hard part is actually hard: systems, infrastructure, interfaces that have not settled, or anything where the domain is electrical, electronic, software, hardware, or mathematical. I am happy to struggle inside that space for a long time. Outside it, less so — which seems worth saying in advance.

Full Stack Software Developer Professional Certificate
IBM · 2024
Twelve courses. Capstones are in the public repos, not just on a PDF.
Homelab
Self-issued
Docker, Cloudflare Tunnel, self-hosted analytics. Where the projects go to live once the free tier stops being the point.
GitHub
@SanjayKhatiChhetri
Mastodon
@sanjaykhatichhetri@mastodon.social
Bluesky
@sanjaykhatichhetri.bsky.social
Discord
sanjaykhatichhetri
Email
sanjaykhati1011@gmail.com

Get in touch →