Loqal — a CRM & communications platform, built solo
✓ VERIFIEDA full customer platform — pipelines, quotes, invoices, subscriptions, tickets, chat and calling — taken from empty repo to running product by one person, backend to browser.
I build systems that can’t quietly lie — reports that won’t emit an unverified number, send-gates that log every decision to a tamper-evident ledger, guardrails that fail closed. This page works the same way: every claim below carries the receipt that proves it.
Shipped a 177-table CRM & communications platform solo — backend, database, and browser UI.
Try it ↓Report and email engines where an unverified fact is structurally blocked from ever being sent.
Try it ↓Real Model-Context-Protocol servers and multi-agent orchestration — the workflow that verified this page is one of them.
Try it ↓Diagnosed a self-forking group-messaging livelock and wrote the named regression test that encodes the fix.
Try it ↓Single send choke-points, hash-chained tamper-evident ledgers, human-in-the-loop that can’t approve itself.
Try it ↓43 services and 26 timers running hands-off on an $80 board, supervised and self-monitoring.
Try it ↓A 32k-line Flutter mesh messenger; published a Rust↔Dart binding for real MLS encryption on pub.dev.
Try it ↓Each skill above, rebuilt as something you can operate. Three of them run the actual algorithm live on your own machine; the other four are honest simulations of systems whose receipts are in Selected Work below. Nothing here calls out to a server — it all runs client-side.
What you are proving: data modeling, full CRUD, live derived aggregates, and state that survives a refresh.
A UI slice, in-browser only. The production system, Loqal, runs on Go + PostgreSQL: 177 tables, 368 routes, 50 migrations, built solo.
Prove it: no number leaves this report unless it matches a verified fact.
Verified facts (the only figures allowed)
Draft report (edit me)
Gate view
Try to sneak one past it: change 1,240 to 5,000, or hide an invisible character inside a fake number — the scanner strips the trick and still catches it.
This is the real gate algorithm, running live in your browser - not a mock. It mirrors the production 3-layer report engine (report_engine.py, standard-library only), which withholds output rather than emit an unverified fact. No real revenue or customers are implied.
Watch a coordinator fan work out to parallel agents, then let an adversarial trio vote each finding before it is confirmed.
What you are proving: that reordering one dedup step turns a self-forking concurrency bug into a convergent write.
A faithful model of the real bug class. The production fix lives in a relay repo, pinned by a regression test named TestG2_DedupBeforeCAS.
Prove that editing any past entry is detectable: each row's hash is chained to the one before it, so a single silent change breaks verification.
| seq | data (editable) | prevHash | rowHash |
|---|
ledger.py (SHA-256 chain; verify passes at 81 rows). No revenue or customer data is implied here.
Proving: services that crash get caught and self-heal, and each watchdog names the dated outage that created its guard.
Simulation. The real estate runs 43 services and 26 timers unattended on a Raspberry Pi 5, each watchdog named after the outage that created it.
What you are proving: messages hop device-to-device across an offline mesh with no server, and removing a member re-keys the group so they cannot read messages sent afterward.
Tap a link to connect / disconnect two phones. Tap a phone to choose the sender.
Simulation. The encryption engine is OpenMLS (RFC 9420); the author wrote and published the Flutter/Rust bindings on pub.dev. This visualizes the mesh routing and group-membership behavior.
A full customer platform — pipelines, quotes, invoices, subscriptions, tickets, chat and calling — taken from empty repo to running product by one person, backend to browser.
A customer-facing report generator where every number and phone must trace to a measured value. Three enforcement layers scan the rendered text; if a single figure isn’t backed by a fact, the report is withheld rather than sent. It defeats comma-grouping and hidden-character tricks used to smuggle fake stats through.
A single gate that no outbound message can bypass, logging every decision to an append-only, hash-chained ledger. Each row is sealed with the hash of the one before it, so the record can’t be altered after the fact without detection — the auditability that regulated and AI-governance work demands. Built and integrity-verified; it is the enforced path, not yet carrying production send volume.
Published an open-source Rust↔Dart binding that makes real Messaging Layer Security (RFC 9420) group encryption usable from Flutter — including an encrypted-storage layer and a post-quantum key-exchange experiment.
Honest scope: the encryption engine is the open-source OpenMLS project. My work is the ~8,000 lines of binding and integration around it, published as openmls on pub.dev — integration, not authorship of the protocol.A ~32,000-line Flutter client that passes end-to-end-encrypted messages peer-to-peer over an offline device mesh. The engineering story is a distributed-systems bug: under a specific race, a group could fork itself. I traced it to dedup-before-compare-and-swap ordering and captured the fix as a named regression test that encodes the exact behavior it must hold.
Honest scope: the ~32k Dart (mesh transport, session orchestration, UI) is mine; the encryption is the OpenMLS binding above. The livelock fix itself lives in a separate relay repo — the test here names the behavior that fix must hold.Several working Model-Context-Protocol servers (browser automation, CRM, content, mail) and a multi-agent orchestration layer that fans work across agents and re-checks their output. The hostile fact-check that verified every number on this page ran on that layer.
Honest scope: tool handlers and orchestration are mine, built on the official MCP SDK; heavy lifting (browser, LLM, video) uses vendored libraries. Most run on-demand, not as always-on production services.The whole system runs unattended on a Raspberry Pi 5 — supervised services, kill switches, spend interlocks, and watchdogs whose one rule is that every monitor names the dated outage that created it. Incident → permanent instrumented guard, every time.
Took over the entire online presence of a local business — website, DNS, email deliverability, trust pages — and wrote a launch gate that forbids ad spend until the live site is actually ready to convert. The refusal to spend is the deliverable: no budget burns while the page can’t earn it back.
Honest scope: client shown anonymized pending permission. No revenue or results are claimed — this is about the engineering and the discipline.Open to engineering roles and project work — especially applied-AI, guardrails, and full-stack.