Systems, migrations, and tools I have built.
Private names stay private. The shipped work, scale, measurements, and unfinished parts do not.
Showing 32 projects.
Client work
3 projects
Headless Next.js / WordPress route and production QA
For a paid client, I traced route behavior across Next.js, WordPress, and Vercel; checked CMS URL leakage in raw and rendered output; and verified the deployed behavior in production.
WordPress legacy URL recovery and redirect QA
I rebuilt the legacy-URL map, assigned each redirect to the layer that actually owned it, and checked the chains and final destinations after release.
Professional-services WordPress implementation
I delivered a professional-services WordPress build through a reseller, with clear implementation ownership and release checks.
Public tools
9 projects
pgvector-filterbench
A public Go CLI that checks how much recall filtered pgvector HNSW search loses against exact PostgreSQL results, how long both paths take, and whether the expected index ran.
pgvector-index-manager
A public Go reconciler that inspects, plans, and applies population-specific pgvector HNSW indexes without sweeping unrelated index families.
crawlcontract
A public Rust CLI that checks whether sitemaps, canonicals, robots rules, redirects, internal links, hreflang, and indexability signals tell the same story.
crawlreplay: test crawler policy and candidate releases
A public Rust CLI that replays real crawler requests against proposed robots.txt rules or a candidate deployment before release.
Nginx and Cloudflare logs · policy and release checks · terminal, JSON, Markdown, and SARIF reports
RoutePlay: regression-test SSR route transitions
A public CLI that compares untouched server HTML, a cold Chromium load, and a real in-app route transition so hydration and client-router regressions become repeatable CI evidence.
RouteLint: lint shipped SSR route contracts
A public CLI that compares a shipped site's route delivery, internal links, canonicals, sitemaps, hreflang, and indexability signals from raw HTTP responses.
SSRWire: inspect streamed HTML delivery
A browser-free CLI that records when metadata, headings, main content, and structured data become observable in streamed HTML across browser and crawler user-agent profiles.
IndexLane Site Atlas
A free WordPress plugin that shows plugin dependencies, stored data, frontend presence, and runtime activity before somebody starts deleting things during a redesign or migration.
Bug Squasher: DOM Defense
A small Next.js Canvas game about fighting escalating frontend incidents, built to keep the game loop and source readable.
npm is a registered trademark of npm, Inc.
Systems I own
12 projects
nikom.work: Go portfolio renderer
This small Go SSR application replaced an uncacheable Laravel portfolio, removed millions of possible filter URLs, and kept durable contact intake without putting sessions or database work on public page requests.
ILCrawler
My crawler and audit workbench for comparing raw and rendered pages, Lighthouse results, issue state, exports, and client-ready reports in one place.
MarketEngine
My decision layer for joining crawl findings, competitor facts, existing pages, and guarded SEO actions instead of producing another disconnected audit.
SearchCaliber
My private operator interface for seeing which sites have enough crawl, market, reporting, and approval data to support the next action.
ReachLog
My single-owner outreach system for intake, duplicate checks, mailbox state, follow-ups, and exports without pretending outreach should run unattended.
Five public data products, one evidence pipeline
I built one backend that can turn very different public sources into focused data products without pretending every vertical has the same facts, quality rules, or refresh cycle.
5 source-backed product configurations · exact 50,001-page snapshot-loader test
2.18 million observations into 117,820 trends
I built a small public-data product from official US and UK name records, with repeatable imports, explicit market boundaries, and immutable releases instead of live database rendering.
2,181,032 observations → 117,820 trends in under 4.5 seconds on the recorded PostgreSQL 17 run
A publishing control plane for reviewed releases and controlled acquisition
A private control plane turns keyword exports and source evidence into reviewed multilingual static releases, then records site-level acquisition experiments and outcomes.
8 renderer architectures · validated 50,000-page stream · 24 versioned techniques; only 2 transports automated
A 51,000-page directory release with a private publishing control plane
Immutable Rust releases replaced the Laravel public directory; a separate private control plane handles fail-closed sources, duplicates, media, review, and controlled publication.
51,098 pages · 409,495 route outcomes · 321,904 redirects · 4 source adapters
Stock, recipe costs and order margin in one mobile workflow
A small food business can record purchases, maintain recipes, sell through different channels, consume the right stock batches, and see estimated margin without joining five spreadsheets.
FIFO stock consumption · Thai and English · workspace isolation · server-enforced plan limits
From one phone photo to a complete product pack
A phone-friendly studio extracts visible facts, creates product-scene alternatives, checks likely visual changes, writes editable Thai copy, builds short vertical video, and keeps the results together.
Durable image and video queues · source-versus-result checks · Thai copy · shared gallery · credit use and refunds
Multi-site traffic and search visibility without permanent visitor profiles
A self-hosted system joins stateless multi-site traffic, landing-source attribution, GSC and Bing data, crawler observations, view access, and rollup-first cleanup.
Approximately 3 KB gzipped tracker · 84-operation OpenAPI contract · permanent rollups with safe cleanup
Labs and private work
8 projects
InHomeDayCareMap
I designed a directory for licensed in-home daycare providers with crawlable geography, a useful map, normalized imports, and privacy rules for home-based locations.
GPU Orchestration Lab
I split model serving, image generation, translation, and embedding work into GPU pools that can scale and fail independently.
Rebuilding an established adult-services classifieds platform without breaking its operations
Working replacement slices span public discovery, accounts, listings, advertiser billing, paid placement, messaging, media, moderation, search, and admin work while the established live platform remains the behavioral reference.
17 source-contract tests passed · 100 URL and SEO parity checks passed · 17 live-reference scenarios captured at 1440, 768, and 390 pixels
1.2 million rows, one controlled migration path
I built a checksum-evidenced path from a legacy MariaDB catalog into a PostgreSQL and Rust replacement, with allowlisted imports, parity reports, and safe sequence repair.
1,202,321 rows reconciled · zero foreign-key orphan groups · 28 sequences checked
A private finance app built for two people
Wallets, transfers, budgets, debts, imports, and shared household decisions live in one multilingual app without turning the family ledger into a public fintech product.
Integer minor-unit ledger · linked transfers · budgets and debts · English, Thai, and Russian
A private publication control plane for evidence-backed review sites
A private control plane takes a review site from scoped candidate or domain intake through bounded evidence collection, explainable scoring, editorial review, and a versioned static release with explicit activation and rollback.
Elixir/Phoenix + Postgres/Oban · 17 worker types · LiveView office · Rust immutable release path
Traffic routing, attribution, and postbacks on your server
Visits move through an inspectable source, campaign, flow, rule, route, lander, offer, conversion, and callback chain on infrastructure the operator controls.
128 MB and 256 MB resource profiles · seven recorded SIGKILL recovery scenarios
A bilingual adult-services directory with controlled publishing
The build joins crawlable location pages, operator moderation, translation, private media processing, geographic search, consent state, and controlled publication in English and Thai.
29 migrations · 254 Go test functions · bilingual public and operator surfaces