NOTES FROM THE WORKBENCH

A few hard problems.
And a way through.

A few engineering stories from the day job. The constraints, the wrong turns, and the ideas that made things click.

NOTE 01Front End

Tracked Changes (Red Lining) on Rich Text Editor

Pactio — a SaaS platform for Big 4 firms generating tax documents. Our main customer (£800K/year) was adamant they needed Word-style tracked changes—an editing mode where deletions appear as red strikethroughs and additions in green. This was the primary blocker for employee adoption.

The challenge

The existing attempt worked only on trivial cases (plain text within a paragraph) but completely failed for dozens of "edge" cases: line breaks, bullet points, tables, nested formatting. The project was considered impossible when the CTO asked me to salvage it.

The way through

Flipped the problem: instead of diffing rich text (inherently problematic), I built a Lexical plugin intercepting keystrokes and clipboard events, manually modifying the document tree. While there were many cases to cover—add, delete, backspace, paste, cut—each multiplied by cursor position, selection state, and existing tracked changes—this was a finite, solvable set. Delivered to production in 2 months.

Unlocked enterprise adoption—feature loved by customers at Big 4 accounting firms.

TypeScriptReactLexicalWebSocketTree Algorithms
NOTE 02AI

AI-Powered Reconciliation System

Rowan AI — an Excel AI plugin for accountancy workflows. Reconciliations are a tedious manual task accountants perform constantly: comparing two lists of items (e.g., bank statements vs. accounting system transactions) to find matches and discrepancies.

The challenge

Lists can contain hundreds of items with only partial matches. Dates differ (payment sent vs. received), descriptions are arbitrary, and amounts may have rounding errors—making naive matching impossible.

The way through

Built an algorithmic reconciliation engine callable by the AI, where the LLM defines the matching parameters dynamically. For instance: "Column A should match Column C within 5% tolerance, dates within 3 days." This expressive system lets AI find mismatched transactions with high precision while preserving user expectations that better prompts yield better results.

99% reliability on complex reconciliations with 1000s of items.

TypeScriptLLMsOpenAIExcel APIMatching Algorithms
NOTE 03Back End

Scaling Backend for Live Sports Data Streaming

IMG Arena — a sports data company. The backend of the new product connected to hundreds of legacy WebSocket endpoints to produce a live GraphQL schema.

The challenge

Two weeks before a live UFC event with customers, scaling tests revealed the upstream service couldn't handle the required WebSocket connections—it was designed for single-server ingestion.

The way through

Architected a primary/secondary server split using Redis PubSub as the communication layer. The primary server ingested WebSockets and published GraphQL subscriptions to PubSub. Secondary servers acted as lightweight relays, subscribing via GraphQL query hashes—enabling horizontal scaling without upstream changes.

Delivered on time, scaling correctly and supporting upwards of 1M live connections.

Node.jsTypeScriptGraphQLRedis PubSubWebSocketKubernetes

A FEW MORE

Also in the notebook.

↳

Auto page-break engine with live preview for complex documents

Front End
↳

Spreadsheet style extraction using DFS and greedy algorithms

AI / Algorithmic
↳

MVP of augmented streaming product—turning stakeholder vision into reality

Full Stack
↳

Trello-like drag and drop working on mobile, built from scratch

Front End
↳

A* pathfinding to generate structure chart documents on demand

Front End / Algorithmic
← Back to the creations