When Software Has to Move Real Money
I designed and built a Node.js controller that translated a binary serial protocol into safe, stateful bill acceptance and dispensing operations for Bitcoin ATMs.
2020 · Production release
Engineering Manager · Product & Platform Engineering
I lead frontend-rooted product teams through complex, high-trust work. I like to understand what is actually happening before I change it—what depends on what, where the risk lives, and what the team needs to own the work confidently.
Selected work
The products are different, but I tend to get pulled into the same kind of work: figure out what is really happening, reduce the risk, get the team moving, and leave the thing easier to own than I found it.
I designed and built a Node.js controller that translated a binary serial protocol into safe, stateful bill acceptance and dispensing operations for Bitcoin ATMs.
2020 · Production release
As Frontend Team Lead with engineering-manager responsibilities, I rebuilt team capacity, strengthened accessibility and quality, and helped steward a live veterans memorial platform—work later recognized in a ceremony by the VLM VA Director.
< 2 months · Administrative platform delivery
At Onaroll, I mapped an unfamiliar production system, learned a new deployment platform, and implemented most of a live Create React App and Heroku migration to Next.js and Vercel without downtime or known production defects.
0 · Known launch defects
I turned a spreadsheet-based workflow for legacy clients into a focused internal operations platform that imported existing data, launched in roughly 2–3 weeks, and saved Operations approximately 295 hours of manual entry every month.
295 hours/month · Manual entry eliminated
I redesigned a fragmented Farm Credit website-delivery process into a parallel, reusable system that cut the full discovery-to-launch lifecycle from roughly 22 months to 2–3 months on the first site, expanded team capacity, and supported at least eight distinct association launches.
22 months → 2–3 months · Full discovery-to-launch lifecycle
In 2011–2012, I independently built a WordPress and PHP platform that automated daily courthouse-data ingestion and grew into a connected internal system for staff-reviewed outreach, follow-up, administration, and real-time courtroom support.
Daily · Automated courthouse-data pipeline
Interactive exhibits
I rebuilt two portfolio stories as hands-on exhibits so the architecture is not trapped in prose. You can follow the state, trigger the behavior, and see how the system responds while the proprietary implementation stays generalized.
Explore the Demo LabRun a kiosk buy or sell flow and watch customer state, device events, physical cash, inventory, callbacks, and failure recovery stay synchronized.
Run the controllerPlay all ten reconstructed browser titles through one shared CreateJS engine and see how the common runtime supports title-specific rules, paylines, payouts, animation, and state.
Play the revivalEngineering method
Whether rebuilding legacy games into one browser runtime or coordinating software, APIs, serial hardware, and physical cash, I begin with the same questions: What is actually happening? What state is the system in? Which dependencies and failure conditions matter? What should remain stable while everything else changes?
Intelislots
I reconstructed ten C++ and DirectX slot titles in HTML5 and CreateJS, separating shared game states, weighted outcomes, wager and credit flow, paylines, payouts, assets, animation, and events from title-specific rules.
Reverse engineering · platform architecture · behavioral modeling · frontend systems
Read the case studyBitAccess
I built a Node.js controller that translated a timing-sensitive binary protocol into explicit acceptance, escrow, dispensing, recovery, inventory, and transaction workflows.
Finite-state systems · hardware integration · reliability · end-to-end ownership
Read the case studyWhat I bring
The decisions in one usually affect the other two. I stay close enough to the technical work to see those connections and wide enough to help the team act on them.
I map the system, constraints, users, and team context before committing people to a solution.
I make risk and dependencies visible, reduce uncertainty in stages, and give the team a delivery path it can trust.
I create reusable systems, clearer ownership, and shared understanding so progress does not depend on me remaining the bottleneck.
Technical range
Years of full-stack, infrastructure, data, quality, and AI work mean I can follow a problem past the browser instead of treating everything outside my lane as somebody else's mystery.
I build and lead workflow-heavy frontend products where clarity, accessibility, and maintainability matter.
Reusable systems · complex workflows · accessible delivery
I trace product behavior through APIs, services, data models, integrations, and the operational work around them.
Daily SFTP ingestion · schema translation · secure data workflows
I modernize live systems around user continuity, controlled rollout, testing, observability, and rollback.
Zero-downtime migration · legacy modernization · production rescue
I use architecture review, testing, production-readiness evaluation, and AI-assisted analysis to find risk early and improve engineering decisions.
Architecture review · production readiness · regression prevention
Next step
I’m seeking remote engineering leadership roles where I can stay close to the work, grow people, and improve how products are delivered.