Rec · Ankit
Opening titles
TC00:00:00:00

Fade in A showreel in four acts

Backend & full-stack engineer

I build .NET systems that connect meters, grids and enterprise platforms for a power distribution utility, plus the data and AI tools that sit on top of them.

Delhi · Pune, India

Act I

The field

Meters, serial lines, a legacy system nobody could explain, and 113 grids.

01 Ext. Feeder meters · Dawn

From a meter on a feeder to a row in Oracle.

AMR-DAS is the .NET 8 system I built to read feeder meters over RS-485 and Modbus, through Moxa NPort device servers and virtual COM ports, into Oracle for grid energy audits.

  1. Feeder metersOEM-specific protocols
  2. RS-485serial bus
  3. Moxa NPort5150 / 5650 device servers
  4. Virtual COM portsSerialPort per COM
  5. .NET 8 AMR appModbus · meter logic · JSON staging
  6. Oraclestored procedures · batching
  7. Grid energy auditmeter and feeder data

02 Int. Legacy server room · Night

Five programs. Three meter makes. No source code.

  • Servers could hang in the middle of meter reading.
  • No source code and no documentation.
  • Troubleshooting could take days.
  • Grid energy audit data could be missed.
  1. Reverse-engineer
  2. HLD
  3. LLD
  4. New architecture
  5. Testing
  6. Migration

03 Ext. Delhi · South and West

113 grids moved from GEMS to EXIS.

The rollout covered 67 grids in South and 46 in West. Testing started on live meters at the Nehru Place grid.

0of 113 grids on EXIS

04 Int. Device manager · Late

Where does COM73 go missing?

A virtual COM port disappeared. I followed it down the Windows device chain one layer at a time. I take the same approach to network problems, like a VPN-to-TeamViewer path that wouldn't connect.

  1. WindowsDevice Manager · Ports (COM & LPT)
  2. RegistryHKLM\HARDWARE\DEVICEMAP\SERIALCOMM
  3. PnP devicedevice instance · driver version
  4. Drivernptdrv2.sys
  5. Virtual COMCOM73 · COM99
  6. Moxa NPortNPort Administrator mapping
  7. Physical meterRS-485 line

05 Int. Server room · Day

850+ serial ports. One careful remap.

Serial-over-IP configuration for ~116 Moxa NPort 8-port device servers, split across two Windows servers.

0units on one server
0under-configured
0port rows

I audited the INI-based serial-over-IP configs on both Windows servers: ~116 device servers and 850+ port mappings.

Act II

The data

Stored procedures, one stray byte, and transformers ranked by risk.

06 Int. Oracle schema · Night

A demand-processing procedure, rebuilt from the inside.

The stored procedure that processes meter demand data. I kept working on it, one bottleneck at a time, and I review the PL/SQL around it.

  • Replaced row-by-row loops with set-based operations staged through a global temporary table.
  • Collapsed redundant analytic sort passes.
  • Fixed an exception handler that was silently swallowing errors.
  • Tuned indexes to line up with interval range partitioning on READ_DATE.
  • Iterated through versions to settle aliasing, rounding and log reconciliation.

07 Int. DDL review · Late

The bug was one invisible space.

A one-letter code goes into a CHAR(2) column.

Oracle pads it to full width with a trailing space.

Next to the same value without padding, it stops matching, and the change-detection logic broke on it.

I caught it in a DDL review of the demand table, along with a redundant index.

08 Ext. Distribution network · Day

Which transformer should the field team visit first?

Predictive maintenance for distribution transformers. I combined smart meter and sensor data with AMR, SCADA, GIS, outage and maintenance records, and developed and integrated in-house ML models that score each transformer's health and risk.

  1. Integrate
  2. Score
  3. Rank
  4. Decide

The output is hotspot leads for the field team, with a decision for each one: maintain the transformer, or move to higher capacity?

Act III

The interfaces

APIs, other people's protocols, a shared server, and the plan that held a project together.

09 Int. API gateway · Midnight

An API that checks every request at the door.

PRAVAH serves demand data from Oracle. Every call goes through JWT authentication, role-based authorization and rate limiting, and every failure comes back with a specific state.

  1. Client
  2. Authenticate
  3. Authorize
  4. Rate limit
  5. Demand API
  6. Oracle

Response states

okmissing_data_feederinvalidunauthorizedsource_error

Five explicit states, so a caller always knows what went wrong.

10 Int. Integration lab · Day

Speaking other people's protocols.

EVLinq · OCPI 2.2.1 · .NET 8

  • eMSP integration
  • Credentials handshake
  • Token exchange
  • Middleware
  • Background services
  • Oracle

SAP · SOAP 1.1 · document/literal/wrapped

DtSapPort not found
  1. WSDL + XSD
  2. SPROXY
  3. ABAP proxy
  4. SOAMANAGER
  5. Logical port
  6. SOAP service
  • SAP NetWeaver
  • Basic authentication
  • Namespace compatibility
  • SAP-compatible WSDL design

