Available for work

I build agents that do the work, not demos of the work.

Software that takes a real job off someone's desk, shows its reasoning so a human can check it, and gets better every time it's corrected. Running in production, on their own domains, with the tests to prove they hold.

Open to work — four tracks, one record

Twelve years split between the rig floor and the codebase. Each site below takes the same career and answers a different kind of job posting, requirement by requirement, and shows the work behind it.

Field & Geology

Seven years on active rigs in the Delaware and Midland Basins — cuttings, gas chromatography, mud logs, well control, field QA. Basins, formations, unit work and field QA.

geo.agentroy.xyz

Data & Databases

SQL Server, MySQL and PL/SQL in production; schema design, tuning, ETL pipelines and Power BI reporting. Dashboards, pipelines and the systems behind them.

data.agentroy.xyz

AI & Automation

Hybrid rules + LLM systems in production, Python backends, front ends, and the Linux deployment that ships them. Agent501, CompanyMan and the deployment under them.

ai.agentroy.xyz

CompanyMan

The product the field years turned into — rig-site reporting that starts with a photo of the tank board.

cm.agentroy.xyz

What I've built

Agent501 — bookkeeping that learns

live & public

Codes bank and card transactions against a client's chart of accounts and grant structure. It states what it matched on and how often it's seen that pattern, holds anything it hasn't seen rather than guessing, and keeps every correction — so the pile a human touches shrinks month over month.

Python · Flask · SQLite · multi-tenant · ~18k lines · 116 tests
cpa.agentroy.xyz — read-only demo, invented data

Oilfield Executive — seven systems, one view

live & public

Production, unit costs, capital, funding, people and safety for an oil and gas operator on one screen. The charts are the easy part: nothing an executive asks for lives in a single system, so the real work is a crosswalk that resolves telemetry tags, property numbers, cost centres and lease records to the same well. The dashboard shows that join on its own page rather than hiding it.

Python · Flask · server-rendered SVG, no chart library · 82 tests
oil.agentroy.xyz — read-only, synthetic data

CompanyMan — photograph the tank board, get the report

live

Rig-site reporting for the operator's representative. Photograph the tank board, the mud report, the morning numbers — it reads them, checks them against yesterday, and returns a formatted daily report plus a mobile dashboard the office can open. Runs on the company man's own laptop with a folder connection, or hosted white-label per operator.

Python · vision extraction · local-first · multi-tenant
cm.agentroy.xyz

Operational reporting at EDGE Services

Three years of Power BI dashboards over real-time drilling and geological data — formation tops, mud logs, LWD/MWD, directional surveys, cuttings and gas shows. Dimensional models, tuned SQL against SQL Server and MySQL, large operational logs on Hadoop, and VBA/Python automation behind the recurring deliverables. Also trained the field crews who used them, which decides whether a dashboard survives.

Power BI · DAX · Power Query · SQL Server · MySQL · Hadoop/HDFS · 2023–2025

The infrastructure under all of it

Every site and app here runs on one box I provision and administer personally: nginx server blocks per subdomain, TLS via certbot, systemd services, and a git push that redeploys within a minute of the commit. Nobody else's platform, nobody else's build pipeline — which is why I can answer questions about how it actually works.

Ubuntu · nginx · gunicorn · Let's Encrypt · systemd · Docker · git-push deploy

media_parser_agent — a tool, not a script

Ingests long-form audio and video and returns structured, searchable transcripts. Packaged properly with a CLI and tests because re-running the same manual extraction by hand stopped being acceptable.

Python package · yt-dlp · Whisper · CLI · pytest

Roughly 25 repositories, most private. Happy to walk through any of them.

One in detail

A US accounting practice doing the monthly close for non-profit clients. Every transaction needs seven labels, not one — account, fund, restriction, location, programme, sub-programme, grant — because funders audit all of it. Days a month, by hand, thousands of rows.

Problem
Coding was done by precedent: find what this vendor was coded to last time, copy it down. Slow, and it lived in one person's memory.
What I built
A pipeline that learns those precedents from history, proposes a full coding for each row with the evidence attached — what it matched on, how many times it's seen it, how consistent it was — and refuses to guess at a vendor it has never seen.
The loop
A reviewer corrects only what was held. Each correction is kept and retrains that client's model. Teaching it one row can resolve several, and next month it doesn't ask again.
Guardrails
A quality gate blocks the accounting export outright on a bad month rather than posting something wrong. Corruption tripwire, invalid-account and direction checks.
Result
~88% of transactions get the right account, back-tested end to end with uncovered rows counted as misses. 116 tests, each pinning a specific past bug.
Judgement
The demo you can click runs on entirely invented data. The client's real books, vendors and the people they serve never left their server — that was a design constraint from the start, not a cleanup afterwards.
~88%
coded right, back-tested
7
labels resolved per row
116
tests holding it up
~45s
push to live in production

How I work

The engineering

  • Ships. Every project above is on a domain, behind TLS, restarting itself. Not a notebook.
  • Tested where it matters. Tests pin past bugs and enforce rules — that a non-admin never sees a file path, that a public demo can never be written to.
  • Boring deploys. Push to a branch; the server notices within a minute and redeploys. A failed deploy leaves the old version serving.
  • Honest numbers. When accuracy dropped after adding harder data, the README said so and explained why.

The judgement

  • Data privacy as a constraint, not a chore. Client data was purged from git history and replaced with generated equivalents before anything went public.
  • Least privilege by default. Users see their work; paths, internals and raw errors are admin-only, and a test fails if that ever slips.
  • I tell you what broke. Including when I caused it. That's cheaper for everyone than finding out later.
PythonFlaskSQLite / SQL Server TypeScriptNodePower BI Linuxnginxsystemd Let's EncryptGitPlaywright PandasSSIS / SSRSPower BI LLM agentsMCP

What's next

One agent per domain, each solving a job somebody actually does by hand. The bookkeeping two are live. The second takes production data and puts the answer in front of an executive instead of in a spreadsheet nobody opens.

cpa

Bookkeeping that learns.

live · cpa.agentroy.xyz

oilfield

Production data, surfaced for the people who decide on it.

live · oil.agentroy.xyz

yours

If there's a job in your business that runs on precedent and patience, it's a candidate.

Tell me about it

Get in touch

I'm open to roles and to interesting problems. Fastest way is the form; email works just as well.

roy.mayaank@gmail.com · github.com/DIPMR · LinkedIn