Skip to content

About

Ken Deibel — systems engineer, AI agent harnesses + field-services background

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Ken Deibel · datumstake

Systems engineer building local-first AI agents — with a field-services / geospatial background. I design harnesses that make small, swappable models do large, verifiable work: the intelligence lives in the system around the model, not in any one model's weights. Before software, a heavy background running Trimble line-of-sight positioning systems in the field — where a wrong answer costs a dug-up site, so verification isn't a nice-to-have.

Available for contract work in document extraction pipelines, AI/agent systems, developer tooling, backend infrastructure, and software that touches surveying / field-services / geospatial.


What I work on

Agent harnesses over model fine-tuning. My main system runs local models through a persistent, content-addressed memory and a retrieval layer (living RAG) instead of training — so the same harness keeps working when the model underneath is swapped. The capability accumulates in tools and records, which means it is inspectable and portable rather than frozen in a checkpoint.

Verification-first execution. ratchet is the shape: a workload is reduced to an objective contract — a metric command, a propose command, a rollback command — and a change is kept only when the metric verifiably improved. A small model drives real multi-step work and never gets a vote on whether it worked; the measurement decides what lands.

Documents that resist being read. PDFs, drawings and scanned forms, extracted into structured rows that can be audited. The parsing is the easy half; the hard half is refusing to emit a row that cannot be traced back to a spot on the page -- a wrong value that looks right is the failure mode that costs a customer money, and it is invisible until someone acts on it.

Browser and desktop automation. handle drives a real, logged-in Chrome over CDP with nine one-word verbs; a sibling driver does the Windows desktop over UIA. The model sees the page as numbered elements rather than composing selectors, which is what makes a 7B-class model able to run an authenticated workflow a headless scraper cannot reach.

Selected work

Start here: deedpipe runs in one command and shows the thing I actually care about — a pipeline that refuses to post what it cannot stand behind, scored three ways. pdftext is the shortest read: one dependency-free header with a from-scratch DEFLATE decoder in it. focus-three runs in your browser right now, nothing to install. For how I think about verification, ratchet is the shortest statement of it.

Project What it is Proof you can run
deedpipe Recorded-document extraction — deeds, mortgages, releases — into a typed schema, with an exception queue that names the field that failed and why. Three numbers instead of one accuracy figure: automation rate, posted precision, and posted completeness, because automation alone can be driven to 100% by posting rows with null grantors. python tools/score.py --sweep prints the whole trade-off curve. 67% automation at 100% posted precision and completeness against ground truth the generator wrote, not the parser. CI fails the build on a single wrongly posted value.
firstarticle The desktop tool the extraction work came out of: a drawing's PDF text layer into an AS9102 first-article inspection form, in a single 440 KB Windows executable with no installer and no network calls. Ships with its own accuracy report and a written log of every defect found — including two where my own test harness was wrong before the code was. 92/92 dimensional characteristics, 24/24 GD&T frames, scored against committed ground truth.
pdftext PDF text extraction in a single C++ header, zero dependencies: a from-scratch DEFLATE decoder, chained /ASCII85Decode filters, subset fonts decoded through /ToUnicode CMaps, per-page attribution, and CTM tracking so rotated callouts land on the sheet. Written because the deployment was an offline machine where "copy one file" had to mean one file. make test — 132 checks over 8 fixtures, each named for the PDF construct it proves. The corpus generator writes its own expected output, so the parser never grades itself; CI regenerates it and fails on a diff. -Werror on g++/clang/MSVC, ASan+UBSan, and 312 mutated files that must not crash.
gapsmith Resolve a whole class of porting gaps from rules that carry their own proof. A missing symbol doesn't get a bespoke script here — its shape is described as a rule, and the rule ships with a machine-checkable proof that applying it is safe. Case study: a small model driving a real porting effort ~1100 undefined symbols deep, every change ground-truthed by a compile+link. python examples/demo.py resolves a constant proved by tileset byte-identity — then corrupt that asset, re-run, and watch the engine refuse. 13 tests, CI green, zero runtime deps.
ratchet Automation that cannot grade its own work. The propose → measure → commit-or-rollback loop that pairs with gapsmith: a workload becomes four commands in a JSON contract, and the measurement — never the proposer — decides what is kept. Works the same on a script, an agent, or a local model. The demo plants a deliberately sabotaged move and you watch the loop roll it back. 8 tests, CI green, zero runtime deps.
handle A logged-in Chrome, nine verbs. A CDP driver for sites you did not write, driven by a model that can't be trusted to compose a CSS selector: elements are addressed by the number a prior links() printed. Sees into shadow roots and types with trusted events — both lessons paid for on a live signup form that defeated the textbook approach. 10 tests that run without a browser (stub CDP), so CI stays hermetic; examples/demo.py drives a real one.
focus-three Three tasks, one timer, nothing else. A native Windows app in 153 KB — one translation unit, no framework, no installer, no runtime, zero network calls, every control custom-painted so it follows the system light/dark theme including the title bar. The product-polish counterpoint to the systems work. Download and run it — nothing to install. Or try the browser demo first.

Writing: What PDFs actually do to you — the defect log from the extractors above. Every entry produced a clean build, a successful run, and a wrong answer: subset fonts that emit glyph indices rather than characters, a tolerance that lost its ± and still looked like a number, a legal description truncated at a line wrap into a description of a different property — and three cases where my own measurement was wrong before the code was.

Stack

Python · C++17 · TypeScript/Node · local LLMs (Ollama, llama.cpp) · SQLite (FTS) · CDP/UIA automation · Windows-first, cross-platform aware

How I work

Every claim in these repos ships with the command that would fail if it were wrong — a test, a demo that refuses when you break its premise, a measured number rather than an assertion. That is the habit the field-services work taught: a result with no check beside it is an anecdote.

Reach me

📧 datumstake@gmail.com · open to contract and consulting engagements · what-pdfs-do-to-you · repos: deedpipe · firstarticle · pdftext · gapsmith · ratchet · handle · focus-three

About

Ken Deibel — systems engineer, AI agent harnesses + field-services background

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors