Engineer. Architect. Leader.

Assembly to JavaScript, vim to VisualStudio,
and everything in between

Professional Experience

Career Highlights

  • Spearheaded powerful teams building business-critical products
  • Proficient in software design quality rules and architecture considerations
  • Implemented a wide variety of technologies from device drivers to scalable cloud processing systems
  • Worked 21 years in software engineering

Best of Lead Software Engineer at Ro
2019 - Present

I joined Ro as Senior Software Engineer in early 2019 as the first American full-time engineer. At the time, the rest of the development team was in Poland. During my time there, the tech org quadrupled in size as the company experienced hypergrowth. I learned to be comfortable with and successfully manage change, as change was frequent.

In my role at Ro, I used my previous experience to help guide the monolith codebase and avoid technical debt as much as is possible in a rapidly evolving environment. Eventually I settled into commerce engineering, adding payment methods and owning the extremely complex pricing system. I interviewed a few dozen prospective engineers and was the onboarding buddy for several new engineers that are now highly successful.

PayPal Integration

Integrating the Braintree payment gateway

Bringing PayPal to Ro increased overall revenue by 6%, allowing our customers more payment options.

My code in this area routinely processes ~$4M of revenue per month.

  • Designed integration project from the ground up working with PayPal engineers
  • Implemented and tested code end-to-end
  • Created monitors and alerts to notify engineers if issues arose
  • Set up Braintree staging and production accounts
  • Experienced zero errors in over two years

Pricing Refactor

Porting spaghetti code to clean services

The pricing system was originally written to handle Ro's flagship product, ED medication. Over time, as more offerings were added, the system was updated with hack upon hack and eventually needed to be replaced.

With the new microservice architecture, I rewrote the pricing system as a matching engine. It gained enormous flexibility and modularity. The real challenge was integrating it into the existing system.

  • Redesigned pricing engine from scratch
  • Coded the entire service including APIs and specific documentation
  • Worked with stakeholders to optimize launch of the new system
  • Created a flexible configuration system to ensure future needs would be met

Fabric

Tech debt detection and monitoring

While at Ro, I was able to implement some of the things I learned from my previous company, Silverthread. This helped us gain valuable knowledge about the level of technical debt in the system and where efforts should be concentrated to make the biggest impact.

  • Implemented scripts to scan raw source code and discover hidden technical debt
  • Educated product owners and leadership about the pitfalls of unpaid technical debt
  • Added monitoring and alerts when new technical debt was discovered
  • Identified the root cause of technical debt in a Django stack

Achievements as Lead Software Engineer at Silverthread, Inc.
2016 - 2019

As Lead Engineer at Silverthread, it is my job to ensure that the software development team runs smoothly on a day-to-day basis. We are a small team of engineers in Reno, Nevada that operate as the primary development team for the company's headquarters in Boston, Massachusetts.

In addition to my responsibilities as an engineer, I guide the architecture of our core software, cloud processing, client interfaces, and output usability. We maintain 90%+ test coverage with unit, integration, and system tests. Our team works from home two to three days a week, using Slack, Zoom, and Jira to stay in contact.

CodeMRI Platform

Building a set of Spyder scripts into a primary product

CodeMRI Platform started as a handful of powerful data analysis scripts born from research out of MIT. Since then, I was the lead developer of the team that brought it to the market and enabled clients to access it easily.

This platform is the core of Silverthread’s advanced data processing - a pipeline that scans raw source code and generates a wealth of information about design quality and business outcomes. It has proven successful in several places in the Air Force as well as private industry.

  • Designed and implemented CLI, job chain, and hierarchical data structures
  • Modified existing systems for use in cloud environment at large scale
  • Created relational database structures to hold intermediate data securely
  • Integrated several popular Python packages including: SQLAlchemy, scipy, pandas, numpy, Alembic, cryptography, Cython, Conda, matplotlib, requests
  • Functioned as team leader to help set priorities and ensure work aligned with business needs

Cerberus Licensing System

Custom online and offline licensing

As sales and marketing started to rise, Silverthread needed a scalable and flexible licensing system that would accommodate any potential contracted use of the software. Cerberus provides the ability to easily enable or disable individual features with a few clicks.

  • Hosted with Python and Django on AWS S3, EC2, and RDS
  • Personally built and integrated a custom licensing solution from the ground up
  • Collaborated with stakeholders across the country to meet needs of the Sales Team
  • Designed a user portal for web based access to licenses for both users and administrators

CodeMRI Scanner

Web-tech front end wrapper around Silverthread's core

Often, clients need access to Silverthread's reports on code and design quality but are not technically savvy. The CodeMRI Scanner GUI adds a friendly face to Silverthread's powerful engine, allowing virtually anyone - from financial gurus to summer interns - to create useful reports.

  • Implemented a robust communication layer between AngularJS and Python - HTML views connected to Python controllers
  • Constructed using CEF, cefpython3, and QT5
  • Designed and implemented custom and professional look and feel
  • Performed user testing and made positive modifications based on feedback

