Selected work

Things that
actually shipped.

A working studio doesn't get the luxury of vapourware. Everything below is public — the repository, the licence, the download count. Click any of it and check.

01
Open Source · Geospatial · TypeScript 2022 — Now Author & maintainer

Maritime Routing Engine

Challenge

Sea-route libraries were either commercial, unmaintained, or quietly wrong around the places that matter most — canals and chokepoints. Logistics teams kept rebuilding the same flawed shortest-path over the same bad graph.

Approach

Open-source it properly. searoute-ts ships the 2025 Eurostat maritime network, canal and strait restrictions (Suez, Panama, Bab-el-Mandeb), vessel-draft gating, K-shortest alternatives, multi-leg waypoints, and ETA from speed — behind a stable, MIT-licensed npm API.

Result

Now downloaded roughly 13,000 times a month and actively maintained. It is the open-source backbone of everything else we do in logistics.

02
Product · MCP · Microsoft Graph 2026 — Now Author & maintainer

Teamsly — Teams, Rebuilt

Challenge

Microsoft Teams is unavoidable in enterprise and unloved by the people who live in it all day. Slow, mouse-bound, and completely closed to the AI tooling everyone now works alongside.

Approach

A keyboard-first client built directly on the Graph API — AI thread summaries, voice rooms, themes, disappearing DMs — plus an MCP server so Claude and Cursor can read and send Teams messages as first-class tools.

Result

Open-source and self-hostable, distributed through a Homebrew tap. One of the first Teams clients to expose itself over MCP.

03
Developer Platform · Web Components 2026 — Now Author & maintainer

Lit Pigeon — Email, Unlocked

Challenge

Every email editor on the market is either locked inside someone's SaaS or welded to one frontend framework. Teams end up rebuilding the same drag-and-drop composer for the third time, in a fourth framework.

Approach

Build the editor once as framework-agnostic web components, then ship thin wrappers for React, Vue, Angular and Svelte over a shared core — with MJML parsing and rendering, SSR, a REST adapter, pre-flight linting, Figma import, and an MCP server for authoring emails from an AI client.

Result

Fourteen MIT-licensed packages on npm covering the full pipeline from Figma frame to rendered, spam-checked HTML.

04
Design System · MCP · Multi-framework 2026 — Now Author & maintainer

mcp-elements — UI for AI Apps

Challenge

Every team building on MCP reinvents the same interface problems from zero: how do you render a tool call, ask for OAuth consent, show a scope inspector, or generate a form from a JSON Schema — without it looking like a debug view?

Approach

A copy-paste component library in the shadcn tradition — the CLI writes source into your project rather than adding a dependency. Framework-agnostic state machines in the core, with React, Vue and Angular implementations over a shared Tailwind v4 OKLCH token layer.

Result

Thirty-eight components across three frameworks, including MCP-native primitives no other library ships.

05
Industrial IoT · Embedded · Research 2017 — 2019 Lead engineer & co-author

ELIOT — Smart Energy Telemetry

Challenge

Distribution grids in tier-2 Indian cities had almost no real-time visibility into consumption or load, and wholesale meter replacement was neither politically nor economically possible.

Approach

A drop-in device that reads an existing analogue meter by counting its kWh pulse LED, reports hourly usage over MQTT, and gates supply on a prepaid balance — recharged through a web portal, with a 24-hour grace period at zero.

Result

Published in the International Journal of Computer Applications (August 2017). Second Runner-up at Smart India Hackathon 2018, where it was recognised by India's Ministry of Power & Coal as a best electricity-monitoring solution.

06
Open Source · Developer Experience 2019 — Now Author & maintainer

Developer Tooling

Challenge

The same small frictions cost engineering teams real hours: PR review queues that rot, HTTP failures you cannot reproduce, CI that rebuilds everything on every push.

Approach

A set of narrow tools, each built because we hit the problem first. SherlockQA reviews pull requests with AI and leaves inline comments. httpx-debug turns any failing Python request into a paste-able, secret-redacted curl. Angular Setup and Nx Affected cut monorepo CI down to what actually changed.

Result

All MIT-licensed and published — on the GitHub Marketplace, npm, and PyPI.