/ 00 / IndexTimi Owoturo · Ontario · 2026

The AI you ship
should be the AI
you own.

I build AI systems for the kind of company that can't hand its data to a third party. Treasury. Legal. Medical. Defense. The architecture stays on your infra. Credentials stay on the device. Memory stays in your database. The only thing that touches a vendor is the model, and even that is one config line away from being swapped.

Get in touchSee the workor keep scrolling ↓
/ data residency● LIVE
Bank session
device
DOM payload
device
Extraction codecached
device
Transactions
your DB
Memory recall
your DB
Model inference
your contract
OpenAI / Anthropic / self-hosted
Vendors with your data
0
Provider lock-in
1 env var
5
Systems running
0
Credentials brokered
8yr
Consulting + product
100%
On-device sensitive paths
Your data should not need to leave the room.The cheapest LLM call is the one you don't make.LLMs are compilers, not runtimes.Memory is infrastructure, not a feature.MCP is the substrate. Design for it.Ship the boring half well before the magical half.Sovereignty is a posture, not a checkbox.Closed where it must be. Open where it earns trust.Trust comes from defaults, not promises.Your data should not need to leave the room.The cheapest LLM call is the one you don't make.LLMs are compilers, not runtimes.Memory is infrastructure, not a feature.MCP is the substrate. Design for it.Ship the boring half well before the magical half.Sovereignty is a posture, not a checkbox.Closed where it must be. Open where it earns trust.Trust comes from defaults, not promises.
/ 01 / Posture

Three things stay yours.

Most AI vendors win by abstracting your data, your models, and your interface away from you. I invert all three.

01pillar

Your data.

Architecture before features.

Every system I build starts with a residency map. Where does each byte live and who can read it. Credentials stay on the device. Memory lives in your database. The model is the only thing that talks to a vendor, and that vendor is one env var away from being replaced.

Credential exposure0 vendors
Data egressuser-controlled
Provider lock-in1 env var
02pillar

Your models.

Compiled, cached, swappable.

LLMs are expensive at runtime and cheap at compile time. I generate the extractor once, cache the deterministic JS, and run it free forever. Frontier prices for code-gen. Nano prices for classification. The right model for the right job, not one model for everything.

Per-bank parse cost~$0.0001
Re-compile frequency5 to 15x a year
Cost asymmetry1,000 to 1
03pillar

Your interface.

Conversational by default.

MCP is not a feature. It is a substrate. Every system I ship exposes a typed tool surface so Claude, ChatGPT, or your internal agent can read, write, and reason over it from day one. The dashboard is a side effect.

MCP coveragefirst-class
Surfaces shippedweb · iOS · CLI · agent
Time to first queryminutes
/ 02 / Track record

Not my first
engagement.

I have been consulting since 2018. Happy to share references on a call.

2026
Now
Owoturo · Independent
AI infrastructure for the verticals listed below.
2020 / Now
6 years
Senior engineering · Fortune 500 company
The day job that the side projects sit on top of. Independent work runs alongside, not instead of.
2024
6 months
Fractional engineering · Early-stage startup
Engineering work for a venture-backed startup.
2018 / 2020
2 years
Consultancy · Multi-client engineering
Two years inside a consultancy serving a rotating roster of clients across fintech and ops.
References available on request
/ 03 / Capabilities

Six things I build,
over and over.

One person, so I say no to most work. These are the systems where the architecture actually matters. Where the difference between a good answer and a bad one is whether you can defend the data path.

/ 01

LLM-as-Compiler systems

Generate code once. Run it free forever.

DOM extractors, structured-output pipelines, document parsers, code-mod tools. The LLM writes a pure function. You cache it. You run it deterministically for the next year. Frontier costs at the compile step, nano costs at runtime. Most teams reach for an LLM at every request. That is how budgets disappear.

Stack
  • ·GPT-5
  • ·Claude Opus
  • ·Static analysis allowlist
  • ·Schema validators
Outcome

10x to 1000x cost reduction vs per-request LLM calls

/ 02

User-owned memory and MCP

Make Claude remember. Make ChatGPT remember. Make your agent remember.

A persistent memory layer that lives in your infrastructure and connects to every Claude and ChatGPT surface via MCP. Tokenized recall. Tag-weighted scoring. Postgres or self-host. Same memory across CLI, GUI, web. The opposite of vendor-locked Project Memory.

Stack
  • ·NestJS
  • ·Postgres
  • ·MCP SDK
  • ·Streamable HTTP
  • ·OAuth 2.1
Outcome

Cross-surface continuity. Switch vendors without losing context.

/ 03

Sovereign data ingestion

Pull from the source without selling it.

WebView-based on-device extraction for bank portals, healthcare records, internal admin tools. No Plaid. No Persona. No data processor sitting between you and the source. Credentials live in the device session and nowhere else. The same architecture serves a household and a fifty million dollar family office.

Stack
  • ·WKWebView / WebView2
  • ·Native iOS / Android
  • ·Per-source extractors
  • ·Drift detection
Outcome

