Grant Sprunger

Always Figures It Out

Xpress ERP

At Ohio's oldest auction

The Xpress suite of enterprise applications is a business operating system designed to manage thousands of unique items per auction. The base XpressAuction ERP system manages buyers, consigners, contracts, sales tax, performs double-entry accounting with AR/AP netting, and much more. XpressAuction has a JSON API and allows flexibility for additional applications to extend base functionality. Some applications include XpressPhoto, a React Native photo capture application, XpressPortal mobile account management, and XpressKiosk, a Windows tablet-based customer-facing screen. Together, the system reduces the labor required to operate an auction while increasing customer satisfaction and drastically decreasing human errors. The system is a revolution in the industry; other auction companies recognize its value and tried to purchase the software.

Tools used

  • NginxNginx (proxy, caching, websockets)
  • SymfonySymfony (ERP)
  • ChromiumCefSharp (Custom C# Application Windows shell with Chromium Embedded Framework for customer facing display)
  • MicrosoftMicrosoft (Surface 3 customer facing displays, Windows Server AD/Group Policy)
  • VMwareVMware (vSphere/ESXi)
  • ReactReact Native (XpressPhoto iPad application)
  • WebpackWebpack
  • DockerDocker (imgproxy containers)
  • AngularAngular (clerking UI, barcode scanning UI, other UIs)
  • Vue.jsVue.js (customer facing UI)
  • ParcelParcel
  • ZebraZebra thermal printing (EPL2/ZPL item labeling)
  • Amazon Web ServicesAWS (S3)
  • Google CloudGoogle Cloud (Text-to-speech API)
  • SmartyStreetsSmartyStreets (USPS address verification API)
  • PostmarkPostmark (Transactional Email API)
  • gitgit

Modern non-profit e-commerce

Mennonite Central Committee

Good e-commerce is hard, but trying to force a legacy cart and checkout into compliance after failing 40 of the 53 UX guidelines in a Baymard UX study is near impossible. After assessing possible solutions to repair the UX within the limits of Drupal 7 (HTML rendering/AJAX) and Ubercart, I determined the technical debt and poor system design would overwhelm and any attempt at rectifying the 40 failed UX guidelines prove unfruitful. Instead, I proposed a solution to keep the underlying Drupal 7 system, but decouple the system into a Vue.js application which communicated with Drupal via a JSON API middleware layer. The design and architecture were accepted, and the first version was ready within five weeks.

The new design and architecture proved extraordinarily useful, and after launch, online Christmas giving was up 20% in the United States. The flexibility allowed for additional giving opportunities, not previously possible. Christmas giving tiles with MPEG-DASH video for adaptive bitrate streaming allowed donors an immersive look into the results of a gift item. Flexible and embeddable donation boxes by WYSIWG enable content editors to provision donations from any part of the website. The system also afforded a revamp of long-neglected donor created giving registries. To encourage donors to upload more photos, I invented a simple system allowing users to easily upload or capture pictures from their mobile devices, all without leaving the creation of their project. I hypothesized donors would create/edit the registry from their desktop, but most people in the target age group probably have images on a mobile device. To make it easy to get media to the registry, I included a scannable QR code with a time-limited link, which would allow them to upload from a mobile device, without a login step, and have the files instantly show up in their registry for use. In all, the system proved a great win for MCC.

Tools used

  • ApacheApache (Proxy, Redirects)
  • DrupalDrupal 7 CMS
  • Slim FrameworkSlim Framework
  • Vue.jsVue.js
  • WebpackWebpack
  • ChaiChai with Mocha (Javascript and live production infrastruture network request testing)
  • Amazon Web ServicesAWS (S3, CloudFront, EC2, Lightsail, Elastic Container Service, Aurora)
  • Campaign MonitorCampaign Monitor (Transactional email & Template email)
  • FFMPEGFFMPEG (Hardware encoding, MPEG-DASH manifests)
  • DockerDocker (Custom containers, Sentry error reporting containers)
  • VMwareVMware (vSphere/ESXi)
  • gitgit


Aircraft loss of control solution

In 2016, I invented a Bluetooth aircraft angle of attack system to reduce the risk of aircraft loss of control (I'm a 3rd generation pilot and aircraft owner). The project was presented to the broad aviation audience at the inaugural Experimental Aircraft Association's Founder's Innovation Prize and received 2nd place. In 2019/2020, a redesign of the combination aircraft hardware device, cockpit display, and mobile application took place with an emphasis on production readiness. I performed all the mechanical, electrical, and software engineering, including custom drivers in C and deterministic system design. The current version, intended for competition at the 2020 EAA Founder's Innovation Grand Prize, will wait for the public reveal as the finale became delayed until 2021 due to COVID-19. I've not included any photos of the project to protect pending intellectual property.

Tools used

  • CC Programming Language
  • ZephyrZephyr RTOS
  • AutodeskAutodesk Fusion 360 & Eagle
  • NordicNordic Semiconductor
  • STST
  • SeggerSegger
  • gitgit
EAA Founder's Innovation Prize Award

Pack-N-Snack Game

Horizon Organic

While working at Zing Studios in Longmont, Colorado, I wrote the lunch packing gameplay code for Horizon Organic's brand partnership with The Peanuts Movie. Cactus (Denver) created the campaign, and the project was renewed and re-released for the movie's DVD/Blu-ray release. The project focused on mobile gameplay and used the Phaser game framework with canvas rendering. This project is one of several I worked on with public/Fortune 500 companies and their digital agencies.

Tools used

  • ApacheApache
  • DrupalDrupal 7 CMS
  • PhaserPhaser HTML5 Game Framework
  • gitgit

Get to know me

I'll be over here reading and figuring it out. Meanwhile, learn a bit about me beyond my work.

I previously lived in California and Boulder, Colorado. Now I live in the Buckman neighborhood of Portland, OR. I try to spend as much time as possible with the sequoia trees in Laurelhurst Park and walk everywhere I can.


You may have noticed a bunch of Harvard Business Review magazines on this website. I do love business, and I went to university for it; I now write software, but I still love all things business.

How I Built This Live with Guy Raz at Revolution Hall

I'm not just a code monkey but a wrench monkey too. I took this experimental airplane apart in my garage, put it back together, flew it, and sold it.

Kitfox Model 1 Aircraft

But don't worry, I now own this fine space age machine.

1968 Cessna 150H Aircraft

When the winds don't call, the mountains do. Sunrise in Yosemite always hits the spot.

Glacier Point in Yosemite National Park

Time in the backcountry does too.

Grant Sprunger at Jennie Lake Milky Way over Jennie Lake

That's just a start, but plenty for now.