X:0000 Y:0000
GK/SPEC-2026
Inspected & Approved
DOC GK-001 REV 2026.07 CLASS FAILURE-AWARE SYSTEMS UPTIME 00:00:00 EDITION

Systems that keep running when the network doesn't.

I'm Gautam, Computer Engineering @ uOttawa. I build software around the assumption that networks drop, APIs die, and hardware misbehaves. Don't take my word for it: flip the UPLINK switch in the corner and watch this page handle its own outage. Try it

400 PX
PERSONNEL REF. 01
↖ DRAG ME
LOCATIONOttawa, ON · Canada
STATUSOpen to co-op
FOCUSEdge AI · Platform · Infra
PRIMARYC++20 · TypeScript · Python
DEPENDENCIES0
SEC. 00

Live simulation · AEGIS

AEGIS-SIM · CAM-01 · WORKSITE · ZONE A ● REC SSD-MOBILENET · 300×300 · ON-DEVICE
PORCHLIGHT-SIM · CAM-02 · STREET · GRID DOWN ● GOSSIP LOSS 30% · DROPPED 0
SAFETY STATE
SAFE
RELAY / GPIO
IDLE
EVENTS UPLINKED
0
OFFLINE BUFFER
0
CITY LINK
HELD ON THE STREET
0
DELIVERED · EXACTLY ONCE
0
CALLS LOST
0 OF 0

One town, one storm. The worksite at the west end runs AEGIS; the street at the east end runs Porchlight. Flip the UPLINK switch above and the same outage hits both at once. Switch cameras to fly across town, or drag to orbit. Drawn in 3D with a hand-written projection and no library, so this page still makes zero third-party requests.

CAM-01 runs the real AEGIS pipeline logic: detection → zone rules → state machine → alarm → async uplink. A worker without a hard hat who walks into the hazard zone trips the relay first and the voice after, exactly like the SCHED_FIFO ordering on the device. Cut the uplink and events stack up on the edge device, then flush in chunks of three when it returns. The safety loop never notices. Full design decisions in the engineering log. And the switch is not just a toy: turn your wifi off and reload this page. It still loads, and the switch flips itself.

CAM-02 is a sketch of Porchlight's delivery rules: a beacon press is resent until a neighbour's node acknowledges it, nodes gossip every call to each other and repair gaps on the next exchange, and 30% of all messages are dropped on purpose. Cut the uplink and calls wait on the street, then reach City Hall exactly once when it returns. The project's own test runs 30 nodes, cuts the City link 50 times, and delivers 200 of 200 calls. Like this one, it is a simulation, not a field trial. Built by a team of four at Hack the Hill III, second place in Civic Technology. Read the source.

01
SEC. 01

Selected work

SHOWCASE A/F · ORBITS / OPEN DATA

DODGE SIGNED DAILY · PUBLIC DATA

Who makes Starlink dodge

Starlink moved out of the way 355,848 times in a year, by SpaceX's count in its FCC reports as published by Space.com. Screening is free; who causes the risk is not published. Every day DODGE propagates every tracked object with a public orbit in Starlink's altitude band with SGP4, finds each pass under 5 km and names the owner. Its fast screen found 80 of 80 passes a brute force search found, and each day's data is hash-chained and signed.

Follow-up: SpaceX filed 207,152 avoidance maneuvers with the FCC, and public element sets could not reproduce that count (a detection limit). See the Maneuver Ledger ↗

READ THE ENGINEERING LOG →
SHOWCASE B/F · EDGE / RTOS

AEGIS EDGE · SURVIVES OUTAGE

The safety loop never touches the network

C++20 on QNX 8.0, four processes over MsgSend/MsgReceive, detection to relay entirely on-device. The dashed uplink box is the point: it's the only optional part.

READ THE ENGINEERING LOG →
SHOWCASE C/F · AGENT SECURITY

mcp-pin SIGNED PUBLIC LOG

The tool you approved is not the tool you're running

You approve an MCP server's tools once and that decision is never revisited, even though a tool description is an instruction with the reach of a system prompt. mcp-pin fingerprints what you approved, blocks the session when it moves, and keeps a signed public history of every version across 248 servers. Its own recrawl corrected 17 of its earlier numbers.

READ THE ENGINEERING LOG →
SHOWCASE D/F · ROBOTICS / SAFETY

Cairn ~0.5 ms ON A LAPTOP

Catching a robot that is confidently lost

GPS dies underground and SLAM fails silently: the pose drifts while the covariance stays tight. Cairn is the error bar, not the dot. On injected drift a naive monitor never alarmed and error hit 20.5 m; an earlier 12 s detection claim is withdrawn, because the same check alarms just as fast with no drift at all. Its own worst case, common-mode faults (wrong but reporting all good for 73% of the run), is written up in the docs.

READ THE ENGINEERING LOG →
SHOWCASE E/F · PAYROLL / CONFORMANCE

Takehome OFFLINE AFTER FIRST LOAD

