OverviewFulfillment health at a glance: total, pending-procurement, and ready-for-production counts, with priority actions for the floor.
C6
Order-to-shipment production tracking for a precision barrel maker. Contract software developer, Oct 2025 – Present.
Carbon Six Barrels machines rifle barrels to order. Orders arrived from two storefronts, production was tracked on spreadsheets, and nobody could say where a barrel was without walking the floor. C6 connects the storefronts to the shop: every order gets a route, every line item gets a printed traveler with barcodes, and every machinist scans in and out of each step. The result is live status per order, real step timings for planning, sales and production reports, and a data assistant that answers plain-English questions from the shop's own data.
1
Orders arrive
WooCommerce and Wix orders sync in automatically. Product options become production specs through per-store mappings.
2
Routed
Each line item is assigned a master route. For example: Machining, Gunsmithing, Finishing, 2nd Gunsmithing, Shipping.
3
Traveler printed
A one-page traveler with the spec header and START/STOP barcodes for every step is rubber-banded around the barrel and follows it through the shop.
4
Scanned on the floor
Machinists scan START and STOP at each station on the installable scanner app. Out-of-sequence scans are rejected on the spot.
5
Visible
Live order status, bottlenecks, and real step timings replace the spreadsheet. Sales and production reports and a Claude data assistant answer the rest — for every organization on the platform.
WooCommerce and Wix orders import automatically — incremental on the store's own timestamps, with a filtered full sync on demand — and carry their store payment status, partially paid included.
Per-store spec mappings, edited as forms and previewed against real orders, turn product options into the specs machinists see on travelers and the scanner; a spec field can derive from another field's value.
Master production routes (Machining → Gunsmithing → Finishing → 2nd Gunsmithing → Shipping), assigned per order or picked by rules on the order's spec. The machinist flow only sees the order info that is relevant to the current step.
One-page order travelers with START/STOP barcodes per step, printed straight from the order in the organization's barcode format (Code 128 or Code 39).
Installable PWA scanner: scan a barcode, C6 resolves the order, step, and direction and validates the sequence. A machinist can mark a barrel dead with a reason; a manager can undo it, and the archived steps still count in reports.
Reports in two tabs. Production: work in progress, throughput, labor by step, route, month, and product, step durations, time per member. Sales: orders and revenue, top products, where orders ship, spec mix, new vs. returning customers.
A Claude data assistant for managers: ask a question in plain English, Claude writes read-only SQL, an allowlisting guard checks every statement, and it runs as an unprivileged role against organization-scoped views. Answers stream back as text and charts.
Multi-tenant with Admin / Shop Manager / Machinist roles and barcode-key logins for the floor; PostgreSQL row-level security scoped by organization. Admins change members' roles and can preview the app as another role.
Order ingestion webhooks with per-organization keys for custom integrations.
Production ships from tagged releases; a What's new page inside the app carries a shop-facing note that Claude writes from the merged pull requests.
React 19TypeScriptViteTanStack Router + QueryRadix UIFirebase Data Connect (PostgreSQL + GraphQL)Hono on BunCloud FunctionsClaude data assistantRechartsPlaywrightPWA
The traveler
Printed per line item; every barcode below is a scan target.
One traveler per line item. Scanning a START or STOP barcode at a station records the step for that order.Open the PDF
Every screen
OverviewFulfillment health at a glance: total, pending-procurement, and ready-for-production counts, with priority actions for the floor.
OrdersEvery imported order with its route, current step, specs, and store payment status. Search by barcode ID; expand a row to edit specs, add shop notes, or print its traveler.
Production routesMaster routes define the steps a barrel moves through and which fields the scanner shows at each one.
ScannerThe shop-floor PWA. A USB or camera scan of any traveler barcode resolves the order and starts or stops the step; a barrel that fails is marked dead here.
Scanner activityEvery scan, newest first — including rejected ones, so a step scanned out of order is visible immediately.
ReportsStep durations and time per member, derived from scan events. The page has since grown Production and Sales tabs: work in progress, throughput, labor, revenue, top products, geography, spec mix, and customers.
IntegrationsCommerce sync settings, order-spec mappings per platform (edited as forms, previewed against real orders), and a documented ingestion API with per-org keys.
MembersRoles, invitations, and barcode keys so machinists can log in with a scan instead of a password. Admins change roles here and can preview the app as any of them.
OrganizationsMulti-tenant from day one: every query is scoped by organization at the database layer.
SettingsAccount profile and password reset.
Other work
GLBoost
CDN, optimizer, and private sharing for glTF 3D models
Upload a glTF or GLB once. GLBoost optimizes it into URL-addressable variants (meshopt or Draco geometry, KTX2 or WebP textures), serves them from a global CDN, embeds them with AR, and shares them privately for review with comments pinned to the model. The Khronos Damaged Helmet drops from 3.77 MB to 665 KB on the mobile preset.
Full-stack developer with 8+ years building production web applications with React, TypeScript, and Node/NestJS/Express — mostly on fully remote, distributed teams. Background spans cloud security tooling, internal SaaS platforms, and Microsoft Teams integrations, with a focus on front-end architecture, API design, and developer-facing tools. Comfortable owning features end-to-end, from architecture and testing (Jest, React Testing Library, Playwright, Vitest) through deployment.
Software Developer (Contract, Remote)
Carbon Six Barrels
Oct 2025 – Present
Designed and deployed an AI-powered phone answering system for a precision firearms manufacturer, handling 15 inbound calls/day and cutting missed calls during business hours by an estimated 50%.
Built a full-stack production tracking app (React, TypeScript, Hono, Firebase Data Connect/PostgreSQL) used by 20 machinists and gunsmiths, replacing spreadsheets: barcode travelers, a PWA scanner, sales and production reports, and a Claude data assistant.
Split time between remote work and periodic onsite weeks to gather requirements from shop-floor and business stakeholders.
Software Developer
Tamnoon, Inc. (Remote)
Jul 2024 – May 2025
Built a cloud security alert management web app in React/TypeScript and NestJS on a team of 3, used to triage and remediate 1000+ cloud security findings per month.
Led frontend development of an AI-generated remediation task feature.
Built a pixel-accurate dashboard and report generation feature using Puppeteer for PDF export, used by security teams for stakeholder reporting.
Full Stack Developer
Frameable Inc. (Remote)
Mar 2022 – Jan 2024
Engineered a virtual office web app with video calls and screen-sharing (Vue, Express), supporting hundreds of users across client organizations.
Migrated the app into native Microsoft Teams plugins built on the Microsoft Graph API.
Diagnosed and resolved plugin load-time issues within Teams' sandboxed runtime, cutting initial load time by an estimated 40%.
Application Developer
Insight2Profit
Aug 2019 – Mar 2022
Built an internal tool (React, TypeScript, Material UI) letting non-engineer Pricing Analysts build pricing/quoting models and publish them directly as APIs — used by 30 analysts.
Cut developer involvement in ad hoc pricing requests, reducing turnaround for new pricing models from days to hours.
Benchmarked in-browser editor performance against Monaco and shipped a custom lightweight editor instead, cutting bundle size by an estimated 80% while keeping syntax highlighting and autocomplete via the Language Server Protocol.
Software Engineer – Developer II
Hyland Software (Lawlogix)
Jul 2016 – Aug 2019
Directed a complete rewrite of a legacy 4D/Python API to C#/.NET with Entity Framework, PostgreSQL, Jenkins, and Docker.
Established core code quality and automated testing standards adopted as the team's enterprise baseline.