Zero credential brokering. Zero per-user vendor cost.

/ 04

Conversational treasury and ops

Your books, queryable in plain English.

Multi-source aggregation, automatic categorization, recurring-charge detection, anomaly surfacing. Wired to a typed MCP so any LLM agent can answer “what is our cash position across all entities” in one query. It replaces the spreadsheet, not the controller.

Stack
  • ·Firestore / Postgres
  • ·OpenAI gpt-5-nano
  • ·MCP tools
  • ·Real-time sync
Outcome

Hours of monthly close compressed to one conversation.

/ 05

Local-first agent surfaces

Bring the agent to the workstation, not the workstation to the cloud.

Desktop and mobile clients that run Claude Code, MCP servers, and tool permission flows entirely on-device. Worktree git ops. Custom permission prompts. Conversation history. All local. Approved for environments where the cloud desktop apps are not.

Stack
  • ·Electron
  • ·Node IPC
  • ·MCP HTTP bridge
  • ·Native shell
Outcome

Use Claude where Slack and Notion and Codex cannot go.

/ 06

AI-native developer platforms

Internal tools that scale with your engineers, not against them.

Rust execution services, semantic-merge version control, file-tree IDEs, streaming terminal UIs. Built for teams who want a Linear-grade interior for the engineering work that today lives in fifteen disconnected tabs.

Stack
  • ·Rust
  • ·WebSocket
  • ·xterm.js
  • ·TypeScript monorepo
Outcome

One surface for the whole inner loop.

/ 04 / Selected work

Systems that already
survived contact with users.

Five systems I have built and run. All owned by the people they serve, not by me. Each link opens a full case study with the architecture, the trade-offs, and the receipts.

= open to commercialization
/ 01
Finance · Treasury
2026, ongoing

OpenTeller

AI-native treasury for households and institutions that can't use Plaid.

A sovereign personal-finance and treasury system. The native iOS app pulls transactions straight from bank portals through an on-device WKWebView. Credentials never leave the phone. An LLM-as-compiler pipeline writes a JavaScript extractor once per bank, caches it, and runs it deterministically forever. An MCP server exposes the whole dataset to Claude and ChatGPT for conversational queries.

Case study· Architecture, full-stack, iOS, MCP
Banks supportedAny. Compiled per bank on first sync.
Per-bank compile cost~$0.0001
Credential vendors involved0
StackiOS · Node · Firestore · MCP · GCR
/ 02
Memory · MCP
2026, ongoing

Brain

A persistent memory primitive that follows you across Claude.ai, ChatGPT, the CLI, and your tools.

A user-owned memory layer with tokenized recall, tag-weighted scoring, and a single MCP endpoint that every Anthropic and OpenAI surface can mount. It replaces the labs’ built-in memory with something that lives in your Postgres and survives the next vendor switch.

Case study· Architecture, Nest server, MCP
Search algorithmTokenized · OR-match · tag-weighted
Surfaces wiredClaude Code · Claude.ai · ChatGPT · GUI
TransportStreamable HTTP · stateless
StackNestJS · Postgres · MCP SDK · Cloud Run
/ 03
Productivity · Email
2026

Brief

An AI copilot for the inbox that briefs, drafts, and remembers, without becoming the inbox.

Daily briefings, draft generation, and conversational search on top of Gmail. Auth, briefing, chat, and memory modules wired through a clean NestJS service. OpenAI for generation. The memory module makes the assistant feel like it actually knows you instead of starting from scratch every morning.

Case study· Full-stack, server architecture
Modulesauth · briefing · chat · gmail · memory
SurfacesWeb · API
PersistencePostgres + TypeORM
StackNestJS · React · OpenAI · Google APIs
/ 04
Developer · Local agents
2026, ongoing

Claude Code GUI

A local Electron surface for Claude Code in environments where the official desktop app isn't allowed.

Native UI on top of the Claude Code CLI. Conversation history, worktree git operations, markdown rendering, and an MCP permission bridge that surfaces tool approvals as modal dialogs. Approved for enterprise environments where Anthropic’s desktop client is blocked. Distributed inside teams. Not a SaaS.

Case study· Architecture, Electron, MCP bridge
DistributionInternal / dev-only
Permission modelCustom MCP server + HTTP bridge
PackagingAppImage · pacman · macOS dmg
StackElectron · Node · MCP SDK
/ 05
Developer · Platform
2026, R&D

Semantic VCS

A version-control platform built around semantic merge and an embedded agent runtime.

A Rust monorepo with three services. API, collab, and a WebSocket-based execution streamer. Together they host a file-tree IDE, run buttons, streaming terminals, and a semantic merge engine. Substrate for the next generation of agent-friendly developer tools.

Case study· Rust services, platform architecture
Servicesapi · collab · exec (all Rust)
FrontendReact · xterm.js · Catppuccin
StackRust · WebSocket · TypeScript · Vite
/ 05 / Where this fits

Patterns for the rooms
data can't leave.