98.2% against the CRA's own calculator

Canadian payroll deductions from the CRA's T4127 formulas, in one Rust engine compiled to WebAssembly and native. Checked against the official calculator on 9,002 boundary cases: 8,838 agree, and every one of the 164 disagreements is published. Building that check showed the calculator does not follow its own formula for the CPP credit.

READ THE ENGINEERING LOG →
SHOWCASE F/F · NUMERICS / PUBLISHED

assay-gpu ARXIV · DOI

The detector that failed its own test

Silicon sometimes returns a wrong answer silently. The 1984 checksum that catches it has a threshold that is undefined at bfloat16, so I measured the distribution instead and calibrated one. It catches 76% of exponent-bit flips against a 90% bar I registered first, and none of 600 low-mantissa flips. Four predictions failed, four findings retracted, all published.

READ THE ENGINEERING LOG →
A-01

AeroGuard

Confidence-scored SOC incident triage, dual-store: MongoDB for live reads, Snowflake for analytics, so analytics never contend with real-time state. 7-test E2E suite, shipped in 24 hours.

PYTHONFASTAPISNOWFLAKEMONGODB
A-02

Ephemera

Open a PR, get a full stack; close it and it's gone. A webhook writes desired state only, and a crash-safe reconciler advances one step per tick against idempotent providers.

TYPESCRIPTHONOBULLMQPOSTGRES
A-03

HyperShift

Five agents turn plain English into deployed infrastructure. Approval gates, rollback, immutable audit log. Nothing reaches prod without a human.

5 AGENTSBULLMQZODTURBOREPO
A-04

Porchlight

An emergency network neighbours run themselves. A signed beacon press hops laptop to laptop with no power, internet or cell service, and reaches the City when any link returns. 200 of 200 calls delivered in chaos simulation; not yet field tested.

ED25519GOSSIP MESHARDUINO BLETEAM OF 4
A-05

Bedrock

Every scraper heals itself with AI now; nobody checks the repair was correct. Bedrock verifies each heal against golden fixtures before it ships, and every row carries a receipt naming the heals it refused.

NEXT.JSPOSTGRESMCPBRIGHT DATA
A-06

keyring

Access governance for people and AI agents. Every grant into one approval queue, protected resources never bulk-approved, and a hash-chained ledger that stopped forking under concurrent writes once review caught it.

TYPESCRIPTMCPHASH CHAINAPPROVAL GATES
A-07

CRA Clock

The EU Cyber Resilience Act gives a manufacturer 24 hours from becoming aware that a vulnerability in its product is actively exploited to send an early warning. This GitHub Action builds a CycloneDX SBOM from 12 lockfile formats, checks OSV, CISA KEV and EPSS, and opens an issue with the deadlines and draft reports. If the KEV catalog can't be read, it says so instead of reporting clean.

GITHUB ACTIONCYCLONEDXCISA KEVMARKETPLACE
A-08

Domino

Find the pill that's treating another pill. Three AI agents walk one FalkorDB medication graph to find prescribing cascades in older adults. Every action waits for a human, and the output is a question for the pharmacist, never "stop this drug". Replayed over 600 synthetic patients generated from the same knowledge graph, it would have stopped 401 of the 534 cascade drugs it met at the first extra prescription; that tests the reasoning, not clinical validity. Built solo, with AI assistance, for Graph Hacks 2026. Synthetic patients only; decision support for clinicians, not medical advice.

FALKORDBCYPHERCDS HOOKSMCP
COMMENDATIONS & PUBLICATIONSJUDGED OR PUBLISHED · NOT SELF-REPORTED
PUBLISHED · DOI · ARXIV
Confident Where People Disagree
Third paper · DOI 10.5281/zenodo.22971491
jevbench · plan submitted to OpenTimestamps 33 minutes before the first scored call
PLIMSOLL Pre-Registration Specification v1
Technical note · DOI 10.5281/zenodo.22107451
PLIMSOLL · released CC0 so anyone can implement it
Binary Grounded VEX Clearance Fails Three Times
Second paper · DOI 10.5281/zenodo.22099794
LADING · separate dataset DOI, 55 artifacts, hand labelled ground truth
Calibrating the Checksum
First paper · arXiv 2610.02240 · DOI 10.5281/zenodo.22054179
assay-gpu · CC BY 4.0, data and pre-registrations released
JUDGED
Civic Technology · Second Place
Hack the Hill III · uOttawa
Porchlight · team of four, 99 projects submitted to the event
Credits Pool Winner
The Zerops Challenge · WeMakeDevs
Ephemera · $1,000 in credits, one of five
Best Use of Snowflake API
MLH · HackConcordia
0
ENGINEERING LOGS
0
PUBLIC REPOS, NO FORKS · AS OF 17 OCT
0
OPEN-SOURCE RELEASES · AS OF 17 OCT
0
NETWORK DEPS IN THE AEGIS SAFETY LOOP
02
SEC. 02

Operating principles

P-01

Design for the outage first

