Pranjal Sailwal

recovering from log

  1. seq 0000recovering from log

Things I built to find out.

Each project starts with the question it asked, then what I built, who it was for and what the numbers said. Open one and it plays as a short film, with the stack in the audience and the repository behind it.

9

projects written up, each with its repository linked

Keep scrolling: the projects run sideways, flagship first.

AetherScan

“How much can you trust a single air-quality reading?”

Air quality platform quantifying disagreement between 8 sensor networks

11

data sources, each with licence, rate limit and how provenance is kept

53

API route handlers

12

backend test files, each named test_*.py

recorded real data 366 days of Dehradun air quality from a file in my own files (PM2.5 from 5.4 to 155.3), drawn as a skyline that is tall in winter and low in the monsoon. The file states no source

NitroDB

“What actually keeps a database's data safe through a crash?”

An embedded LSM-tree storage engine, built from papers with no tutorial

68

unit and integration tests

42

concurrency outcomes checked, 0 failed

2.25M

point reads a second in a one-iteration smoke run

recorded real run 60,000 writes in a recorded run of the real engine, drawn as its own SSTable files on each level, from the first flush to after compaction

SyncState

“Can people keep writing together when the network drops?”

An offline-first collaborative editor that doesn't need the network to keep working

Yjs

CRDT library behind the merging (integrated, not written from scratch)

0

automated tests in the repository

recorded real run 226 characters in the text two Yjs replicas merged to after 40 recorded steps, drawn as two threads that part and then braid. Yjs is the library SyncState builds on

Spectral Monte Carlo Path Tracer

“Is this render right, or does it only look right?”

A physically-based C++ renderer, cross-validated at 1.81M samples/sec

1.81M

samples a second, checked against an analytical answer

BVH

bounding-volume hierarchy for ray traversal

NeuroTract

“Can research software refuse bad input and show how every result was made?”

A diffusion MRI research workstation: tractography, connectomes and provenance in one interface

31

pytest tests

live

job progress streamed to the browser as server-sent events

sha-256

dataset checksums stored with every result

Appwrite Migration Guard

“Did the migration really move everything, and can it say why not?”

A local-first CLI that checks an Appwrite migration did what it should, and says PASS, WARN or BLOCK with a reason

11 of 11

planted changes caught in a live pass, no false positives

8

commands, all working against live Appwrite Cloud

0

passwords, emails or environment variables collected

Growth Intelligence Lab

“Why did the cost per conversion jump four times over?”

A growth analytics platform that finds why cost per conversion jumps 4x when spend rises 19x, using only public data

98.1%

of the cost increase happened after the click

19.2x

more spend in the larger campaign

73.8%

drop in post-click approved conversion

Geodesic Flow and Spectro-Geodesic Explorer

“What happens to light if curvature bends each colour differently?”

Two linked research tools: geodesics on curved surfaces in WebAssembly, then light that splits by wavelength as it travels them

2

preprints on ResearchGate about the geodesic tools: the wavelength-resolved explorer and the WebAssembly engine

10

parametric surfaces to explore, from sphere to Klein bottle

12

wavelengths sampled from 380 to 780 nm

SecureHost Control Suite

“Can one place decide what reaches the network, the camera and the mic, and keep a record?”

A Windows service, GUI and CLI for allowing or blocking network connections and devices by rule, with an audit trail

4

components: core library, service, GUI, CLI

3

default policy rules

DPAPI

policy storage encrypted with Windows data protection

Everything else I've put on GitHub.

No write-ups for these yet. Point at one for what it is, how long it took, and the links.

data as GitHub reports it 27 public repositories drawn as towers, taller for more code, coloured by language, with a bead on those pushed in the month before the latest push

  • GitlensTYPESCRIPTJUN 2026 → JUN 2026 · 102 KBG

    Gitlens

    GitLens Explorer is a full-stack application that allows users to search and explore GitHub profiles and repositories. All GitHub API calls are proxied through a Node.js backend with a 60-second in-memory TTL cache, preventing unnecessary API hits and providing a buffer against rate limiting.

    TypeScriptJun 2026built in a day

If something here is worth asking about, write to me.

  1. seq 0001you arrived
  2. seq 0002write back