Independent developer
Systems that talk to your catalog
Integrations for library systems (Koha, Z39.50/SRU, MARC, SIP2), custom catalogs, and the automations, full-stack sites and shop connectors around them — one desk, no juniors.
What I build · six terminals
Services
Library systems
Circulation, cataloging and discovery on Koha and other open ILS platforms. Z39.50 and SRU search, MARC import/export, SIP2 self-service.
Custom catalogs
Purpose-built catalog and discovery interfaces where an off-the-shelf ILS front end doesn't fit — search, browse and metadata modeled around how your collection actually works.
System integrations
APIs and data pipelines that connect what you already have: ILS to ERP, catalog to discovery layer, legacy system to modern frontend.
Automations
Scheduled jobs and event-driven scripts that do the repetitive work: batch record updates, sync jobs, report generation — running unattended, logging honestly when they don't.
Full-stack websites
Design-to-deployment builds: content-managed sites, staff-facing tools, public catalogs. Postgres or MySQL underneath, a framework only where it earns its keep.
Shop integrations
Storefronts wired into inventory, payments and fulfillment — WooCommerce, Shopify or a custom cart, connected to whatever backend runs the business.
How I work
One developer, one point of contact
You talk to the person writing the code, every time — clean handover, no vendor lock-in.
- Step 01
Scoping call
What you run, what it has to do, and what I would tell you not to build.
- Step 02
Small deliveries
Reviewable pieces, in order, each one running before the next one starts.
- Step 03
Handover
Source, deployment and the reasons written down. Nothing needs me afterwards.
Showcase projects · state on the left
The work
live, open it source you can read written up next
Koha migration
Moving a library catalogue to new servers and newer Koha releases, and bringing bibliographic and holdings records over from whichever system it ran on before.
Write-up dueSRU search for MARC exports
Query any SRU endpoint from the browser — pick a catalogue and index, or write the CQL yourself — and pull the hits back as MARC21 or UNIMARC.
Live — open it >>Nightly inventory-to-catalog sync
Stock moves into the catalogue overnight in parallel batches, tuned to finish fast, with logging and error reporting that says exactly what went through and what didn't.
Write-up duePublic catalog & discovery site
A Blacklight OPAC over several back-end stores, where signing in decides which catalogues and records you see — built to stay quick and personal on very large collections.
Write-up dueStorefront-to-warehouse sync
Thousands of dropship products kept current between supplier and shop, with discounts applied automatically and product copy and SEO written with help from AI.
Write-up duemonidesk
A small tool that shows what a machine is busy with — processor, memory and disk, all on one screen.
Open source >>Developer toolingauto-tunnel
Services running on a remote server appear on your own machine, opening and closing as those services do.
Open source >>Search engineA MARC21 catalogue served from memory
170,938 records parsed, indexed, graphed and drawn by one static Go binary — search in microseconds, a navigable graph, a generated building, and an assistant that can only cite what the catalogue handed it.
Read the write-up >>CataloguingEnrichment agents for MARC21 records
Hand a thin record an ISBN, a publisher page, a PDF or a photograph of its title page, and read back field-level proposals with confidence scores — accepted one at a time, or above a bar you set.
Read the write-up >>CataloguingAccepted proposals, written back to Koha
The other half of marc-flow — a webhook receiver that takes a finished job, decides which proposals clear the bar, and writes them onto the biblio they came from without touching the record's identity.
Read the write-up >>ParsersMARC21 for Go, ported from pymarc
A Go port of pymarc covering binary MARC21, MARC-8, MARCXML and MARC-in-JSON — 4x to 11x faster on 138,076 real catalogue records, and byte-identical on the way out.
Read the write-up >>Developer toolinglunette
A terminal browser for MARC21 files — record list on the left, record on the right, five views, and an encoding check that catches the mislabelled UTF-8 most OAI-PMH endpoints emit.
Open source >>Search engineNotenzoeker
5,553 sheet-music titles from the Brauer webshop, crawled into one static page — instrument, publisher, composer and level as facets, search and sort that answer as you type, and a link back to the shop to order.
Live — open it >>Get in touch
Tell me what system you're running
Email directly — I read and answer everything myself, and I'll tell you if it isn't work I should take.