Some of these I have shipped. Some I have only sketched. The architecture is the same in every room. If your data already lives in OpenAI’s context window, you do not need me. If it does not, or if it should not, here is what the pattern looks like in your vertical.

FIN● Shipped

Finance & Treasury

Family offices, VC firms, multi-entity holdcos, regulated SMBs. Replace Plaid-bound aggregators with on-device extraction. Conversational queries across the whole capital stack.

  • Cash position across 12 entities
  • Reconcile multi-currency intercompany
  • Recurring-charge anomaly detection
LEG○ Pattern

Legal & Compliance

Firms whose discovery, contracts, and matter notes cannot enter a third-party LLM context window. The same architecture that keeps bank credentials on-device keeps privileged matter on-tenant.

  • Privileged-document Q&A
  • Contract diff with semantic merge
  • Matter-scoped agent memory
MED○ Pattern

Medical & Healthtech

Clinics and providers under HIPAA / PHIPA who need AI on top of EHR data without giving the EHR data to a vendor. The on-device + MCP-gated pattern fits cleanly. Domain compliance work would partner with someone cleared.

  • Pre-visit briefing from chart history
  • Coding & billing copilots
  • PHI-safe MCP routing
DEF○ Pattern

Defense & GovTech

Air-gapped or sovereign-cloud environments where the model itself is a contract decision. Architecture that swaps inference providers in one config line. Cleared engagements would require a cleared partner.

  • Self-hosted inference behind MCP
  • Cleared-environment agent surfaces
  • Compliance-grade audit logs
INT● Shipped

Internal platforms

Engineering teams who want a Linear-grade interior for the inner loop. IDE, runtime, version control, agent dispatch. Without buying into a SaaS roadmap.

  • Internal Claude Code surface
  • Semantic merge for monorepos
  • Local-first agent runners
AGT● Shipped

Agent companies

Startups building vertical agents who need the substrate beneath the agent to be production-grade and theirs. Memory. MCP tools. Conversational data layer.

  • Production MCP servers
  • Cross-surface memory primitive
  • LLM-as-compiler patterns
/ 06 / How this actually works

Sketch first.
Build only if it earns it.

No discovery deck. No SOW novel. We talk for an hour. If it fits, the engagement starts with a four-week paid sketch. If the sketch reveals the project is wrong-shaped, you stop there with an artifact and no sunk cost. If it’s right-shaped, we move into a build sprint. Fee is fixed at each phase. Scope is fixed at each phase.

01Week 0

Diligence

A free 60-minute call. I read the codebase, the threat model, and the data-flow constraints. You leave with a written architecture sketch and a yes or no on whether I am the right person, even when the answer is no.

Deliverables
  • Architecture sketch
  • Threat-model note
  • Honest no-go criteria
02Weeks 1 to 4

Sketch

A four-week paid engagement. I write the full architecture spec and build a pilot of the riskiest piece end-to-end. Lower commitment than a full sprint. If the sketch reveals the project is wrong-shaped, you stop here with a useful artifact and no sunk cost.

Deliverables
  • Architecture spec
  • Pilot code, deployed
  • Build-or-stop recommendation
03Weeks 5 to 11

Build

Optional. A seven-week sprint to a working production system, at fractional cadence. One Slack channel. One git repo. One weekly demo. Code lands on your infra from day one. No staging-vs-real divergence. No agency theatre.

Deliverables
  • Production system, deployed
  • Weekly demo log
  • All code in your GitHub
04Week 12

Handoff

I write the docs your team will actually use. Runbooks, ADRs, an operator’s guide. I walk your engineers through the substrate. Optional retainer for a quarterly architecture review.

Deliverables
  • Runbook
  • Architecture decision records
  • Optional retainer
/ Fee

Phase priced.
Fixed at each step.

No hourly · No retainer trap

Each phase has one number, agreed up front. The four-week sketch is the entry point. The six-week build is its own quote, only if the sketch earns it. Pricing is project-by- project. We talk on the intake call.
/ 07 / Writing

Patterns,
written down.

The architectural shapes that keep recurring in the work. Written for engineers, not buyers.

ArchitectureMay 2026

LLMs are compilers, not runtimes.

Most teams pay frontier prices to do work that should have been compiled once and cached forever. Here is the pattern that turned a $400 a month parsing bill into eight cents.

SovereigntyApril 2026

Why the labs will lose the memory primitive.

Project Memory, ChatGPT Memory, Claude Memory. Three vendors converging on the same lock-in. The architecture that wins is the one you own.

TreasuryApril 2026

The Plaid-shaped hole in regulated finance.

Open banking is still slipping in Canada. Family offices do not trust per-user data processors. WKWebView and LLM-as-compiler is the architecture that ships now.

Read →11 min
/ 08 / Intake

Let's build
the thing
they can't.

One Slack channel. One git repo. One demo a week. Fractional cadence, 10 to 12 hours a week. One slot open this quarter. Send me what you are trying to ship and what the data path looks like. I write back within a few days.

Replies within a few days · No discovery deck

Email
hello@owoturo.com
Ontario
GMT-4 / EST