Hi, I'm Jacob πŸ‘‹
Full-stack and AI engineer β€” ten years building tools for humans and agents.
JS

About

I build AI systems where the model reasons and a deterministic engine computes β€” agentic harnesses, multi-modal pipelines running local models end-to-end, and the audit-grade data layers underneath them. I build them full-stack: the pipelines, the engines, and the product surfaces people actually use.

It started with my own books. I've traded crypto since 2020, and when I had to do my taxes I realised nothing on the market could reconcile activity spread across many wallets and multiple chains β€” so I built my own: a deterministic double-entry ledger that books crypto and fiat together, derived from rules and raw events and regenerated rather than hand-edited, so every number carries its receipts. It doubles as a trade planning, execution, and analysis engine.

When FTX collapsed in 2022, it was clear the ledger was also a loss-quantification tool: the proof lived off-chain β€” funds frozen on an exchange that never touched a wallet β€” but the same ledger could book those losses, structured and sourced. That set me experimenting with early local LLMs and ML: a multi-modal pipeline (voice transcription, vision, and OCR over screen recordings, PDFs, and statements, all on local models) that turns that unstructured evidence into structured, sourced entries.

When AI matured with Claude 3 in 2024, I put the model in the loop β€” reasoning over messy, unstructured evidence, reconciling it across sources, and classifying it into the ledger's schema, while the deterministic engine keeps the books. The same engine reconstructs any position from raw on-chain events for analytics and due diligence, every figure traceable to source.

Today I run that stack for other people: a done-for-you crypto and fiat reconciliation service. A client hands over wallet addresses, exchange exports, Koinly or CoinTracking reports and bank statements, and gets back a reconciled CGT pack their own registered agent lodges from β€” with the messy tail worked by hand where the tools give up: dead exchanges, missing cost base, DeFi and LP positions, bridge hops, lost keys, theft and scam losses. Read-only and address-only, and the engagement stops at the pack β€” workpapers for their accountant to review, never lodgement or advice.

The tooling is the team: local models where the data shouldn’t leave the machine, agents where the work is repetitive, and hand-built instrumentation where nothing off-the-shelf fits. I write up what holds and what doesn’t.

Open to full-stack and AI engineering roles, including crypto β€” remote, or based in Tel Aviv.

Work

S

Self-employed

2020 - Present
Software Engineer
Ingestion: raw on-chain events parsed into normalized transactions across multiple chains and dozens of wallets β€” hundreds of thousands of events, tens of thousands of transactions reconciled for clients to date. Analytics: Solana P&L and trade-ledger reconstruction for delta-neutral strategies and DLMM market making (Meteora). Bookkeeping: FIFO cost basis, price resolution and per-wallet audit trails, driven by an agentic harness (Claude Code + domain skills) over a local multi-modal pipeline (Whisper, vision/OCR). Forensics: wallet-flow tracing and token/project due diligence on Solana. Fiat: a Xero marketplace app β€” OAuth integration exporting accounting data through a custom REST API, grown into multi-org consolidated reporting on multi-tenant Postgres with Stripe billing, used by REIT, private-credit, lender and vCFO clients β€” plus freelance fiat-valuation work for a finance client (MYOB, Xero).
S

STRV

2017 - 2018
Sales Engineer
Pre-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
Java
SQL
HTML5
React
Node.js
Remix / React Router
Next.js
Data viz / charting (D3.js, SVG)
Tailwind
PostgreSQL
SQLite / FTS5
BigQuery
GraphQL
ORMs (Prisma, Drizzle)
Solana (Anchor, Helius)
Meteora DLMM
On-chain forensics
Xero & Stripe APIs
FIFO accounting
Docker
CI/CD (GitHub Actions)
Testing (Vitest, Playwright)
GCP
AWS
Fly.io
Vercel

Projects

Hooks that keep parallel agents off each other’s work

Fairway

Running several coding-agent windows against one checkout, the failure is never a merge conflict β€” it is one agent staging or merging over work another still holds uncommitted. Fairway is a single Go binary that hooks the agent harness itself: it resolves the repo the command will actually act on, checks it against the sessions genuinely still active, and warns before a wide git operation rather than after. Same idea as the ledger work one level up β€” derive the verdict from observable state instead of trusting anyone to remember.

Go
Claude Code hooks
MCP
stdio JSON-RPC
Git plumbing

Accounting components that move correctly

Ledger UI

A React component library of animated, Excel-literate accounting primitives β€” journal entries expanding to their debit and credit legs, transaction split and merge, reconciliation matching, P&L, balance-sheet and pivot tables, and entry forms with spreadsheet input semantics. The domain constraint is the product: components take double-entry-shaped props and animate only the transitions the ledger permits, so a split visibly conserves its parent total. It composes over a headless engine rather than wrapping a data grid.

React
TypeScript
Motion
Double-entry
Headless components

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

High-volume crypto and fiat reporting

Automated tools reconcile the easy 90% of a position and hand back the 10% that decides the number. This service works that tail by hand, at volume, across crypto and fiat β€” and quantifies the gap in dollars rather than hiding it.

TypeScript
React Router
Postgres
Solana decoders
FIFO cost basis
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