Offline buffering, graceful degradation and chaos harnesses go in the initial plan, not the retro. The cloud can make it smarter; correctness lives on the device, where the network can't take it away.

PROVEN · GK-002 §05: the chaos harness that caught the lossy flush
P-02

Let something else grade it

My own tests agree with me by construction. The number that counts comes from a judge I don't control: the government's own calculator, a brute force search, a back-of-envelope physics model. When the judge disagrees, the disagreement is published.

PROVEN · GK-012: 8,838 of 9,002 against the CRA's calculator, all 164 misses published
P-03

Autonomy needs a leash

Approval gates, audit trails, rollback. Every autonomous system I ship can be stopped, questioned, and reversed.

PROVEN · HyperShift: nothing deploys past the approval gate
P-04

Prove it without the hardware

Mock generators, load testers, fault injection, so the stack ships while the Pi is still in the mail.

PROVEN · GK-002 §05: the upper stack shipped before the Pi arrived
P-05

Publish the negative result

A study that only reports its wins is not evidence. I pre-register the threshold, then report the number I actually got.

PROVEN · GK-005: needed 20%, got 9.8%, published in full
P-06

Caveat louder than you claim

A measurement without its conditions is a rumour. If the harness distorts the number, that warning goes above the number, not in a footnote.

PROVEN · GK-003: WSL2-relative timings, flagged before the table
P-07

Retract it when it's wrong

Clearing your own pre-registered bar by five times is an alarm, not a triumph. The broken write-up stays published, marked do-not-cite, and the correction goes next to the claim with a date, because deleting it makes the repo look better and the record worse.

PROVEN · GK-006: the 100% that turned out to be a dead hostname
P-08

Write the bar before the data

Name the number that counts as a pass while nothing is invested in the answer, and timestamp it somewhere I can't edit. Then say exactly what the timestamp proves. Plumbline's two bars were never evaluated, and its page says so.

PROVEN · GK-014: bar fixed before the first scored call, and the timing claim corrected
P-09

The refusal is the product

A gate with an override is decorative. If a sealed rule can be amended by a flag, a config or a paid tier, the artifact is worth nothing to the person it was meant to convince.

PROVEN · GK-010: a test that fails if a code path to mutate a sealed field ever appears
P-10

Keep the rule you wrote first

A rule you argue your way past was never a rule. Three not-evaluable readings, and that line of work stopped exactly where its pre-registered rule said it would. The repo, the paper and the data stay public.

PROVEN · GK-009: both pre-registered tests resolved against it, so it stopped
P-11

Name the competitor who did it better

Finding prior art that beats you on the job it does is uncomfortable and burying it is cheap. A security tool that hides the alternative has already told you what kind of tool it is.

PROVEN · GK-011 §06: the README recommends mcp-warden over my own project
P-12

Store the conditions with the measurement

A number whose environment was not recorded cannot be re-derived, only re-argued. I have written that caveat on other people's results and then failed to apply it to my own crawl.

PROVEN · GK-011 §08: the recrawl that disproved my own explanation
03
SEC. 03

Field record

FILE 03-A SEP 2026 TO PRESENT ● ACTIVE DUTY

AI Engineer

Xsolla · Montréal, remote

AI engineering internship. The work belongs to Xsolla, so it stays off this site and off my GitHub, the same rule that keeps Cadence private.

AI ENGINEERINGINTERNSHIPREMOTE
HIRED
FILE 03-B JUL TO AUG 2026 TOUR COMPLETE

Data Processor & Software Developer

Canadian Musicians Cooperative

Built Cadence, a production inventory and rental system, solo, from requirements gathering with non-technical staff to deployed software. Audited and repaired data-integrity failures and automated recurring workflows.

INTERNSHIPNEXT.JSPRISMAPOSTGRESQLSTRIPERBACEN / FR
SHIPPED SOLO
FILE 03-C OCT 2025 TO JAN 2026 TOUR COMPLETE

Financial Sales Representative

Kognitive Sales Solutions × Canadian Tire

Explained regulated financial products to high-volume customers under strict compliance: daily practice at making complicated things understandable to people who didn't ask for the details.

COMPLIANCEHIGH VOLUMEPLAIN ENGLISH
FIELD TESTED
FILE 03-D 2024 TO PRESENT ● IN PROGRESS

B.A.Sc. Computer Engineering (Co-op)

University of Ottawa

Data structures & algorithms, databases, software engineering, computer architecture, discrete math, probability & statistics.

DSADATABASESCOMP ARCHDISCRETE MATHPROB & STATS
TRAINING
04
SEC. 04

Contact

The uplink is live.

Open to co-op placements and internships in systems, infrastructure, and platform engineering. If you're building something that has to survive failure, I want to hear about it. (Email works even during the outage; it's store-and-forward. That's the point.)

SAFETY LOOP · NOMINAL
GK-001 console. Type help.
gk@edge:~$
✓ADDRESS COPIED · developwith.gt@gmail.com