Software engineer with 15 years in CI/CD, build systems, and cloud infrastructure at Apple, ReadyTalk, and Integware, then two and a half years as the sole owner of business systems, purchasing, and IT at a small bicycle manufacturer, where I led an ERP migration, built the integration platform from scratch, and shipped a family of open-source API client ecosystems. Typed clients, ADRs, CI gates, and automated releases are how I work by default. Seeking a platform, integrations, or developer-tooling role on a collaborative engineering team.
Experience
Mar 2024 –
Present
Spot Bikes · Golden, CO
~10-person direct-to-consumer mountain and gravel bike manufacturer. Hired to build bikes; took over purchasing five months in, then business systems and IT.
Purchasing, Business Systems & IT Aug 2024 – Present
- Led the ERP migration from NetSuite to Katana MRP + QuickBooks Online: planned the cutover, migrated inventory, orders, and POs, retired the legacy NetSuite connectors for Shopify and eBay, stood up the replacement integrations, and worked alongside accounting through the first month-end closes on the new system.
- Designed and built Shogun (700+ PRs), a FastAPI / SQLAlchemy / Pydantic integration platform connecting Katana, Shopify, eBay, StockTrim, StatusPro, Front, and supplier systems, with shared domain models, a Vite/TypeScript configuration UI, a CLI, and a CI-verified PostgreSQL migration foundation (deterministic IDs, transactional apply, rehearsal step). Design captured in ADRs covering multi-supplier sourcing, BOM archetypes, and constrained-demand calculations.
- Built the Spot Suspension Calculator, a rider setup tool that started as a Google Sheet and is now a production web and mobile app: React 19 / TypeScript front end (1,100+ tests, 85%+ coverage), FastAPI / SQLAlchemy 2.0 / Python 3.13 back end with Shopify customer-account OAuth (PKCE), role-based admin, a built-in MCP server, and rate limiting; deployed on Render as one Docker service with managed Postgres. iOS and Android builds ship the same bundle through Capacitor 8, with signed release artifacts produced in CI.
- Built Spot Kiosk, the showroom appliance: an Electron / TypeScript macOS app that replaced Chrome, a Python web server, and six LaunchAgents with one universal binary, with idle recovery, showroom-hours display control, and unattended signed and notarized updates from GitHub Releases. Docker-defined build, SHA-pinned Actions, environment-gated release signing.
- Built comp-intel, a competitive-pricing platform: scrapers for Shopify, Nuxt, and headless Hydrogen storefronts, sale detection, cross-currency normalization, partial-scrape guards, and real-Postgres integration tests.
- Automated daily operations with LLM-agent workflows (Claude + MCP): order processing and MO creation, PO creation and receiving from supplier PDFs, B2B order reconciliation across SRAM, QBP, and BTI, eBay order entry, customer status confirmations, and website spec audits against master BOMs.
- Rebuilt spotbikes.com on Shopify’s Horizon theme (1,100+ PRs and issues): design-system tokens, system color mode, AA contrast, CI gating on six Python test suites. Currently leading the HubSpot migration off Klaviyo.
- Owned purchasing end to end: supplier relationships (SRAM, QBP, BTI, Gates, Industry Nine, Öhlins, Schwalbe, Ergon, WTB), PO lifecycle, pricing conventions, and MRP data modeling including frame-level BOMs.
- Also built: a suspension linkage kinematics calculator (React/canvas) and its .NET port as a SolidWorks add-in (xCAD.NET, Avalonia); a pneumatic brake-force test fixture (ATmega328P, HX711, interrupt-driven valve timing); the Apps Script build-queue system; the Spot Bike Configurator Shopify app; a Google/Meta Ads control room (Next.js, SQLite, MCP-backed reporting); the company runbooks and infrastructure plans. Ran all IT.
Bike Assembler Mar 2024 – Aug 2024
- Built complete bikes and framesets to order, including suspension setup and customer setup documentation; handled warranty and RMA processing with SRAM and other suppliers.
- Started daily reporting of completed builds against sales orders and built out eBay listings for overstock, the operational work that led to taking over purchasing.
Jul 2015 –
Mar 2023
Apple · Cupertino, CA
Cloud Infrastructure Engineer (joined as Solutions Engineer)
- Drove adoption of the internal CI platform across development teams, then moved into a development role on the platform itself.
- Designed and built the platform’s build-secrets management system, improving both security posture and developer workflow.
- Escalation point for complex build failures; delivered internal training on the CI system.
Mar 2012 –
Jun 2015
ReadyTalk · Denver, CO
Software Engineer, CI → DevTools Engineer
- Built and ran build and deployment infrastructure for multiple cross-functional teams: Gradle (including custom plugin development), Jenkins, Ansible, Puppet, and Docker-based containerized deployment; JavaScript client and server build tooling. Increased deployment frequency and reduced integration failures.
Mar 2008 –
Feb 2012
Integware · Fort Collins, CO
Software Engineer Intern → Lead SCM / Build Engineer
- Led a small team owning build and deployment infrastructure for multiple product teams: introduced the Jenkins/Hudson continuous-build system, automated test-server deployments, and ran SCM, issue tracking, Oracle 10g/11g dev databases, and virtualization. Built multi-platform product installers and contributed to hardware purchase plans and budgets.
- Co-inventor, US9218179: automated software data-model and data upgrade system.
Selected open source
- OpenAPI client ecosystems for Katana MRP, StockTrim, StatusPro, and Front, all generated from
openapi-client-template: a Copier template plus a shared runtime library so every client inherits transport-layer retries, rate-limit backoff, pagination, packaging, CI/CD, and an optional MCP server. The Katana ecosystem ships Python (sync + async) and TypeScript clients from an OpenAPI 3.1 spec I author and maintain, plus a FastMCP server with a typed SQLite/FTS5 cache and preview/apply pairs for every write. PyPI: Katana client 113 releases, Katana MCP server 143 releases, StockTrim client and MCP server 33 releases. Reported upstream API bugs that StockTrim’s engineers fixed from my notes.
gdub / gng: command-line Gradle wrapper (gw) that picks the right gradlew or system Gradle per project. 300+ and 100+ GitHub stars, distributed via Homebrew and MacPorts.
harness-kit: self-improving agent harness for auditing and evolving a project’s AI tooling.
- Upstream contributor since 2013: 65 merged PRs to third-party projects, including Gradle tooling, ReadyTalk’s open-source libraries, Flutter/Dart apps (offline-first tile caching, centralized retry/fallback policy), MCP servers, and Anthropic’s official plugin marketplace. Katana MCP server submitted to the Docker MCP registry.
- Also:
gas-tools (Google Apps Script monorepo with a sheet-as-database ORM), AirHound (Rust, RF surveillance-device detection via WiFi/BLE).
Other
Homelab: 5-node K3s cluster, TrueNAS SCALE, local LLM inference on an M1 Max Mac Studio, 3D printing, SDR and mesh radio. Colorado cyclocross series (2013) and criterium state (2014) champion, SM4. Bass player; comfortable with a soldering iron and a saw.
Skills
Languages: Python, TypeScript/JavaScript, C#/.NET, Rust, Go, Java, Dart, Bash, C/C++ (embedded). Backend & data: FastAPI, SQLAlchemy, Pydantic, PostgreSQL, SQLite, OpenAPI, REST client generation, OAuth/PKCE. Platform & tooling: CI/CD (GitHub Actions, Jenkins), Docker, GitHub release automation, ADRs, React, Next.js, Electron, Capacitor, Vite. AI tooling: Model Context Protocol server design (FastMCP), LLM-agent workflow automation, agent-assisted development. Business systems: Katana MRP, Shopify (theme + Admin API), QuickBooks Online, NetSuite, HubSpot.
Education & certifications
B.S. Applied Computing Technology, Colorado State University, 2008. United Bicycle Institute, 2023: Professional Repair & Shop Operation; DT Swiss Wheel Building; Suspension Technician.