Notable projects as Senior Software Engineer and Team Leader at International Game Technology
2001 - 2016

I started fresh at IGT in 2001 straight out of college. Originally working with firmware, I wrote the Keno games in Game King 5 before moving on to special projects such as flash memory programmer, custom build system, testing tools, and peripheral device drivers.

Video Topper

Embedded attract and advertisement display

The video topper sits on top of an existing slot machine and drives a tertiary display. Since it has separate hardware, it can run full screen video without reducing the performance of the machine.

  • Designed project application stack
  • Worked with custom Linux stack on RK3288 hardware
  • Employed node and websocket communication
  • Used MPV video player for presentation

HTML5 Menu Conversion

Extensible web tech solution replacing an obsolete 3D engine

Operator menus are used to configure a machine's protocols, enabled games, etc. The menus were based in an old 3d engine and needed to be upgraded to something easier to use, maintain, and extend.

  • Constructed back and front end from the ground up
  • Employed node and JQueryMobile framework
  • Established complex C++ addon system to interface with existing systems
  • Used Chromium embedded web browser

Commander

Custom 3D engine diagnostic and debugging suite

Commander is a tool to communicate with and manipulate the DynamiX 3d engine. Used by artists and engineers alike, it is essential in debugging and developing DynamiX games.

  • Lead development through the entire product lifecycle
  • Managed team of engineers using Agile development
  • Worked with stakeholders to decide new feature direction
  • Designed GUI in WPF
  • Architected custom TCP communication layers

Nimbus

Remote diagnostics for a new generation of slot machines

When the underlying operating system shifted from QNX to Windows Embedded 7, it provided an opportunity to redesign the system diagnostics using off-the-shelf web tech and node's addon functionality.

  • Used node to expose system level diagnostics
  • Created internal scripting system to facilitate automated testing
  • Made extensible modules for use by other engineers
  • Documented APIs for use by Product Assurance

Custom Build Process

Python-based firmware image creation from the ground up

The build process for the i960 line of slot products was clunky and difficult to use. The new process used a streamlined XML makefile for ease of use, unifying the various build processes across engineering, Product Assurance, and regulatory bodies.

  • Developed full build stack from source code to final images
  • Improved speed and efficiency
  • Rolled out new process to hundreds of engineers
  • Built thousands of game images still in use in casinos today

Flash Programming

Burning images into flash memory for development and production

Programming EEPROMs and flash memory is a core function of engineering and manufacturing. The flash programmers read raw binary images and interfaced with low level device drivers to program and verify images.

  • Created programming software to interface with dozens of hardware types
  • Implemented just-in-time programming for the manufacturing floor
  • Designed chips to verify firmware in secure casino environments
  • Developed TCP based remote programming systems

Education

Trained in hardware and software engineering

B.S. Computer Systems Engineering

Oregon Institute of Technology, 1997 - 2001


Two years toward MBA, night classes

University of Nevada, Reno, 2008 - 2009

App Highlight

Work from outside work. Because couch code is the best kind of code.

Soapstone

Born out of a love for Fromsoft’s Dark Souls game series, Soapstone is a mobile app that allows fans of the game to replicate one of the game’s most famous and unique features in the real world. This project was featured on Kotaku, PC Gamer, and a handful of other gaming news sites.

  • Ionic Framework
  • Custom Cordova plugin for background geolocation
  • MEAN backend
  • RESTful API for app queries
  • Over 100k users

Get it on Google Play Download on the App Store

Skills

It all started with C64 BASIC at nine years old - the list has been growing ever since.
You name it, I've used it.

Communications

Zoom, Join.me, Slack, Hipchat, Stride, Google Hangouts, JIRA, Confluence, Sharepoint, TSheets

Languages

Python, C, C++, C#, JavaScript, ES6, CSS3, HTML5, JSON, Ruby, PHP, Perl, RegEx, XML, XAML, i960 asm, 8086 asm, BASIC

Stacks and Frameworks

Django & DRF, Flask, FastAPI, AWS S3/EC2/RDS/Route 53/etc, MEAN, LAMP, ASP.Net MVC, Bootstrap, Laravel, Vue, Rails, Angular, Knockout, Ionic, Cordova, WPF, MFC, .Net, Numpy, Pandas

Environments and Software

Windows, Linux/Ubuntu, OSX, Team City, Git, Mercurial, Perforce, StarTeam, TFS, SVN, CVS, Wiki, Office, Gimp, VisualStudio, WebStorm, Vim, Unity, Xcode, Android Studio, Eclipse, GCC, Borland Builder