Hi, I'm Jacob 👋
I’m building infrastructure for agentic workflows: budget monitoring and guardrails for agents.
JS

About

I started building in crypto in 2020, and when I had to do my taxes nothing could reconcile activity spread across many wallets and chains, so I built my own software for that (see my project Ledger AI). The FTX collapse in 2022 pushed me into local LLMs to structure unstructured evidence and quantify losses. When Claude 3 launched in 2024 I put a model in the loop and started building budget monitoring tools and guardrails for agents (see my project Fairway). I also do freelance work building software in regulated industries (see Verify My Order).

Open to AI and full-stack engineering roles — remote, or based in Tel Aviv.

Work

S

Self-employed

2020 - Present
Software Engineer
Verify My Order — contact-lens prescription verification for a US retailer, built end-to-end as sole engineer. A companion Shopify app: orders don’t ship until a prescription is verified — a state machine that negotiates between doctors, patients and the retailer over multi-channel communications. Regulated-sector approval engine with legally binding response deadlines, scoped directly with the non-engineers who own the process. https://verifymyorder.com · https://dimplecolor.com Private REIT — three-statement financial model built end-to-end as sole engineer from general-ledger and budget data, including custom integrations with Xero/MYOB via OAuth2 and banks via Basiq (AU bank-feed API). Inherited a complex VLOOKUP-reliant Excel workbook; iterated across 4+ tech stacks to find the right fit: (1) Python + xlwings, (2) Google Apps Script, (3) MS Access + SQL Server, (4) MS Excel with Power Tools. The MS stack landed as the answer. The technology was the easy part; the hard part was change management — getting finance users comfortable with dates as a time-series column rather than a crosstab, the shape that enables slicers and that the Power Pivot columnar engine needs. Power Query replaced the VLOOKUP chain, feeding a star-schema data model; DAX composed the three statements; CUBE functions pivoted them back into the P&L and balance-sheet layouts users expected; Power BI on top.
S

STRV

2017 - 2018
Sales Engineer
Sales engineering at a US software-development agency (New York) — scoping custom software builds and translating client requirements into project specs.
A

Atlassian

2014 - 2015
Software Engineer Intern
Software engineering internship in the Jira/Confluence ecosystem, during my UNSW engineering degree.

Education

U

University of New South Wales

2012 - 2016
Bachelor's Degree in Engineering (Electrical)
Electrical engineering — signals, control systems, and embedded design. Where the systems thinking started.

Tech Stack

Agentic AI / LLM tools
RAG / semantic search
Tool calling / function calling
Prompt & context engineering
Evals / structured output
Local LLMs (Llama, MLX)
Multi-modal ML (Whisper, Qwen3-VL, OCR)
Inference optimization (quantization, batching)
MCP
TypeScript
Python
Rust
React
Node.js
Remix / React Router
Next.js
Data viz / charting (D3.js, SVG)
Tailwind
Radix / shadcn
Zod
PostgreSQL
Redis
SQLite / FTS5
ORMs (Prisma, Drizzle)
Solana (Anchor, Helius)
On-chain forensics
Xero & Stripe APIs
Inngest (durable workflows)
Docker
Kubernetes / Helm
CI/CD (GitHub Actions)
Testing (Vitest, Playwright)
Sentry
GCP
AWS
Fly.io

Projects

Extends /insights, /usage, claude agents and hooks

Fairway (MIT): devtools for Claude Code

Guardrails and devtools for collaborating agents. Claude Code’s docs tell you what to do when you ask; Fairway tells you what to do when you don’t know what to ask, and gives you hooks to encourage patterns and discourage antipatterns. For example, a concurrency guard that intercepts wide git operations (reset --hard, checkout ., force push) before one autonomous coding agent clobbers another’s uncommitted work — multi-agent-safe by design, no shared state between sessions, pre-run interception at the hook layer.

Nine small tools sharing one Go binary, one WAL-mode SQLite store and one MCP server, so anything one tool writes another can read — each extending commands Claude Code already ships (subset: /insights, /usage). Pick the ones you want: most are read-only pull commands that need nothing installed, and two wire into your setup with explicit install and uninstall verbs. The binary alone creates no files, opens no ports, writes no config. Next: budget management for agents, built on the reconciliation primitives from Ledger AI.

Go
Claude Code hooks
MCP
JSON-RPC 2.0 over HTTP + SSE
SQLite (WAL)
Git plumbing

Done-for-you · the messy tail worked by hand

Ledger AI: forensic crypto and DeFi tax bookkeeping

Koinly and CTC handle the easy 90%; Ledger AI handles the hard 10% — the DeFi protocols and decentralised exchanges the automated tools give up on, decoded into statements accountants and tax offices accept. Works that tail by hand, at volume, and quantifies the gap in dollars rather than hiding it. Also includes fiat extensions for Xero and MYOB. Hundreds of thousands of on-chain multi-chain events parsed, tens of thousands of fiat transactions reconciled for clients to date.

Backend: React Router v7 + TypeScript server with PostgreSQL and Prisma, ~60 Prisma tables shaped to the GnuCash schema. Inngest orchestrates a multi-step pipeline that ingests Solana on-chain events (via RPC and Anchor). Multi-tenant access via Postgres RLS over Zanzibar-lite access grants.

Frontend: React components that feel familiar if you’re used to MS Excel, optimised for information density. SSR via React Router v7; per-report view state (filters, pagination, selection) in an HMAC-signed cookie with Zod schemas; TanStack Table with keyboard navigation; inline mutations with useFetcher; Framer Motion over Radix UI. Built as a headless engine for distribution.

Agent Harness: Python pipeline for ingesting unstructured data from voice, vision and OCR using local models on MLX (Apple Silicon). Model choice per task via evals (vision-language models benchmarked for OCR on legible vs degraded documents). Structured output feeds downstream pipelines like Ledger AI.

TypeScript
React Router
Postgres
Solana decoders
FIFO cost basis

Writing

See all
Follow Along

Building in Public

I write about building crypto and financial-data tools — and what I learn using AI to ship faster.

Settings

Theme