11 Int. Shared Linux server · Night

Ship mine. Break nobody else's.

I deployed a Next.js app to an Ubuntu server that already hosted other people's applications. Nginx routes each path prefix to its own app, and a basePath keeps my static assets and API routes inside my prefix.

Toolchains with mise

  • Go
  • Node
  • Bun
  • Java
  • C++
  • TypeScript
  • Python
  • Ubuntu
  • WSL

12 Int. Project kickoff · Morning

A scope document became 120 tasks anyone can track.

VOLT is a GIS-based platform for monitoring a utility network. I turned its scope document into a structured Excel tracker, generated with Python and openpyxl.

0modules
0sub-tasks
  • Dropdown validation
  • Conditional formatting
  • Summary dashboard

Act IV

After hours

Side projects and local AI tooling.

13 Int. Home desk · After hours

A resume generator that isn't allowed to make things up.

A full-stack side project. It writes ATS-ready LaTeX resumes for a specific job description with a multi-agent LLM pipeline, run by a deterministic state-machine orchestrator.

State-machine orchestrator

  1. Job descriptionplus your real history
  2. Resume Writerdrafts bullets toward the role
  3. ATS Scorerscores keyword coverage like a screener
  4. Reviewercritiques the draft
  5. Humaniserrewrites it for a human reader
  6. Tectoniccompiles LaTeX in a sandbox on a Jake's Resume base

Claims ledger

Every line has to trace back to something real. Truthfulness guardrails block anything else.

Model routing · LiteLLM

  • Ollamalocal default
  • OpenAI-compatible APIs
  • Anthropic Claude

In the editor

  • Per-bullet editing
  • Keyword highlight overlay
  • Versions per application

My local AI setup

  • OpenCode
  • KoboldCpp
  • OpenAI-compatible endpoints
  • Context-length tuning

14 Montage · The toolkit

Backend

  • C# with OOP and design principles
  • .NET Framework 4.7.2 to .NET 8
  • ASP.NET MVC and REST APIs
  • Dapper
  • JWT auth and rate limiting
  • Swagger / OpenAPI and Serilog

Data

  • Oracle PL/SQL
  • SQL performance tuning
  • Partitioning and indexing strategy
  • MERGE and set-based processing
  • DDL review
  • Python, openpyxl and Excel automation

Field and integration

  • Modbus over RS-485
  • Moxa NPort 5150 / 5650
  • Virtual COM ports and SerialPort
  • OCPI 2.2.1
  • SOAP 1.1, WSDL and XSD
  • SAP SPROXY and SOAMANAGER

Frontend

  • React
  • Next.js

Infrastructure

  • Ubuntu and WSL
  • Nginx reverse proxy
  • mise toolchains
  • Windows drivers and registry
  • INI and config management
  • VPN and remote access

Data and AI

  • ML for predictive maintenance
  • Health and risk scoring
  • LiteLLM and multi-agent pipelines
  • Local models with KoboldCpp and OpenCode
  • LaTeX

15 Montage · The questions changed

  1. How do I implement X?
  2. Why is X failing?
  3. How should X be architected?
  4. How do I replace this legacy system?
  5. How do I migrate 113 grids without disrupting operations?
  6. How do I combine AMR, SCADA, GIS and maintenance data to predict failures?

Layers, not ranks

  1. DeveloperC#, SQL, React, .NET
  2. ApplicationAPIs and business apps
  3. BackendOracle, Dapper, JWT, concurrency
  4. IntegrationModbus, Moxa, OCPI, SAP
  5. SystemsCOM ports, drivers, networking
  6. ArchitectureHLD, LLD, migration
  7. Industrialmeters, SCADA, GIS
  8. Data and AIpredictive maintenance
  9. DeploymentLinux, Nginx, proxies
  10. AI toolinglocal LLMs, AI integration

Software + utility domain + integration + IoT + data and AI

16 Voice-over · How I work

I change as little as I can and leave working things where they are. I look for the edge cases first, and I confirm them before I act. I ship a version, take the feedback, and ship a better one . And I make the result easy to read at a glance .

Written and directed by
Ankit
Backend
C# · .NET 8 · Dapper
Field communications
Modbus · RS-485 · Moxa NPort
Legacy archaeology
GEMS → EXIS
Grids migrated
113
Database performance
Oracle PL/SQL
Predictive maintenance
Distribution transformers
Security
JWT · Roles · Rate limiting
Integrations
OCPI 2.2.1 · SAP SOAP
Deployment
Ubuntu · Nginx
Spreadsheet effects
Python · openpyxl
Language models
LiteLLM · Ollama · Claude · KoboldCpp
Typesetting
LaTeX · Tectonic
Filmed on location
Delhi · Pune

No claims were fabricated in the making of this film.

Fin.