A history rather than a résumé. Read top to bottom, it is meant to show a person
changing — what they were curious about, what they abandoned, where they were
confused, and how long the gaps were between the parts that worked.
Several years here contain no achievement at all. Those are deliberate. Growth is
mostly made of the stretches between milestones, and a chronology that shows only
the peaks cannot explain how anyone reached the next one. The engineering lives in
the VECTOR archive; this page is the person.
19 entries
14 / 19
Year
Project
The eight-protocol stack
Sentinel, Serpentine, Aegis, Atlas, Mender, Phoenix, Hyperion, Terminus. One
escalation chain from the first detected anomaly to a permanent termination that only
a human being can authorise.
This is the point where EXTREMIS stopped being a traffic model. The realisation behind
it is a single sentence — a smart model is worthless if it cannot survive failure — and
once I took it seriously, the interesting work stopped being the intelligence and
started being the governance around it. A traffic system that goes dark during peak
congestion has not underperformed. It has done harm.
Terminus is the part I am most attached to. It blocks orchestrators, AI agents and
internal services from invoking it; it requires a person at a physical console with
multi-factor authorisation; it encrypts a full state archive before it ends anything.
The system cannot reach the end of its own escalation chain. That is not a limitation
I worked around. It is the feature.
19 entries across 16 years. 5 of those years are empty and are drawn that way. A record that hides its quiet periods should not be believed about its busy ones.
The full chronology
Milestone
Project
Experiment
Achievement
Event
2026
Milestone
vihaanvaghela.com
The site you are reading. Weeks of work, most of it not the interesting kind.
GitHub, Cloudflare, Vercel, Neon, Prisma, DNS, SSL, Resend. Cloudflare Pages turned
out to be unable to run the application at all — not a configuration problem, but
three hard incompatibilities including a compiled Rust hashing binary and a filesystem
that Workers do not have. Then SQLite could not follow the application to a serverless
host, so the database moved to Postgres, which broke the container path that had been
working and left the documentation describing a database that no longer existed. Then
the pooled connection string turned out to be the wrong one to run migrations through.
None of that is in the design. All of it is in the git history, which is where it
belongs.
What this actually marks is a change in what I am doing. Before this, I built things
and wrote about them somewhere else. This is the first time the work and the record of
the work live in the same place, under my own name, on infrastructure I control and
can still be running in twenty years.
I picked up Swift and started building native iOS — VECTOR Lite, with an eye on the
Swift Student Challenge. A second language with genuinely different opinions is worth
more than a second framework with the same ones: value semantics, optionals that will
not let you pretend a thing might not be there, and a compiler that argues back.
I also took the work to a physics exhibition, where the judges did not understand it.
That deserves to be recorded accurately rather than bitterly. They were not wrong to
be unconvinced. I presented a governance architecture to people expecting a physics
demonstration, used vocabulary I had never had to define because everyone I discuss
this with online already shares it, and answered the questions I wished they had asked
instead of the ones they did.
Building something difficult does not entitle you to be understood. Communication is
not a thing you do after the engineering — it is part of it, and I had genuinely
believed otherwise until standing in front of a table where the belief did not
survive. It is the most useful bad afternoon I have had.
Milestone
EXTREMIS becomes VECTOR
Variable Environment Control Through Observation Response.
The trivial reason is that Extremis belongs, thoroughly, to Iron Man. That alone would
have been an annoyance rather than a migration.
The real reason is that the name had stopped describing the thing and started
constraining it. I would sit down to explain the governance stack and find myself
talking about intersections — not because Terminus is about intersections, but because
the name set the frame and every explanation began at traffic and reached outward
apologetically. That was not a communication problem. Components were being designed
against traffic-shaped assumptions, because traffic was the vocabulary I had.
A name is a constraint on the thinking, not a label on the result. The signal to watch
for is not being bored of the name. It is noticing that your explanations of general
things keep starting from a specific case.
I went to the mountains and left the laptop behind.
I climb, and I trail run, and this was the longest I had been away from the system in
months. Mountains and software have the same shape, and it is not the shape people
usually reach for — it is not about summits. You take a step, then another, and
eventually you arrive somewhere with a view. Then you keep going, because the
viewpoint was never the destination, only the place where the work becomes briefly
visible.
I came back with the clearest head I had had all year. Endurance sport is the only
thing I have found that teaches patience by making impatience genuinely useless — you
cannot want your way up a slope any faster. That transfers directly, and it is why I
do not treat the training as time taken away from the building.
Achievement
v1 is real — 647,000 cycles, zero failures
A two-hour adversarial stress test across more than 647,000 cycles. Zero failures.
Zero crashes. Zero dropped events on the bus. Zero ordering violations. 6.17 ms p95
under sustained adversarial load.
The number that matters to me is not any of those. It is the one before them: for six
weeks the system sat at roughly 100 ms p95 with tail spikes that made it unusable, and
I could not work out why. I profiled everything eventually and found that Sentinel —
the anomaly detector, the simplest component, the one I had written first and trusted
longest — was consuming about ninety-seven percent of runtime. Unbounded statistical
work on every cycle, at the head of the pipeline, poisoning everything downstream.
I did not feel clever when I found it. I felt stupid about the six weeks. Then I felt
the thing that keeps me doing this, which is not triumph but quiet — a problem that had
been in the room for a month and a half simply was not there any more.
Find your bottleneck before you optimise anything else. I lost six weeks to searching
where the complexity was, because complexity feels expensive. Cost does not care how
sophisticated a component looks.
Sentinel, Serpentine, Aegis, Atlas, Mender, Phoenix, Hyperion, Terminus. One
escalation chain from the first detected anomaly to a permanent termination that only
a human being can authorise.
This is the point where EXTREMIS stopped being a traffic model. The realisation behind
it is a single sentence — a smart model is worthless if it cannot survive failure — and
once I took it seriously, the interesting work stopped being the intelligence and
started being the governance around it. A traffic system that goes dark during peak
congestion has not underperformed. It has done harm.
Terminus is the part I am most attached to. It blocks orchestrators, AI agents and
internal services from invoking it; it requires a person at a physical console with
multi-factor authorisation; it encrypts a full state archive before it ends anything.
The system cannot reach the end of its own escalation chain. That is not a limitation
I worked around. It is the feature.
The first real implementation, and — more consequentially — the moment I started
publishing the reasoning while it was still provisional.
The early posts are a record of the argument I was having with myself. Why I was
building systems rather than models. How I reduced the input space to seven variables
that stay informative under degradation. Where the boundary between perception and
decision should sit, and why collapsing it produces something that reacts fast and
reasons badly. Why I built a deterministic traffic controller before training anything
at all, so that every learned component afterwards had a floor to beat.
Then the piece that reframed the whole project: I stopped optimising, and built a way
to stop. Performance describes a system under favourable conditions. Infrastructure is
only interesting under the other ones.
I started writing publicly because I thought universities valued documentation. That
was genuinely the reason and I am not going to pretend otherwise. It stopped being the
reason somewhere in this stretch, and I did not notice the switch until it had already
happened.
We were driving back toward Ahmedabad after a trip through Rajasthan when we were in a
minor accident. Nobody was seriously hurt.
The tidy version of this story would say that a traffic system failed and I resolved
to fix traffic systems. I am not going to write it, because I have no evidence for it.
I cannot tell you a signal caused that accident. I cannot tell you a better one would
have prevented it.
What actually happened is smaller. Years earlier, at about ten, standing in New York
City, I had watched a traffic light hold a red for a completely empty road and
wondered why it was running a timetable instead of reading the street. I did nothing
with the question — I was ten. In the car, afterwards, it came back, and it came back
with an urgency it had not earned on the evidence.
I have decided that is a fine reason to start something and a terrible reason to stop
checking your work. Motivation and justification are different objects. The first
EXTREMIS notes were written within weeks.
2024
Milestone
Copilot, Claude, and agentic coding
Modern AI arrived, and programming came back — different from how it left.
The honest account of what changed is less dramatic than either the enthusiasts or the
critics want. It removed most of the typing. It removed none of the thinking. The
bottleneck moved from "can I express this" to "do I know what I actually want", and
the second question is harder, has no keyboard shortcut, and cannot be delegated,
because it is a question about your own intent and you are the only available source.
The failure mode I had to learn to guard against is not wrong code — wrong code
announces itself. It is plausible code: code that works, that I would not have
written, and that I accepted because it worked. Accept enough of it and you are
maintaining a system whose decisions you did not make.
Which is where the rule came from, and I still hold to it: if I cannot explain every
line, I do not understand it yet. Not "could work it out if pressed" — explain it,
now, including why it is this way and not the obvious alternative.
Milestone
Overheard engineering
My father worked remotely, and I did homework near enough to hear it.
GenAI. DevOps. Jira. Atlassian. Retrieval systems. Enterprise software. I understood
none of it. What I absorbed was the vocabulary — the shape of the words, the tone
people used when they said them, the fact that these were ordinary problems that
ordinary adults argued about on a Tuesday afternoon.
Learning the words a year or two before the concepts is a strange order and I would
not design a curriculum around it. But it did something I have come to think is
undervalued: it removed the intimidation. When I eventually met retrieval systems
properly, they were not a forbidding new field. They were a thing I had been
overhearing since I was twelve. Most of the barrier to entering a technical field is
the suspicion that it is not for you, and I had already lost that suspicion by
accident.
2023
Experiment
Blockly, an mBot, and the end of robotics
Blockly, and an mBot Neo. Line following, obstacle avoidance, a few behaviours of my
own that were more elaborate than they needed to be. It all worked.
And I discovered, slowly, that I did not care. The moment the robot moved was the
least interesting moment. What held me was the part before it — getting the logic
right, watching a condition I had reasoned about turn out to be true. The motors were
an output device for the part I actually liked. I would have been equally satisfied by
a printed line of text, which is more or less the definition of not being a
roboticist.
So I stopped, deliberately rather than by drift, and that is the only reason the year
counts for anything. A dead end you can name is worth more than a success you cannot
explain. I knew what I was not, which narrowed the search considerably.
Blockly also gave me the other half of it. Block-based programming makes simple things
trivial and complex things visually unmanageable — four interacting conditions become
a wall of nested shapes nobody can read. Hitting that ceiling is what made text feel
like a relief rather than a hurdle.
I left fifth grade half-finished in the United States and returned to India in 2023,
starting sixth grade into the ICSE curriculum.
Seven years is long enough to be shaped by a place. It is also short enough that
coming back does not feel like coming home — it feels like arriving somewhere you are
supposed to already know, with an accent that is wrong in both directions and a set of
classroom instincts that do not transfer. I was direct in a way that read as rude. I
volunteered answers in a system with different conventions about when you speak. None
of it was anybody's fault and all of it took a year.
What I got out of that year is the thing I now trade on hardest: I stopped assuming
context was shared. When you have lived inside two sets of defaults, you learn that
the other person is not being obtuse — they are running a different protocol. Writing
everything down, which is the habit this entire website is built on, starts here.
The sport got serious around the same time. Cycling especially, which eventually took
me to national level, and Taekwondo through to a first-degree black belt. Both were
happening in the background of everything below, and both taught the same lesson
endurance always teaches: impatience is not just unhelpful, it is inert. It does not
do anything. The work takes the time it takes.
2022
Achievement
Selected for the IB pathway at Moody Middle School
During fifth grade I was selected for the International Baccalaureate pathway at Moody
Middle School. Academically it was the most significant thing that had happened to me,
and it is on this timeline mostly for what happened next, which is that I never took
it up.
I have thought about that pathway more than is reasonable — the version of the next
few years that was arranged and then did not happen. It is the first fork on this
timeline where I can clearly see the road I did not take.
2021
Experiment
The Scratch years, and then the fade
Two years of building things with no purpose beyond building them.
I met people online — other children making other games — and we collaborated on
projects, remixed each other's work, and argued about mechanics with total
seriousness. It was the first time I experienced a technical community, and it was
made entirely of eleven-year-olds. I learned more about how to work with other people
from those collaborations than from anything school arranged.
And then the interest faded. Not dramatically — it just stopped being the thing I
reached for. Programming disappeared from my life for a while, and I did not notice it
going.
I am keeping this on the timeline because the tidy version of a builder's history has
no gaps in it, and mine has one. The interest came back later and came back different.
It would be dishonest to draw a straight line through a period where the line simply
stopped.
2020
Project
Scratch
On 14 September 2020 I opened Scratch for the first time. I was eight.
What I remember is not the programming. It is that I could build a world and then be
inside it. I made games, animations and platformers, and I drew every sprite by hand
in the built-in editor — badly, at length, with enormous conviction. The most finished
of them was a platformer called Attack of Excalius, which had a title screen I rewrote
more times than the actual game and a boss fight I could never balance.
The thing worth recording is why it took. It was not the technology. I did not care
about the technology and would not have known what to call any of it. It was that
making worlds turned out to be addictive in a way nothing else I had tried was. Every
other interest at that age was something I did. This was somewhere I went.
Four years in which nothing happened that belongs on a résumé, and which I would not
trade.
I was not specialising. I was reading widely and badly, running around outside,
starting things and abandoning them, and being curious in the unfocused way that only
really works before anyone expects an answer from you. Nobody asked me what I wanted
to be. It was the last stretch of time where the question had not arrived yet.
This is also where the sport started, unseriously — running because running was
faster than walking, and the beginnings of Taekwondo, which was the first thing that
ever taught me that improvement can be invisible for months and then arrive all at
once.
I am putting a four-year block on this timeline with no accomplishment in it on
purpose. Growth is not made of milestones. Most of it is made of the years in between
them, and a timeline that only shows the peaks tells you nothing about how someone got
to the next one.
2016
Milestone
Richmond, Virginia
We moved south, to Richmond, and I started at Short Pump Elementary School. I turned
seven there.
Virginia is the single strongest influence on who I am, and I did not notice it
happening. It was the first place where I had a real community rather than a
playground — friendships that lasted, teachers who argued with me rather than at me,
and classrooms where being wrong out loud was an ordinary part of the day rather than
a small humiliation.
Almost everything about how I communicate comes from those years. The willingness to
say the half-formed thing and let it get corrected. The assumption that a question is
a contribution. The confidence, which is genuinely a Virginia import and which I would
not have grown on my own.
2015
Milestone
Piscataway, New Jersey
We moved to the United States when I was four. New Jersey first — an apartment complex
with a playground that constituted, as far as I was concerned, the entire world.
My clearest memory of that year is getting stuck inside a baby swing. Properly stuck.
Another child had to work me loose while I considered the possibility that this was
permanent. I remember the specific indignity of it more sharply than I remember the
apartment.
The other memory is the one I think about more. My closest friend on that playground
was a boy called Harsh, and we spent entire afternoons collecting tiny insects and
worms and keeping them in bottles overnight. We would come back the next morning to
find they had died. I was genuinely upset each time — and then we did it again. And
again. I have thought about that a lot since, because it is the earliest version of me
I recognise: running an experiment, getting a result I did not like, being sincerely
sad about it, and running it again to see whether the result held. I did not learn the
lesson the worms were teaching for years. I did learn that I would rather find out
than not.
2011
Milestone
Bharuch
Born on 15 October 2011, in Bharuch, Gujarat.
I have no memories of the town from this period — everything I know about it arrived
later, secondhand, and then in person as a visitor rather than a resident. It is on
the timeline because it is the only entry I did not participate in, and because the
distance between where a person starts and where they end up is not a detail.
Mumbai came much later, by a route that went through New Jersey and Virginia first.