Senior Principal Software Engineer / Architect

Senior software engineer and architect with a track-record of delivering high-quality products to market. Ability to communicate effectively about project status and issues, both with internal team members and external customers. Strong analytical and problem solving skills with excellent troubleshooting and debugging skills. Ability to learn quickly, come up to speed on new products and technologies, and be productive quickly.

Desire to work on exciting products with top-quality developers where I can make a real difference.

Technical Skills

So many, and always learning new ones. But my specialties would be…

C/C++, STL, Windows Kernel-mode Drivers, File System and Registry Filter Drivers, .NET Framework languages and technologies, Virtualization, and Debugging.

Professional Experience

August 2016 – present

Co-Founder and Distinguished Engineer

  • Research and development.

DOMO, American Fork UT
July 2014 – August 2016

Team Lead and Senior Software Engineer

  • Led a team of four in development of an installed-on-premise data ETL tool bring ~16 billion rows of data daily into Domo’s business cloud services.
  • Created a public facing API wrapper that clients could use to implement custom management of their data.
  • Implemented telemetry data reporting system that brought in customer usage statistics to drive the direction of future development.
  • Re-designed product as a Windows service with task management, scheduling, etc. and an entirely new front-end UI.

1997 – present

Software Engineer Consultant (self-employed)

  • Implemented account management features for online tax software in C# with ASP.Net and MVC and Microsoft SQL Server database
  • Maintained online tax software project in Adobe Flex with Groovy, Grails, PHP and MySQL backend
  • Designed and implemented automated nightly billing system to process credit card payments for a tax software service
  • Designed database schema for customer account management in Microsoft SQL Server
  • DBA for large Microsoft SQL Server database implementation for online tax software company
  • Created network backup utilities for post-secondary education facilities in Utah
  • Designed architecture for high-speed IIS web server plug-ins for educational services company

March 2013 – July 2014

Co-Founder and Distinguished Engineer

  • Formed new startup company offering software product delivering dynamic application visibility
  • Created file system mini-filter driver, Windows service, and command-line tools comprising the core functionality of the software product, developed with C++, Standard Template Library, and WiX
  • Created reporting feature with client-server infrastructure using JBOSS RESTeasy APIs on server, C++ REST SDK (Casablanca) on client, and dynamic JSP/AJAX pages for user interface – hosted in Tomcat with MongoDB backend
  • Filed provisional patent to protect inventions represented in software offerings
  • Created proof of concept software for demonstration while raising initial company funding
  • Created software demos and presentations for conference presentations, sales meetings, online customer demos, and presented in person to customers
  • Managed production installations of Team Foundation Server, Bugzilla, and MediaWiki to enable development to perform builds, manage source code, analyze code coverage, perform automated testing, and maintain product knowledgebase

April 2004 – March 2013

Senior Principal Software Engineer, April 2007 – March 2013

  • Led team of 4-6 engineers designing and implementing new features for virtualization product
  • Designed architecture for features and managed implementation of these features by other engineers
  • Researched and developed prototypes for new features and technologies in C/C++, Assembly code, Win32, COM, kernel-mode and user-mode
  • Invented, filed and granted 10 U.S. patents for virtualization technologies, protecting Symantec business against major competitors
  • Implemented registry filtering driver and converted virtualization product to 64-bit architecture, adding support for additional operating systems and improved stability and performance
  • Worked with Microsoft contacts remotely and in-person to debug Windows registry filtering design and identify shortcomings and implement workarounds to be published for all filter developers
  • Led multiple product security pushes, responding to zero-day vulnerabilities in products, and conducting security audits and reviews
  • Attended industry conferences, such as Microsoft BUILD, Microsoft IFS Plugfest, and VisualStudio LIVE!

Senior Software Engineer, November 2004 – April 2007

  • Implemented support for virtualizing Windows Services, fonts, support for concurrent users, expanding the customer base for application virtualization product to almost $20 million annual sales
  • Designed and implemented graphical user interface for application virtualization product to improve ease of administration
  • Created automated build system producing daily builds and integration/continuous builds as developers made changes

QA Software Engineer, April 2004 – November 2004

  • Performed ad hoc testing of file system filter driver functionality for application virtualization
  • Implemented testing automation for integration testing of application virtualization product, and unit tests for file system functionalities affected by virtualization

November 1999 – February 2004

Software Engineer (Senior), April 2003 – February 2004

  • Implemented proprietary compiler/linker for Windows Installer build system, making it easier to define and implement product setup and configuration
  • Created new features for Windows Installer Xml (WiX) project, which later become Microsoft’s first open-source project

Software Development Lead, February 2002 – April 2003

  • Development Lead for team of five developers producing install and configuration features for Microsoft SQL Server 2005, Microsoft XML, and Microsoft Data Access Components
  • Implemented user interface and core logic for checking installation pre-requirements

Software Engineer, November 1999 – April 2002

  • Redesigned and implemented Microsoft SQL Server 2000 setup and configuration using Windows Installer
  • Created redistributable Windows Installer merge modules for distributing Microsoft SQL Server Database Engine (MSDE) by third-party software developers
  • Ported Microsoft SQL Server 2000 to 64-bit and developed integration of MSDE with Windows Server 2003

December 1997 – November 1999

Software Engineer

  • Designed and implemented client agent for computer asset management software, responsible for connection to server and retrieving and executing tasks
  • Created functionality for client agent to reconfigure a machine newly created from an image to make it unique (generate new machine SID, IP address, computer name, etc.)
  • Created image browser for opening, examining, and editing machine images
  • Implemented major features for testing lab management software for tools division (which was spun-off to create Altiris)

June 1993 – December 1997

Software Application Engineer, May 1995 – December 1997

  • Created marketing software to help customers learn about Novell education and certification offerings
  • Created business productivity applications for mass e-mail management, B2B interfacing with certificate printing and fulfillment contractors, and others
  • Database Engineer for internal applications running on/with Sybase databases
  • Managed small team of contractors implementing database applications for Education department

Technical Support Engineer, June 1993 – May 1995

  • Backline phone support engineer for WordPerfect Macro/Merge Features, PerfectOffice Suite, Paradox Database Engine
  • Designed and implemented PerfectOffice automation for integration into certification tests
  • Authored articles for WordPerfect Magazine about solving various problems with macros and automation

Education and Training

B.S. in Political Science / Minor in Computer Science, Utah Valley University (2010)

Computer Science Studies, University of Washington (2000 – 2003), Utah Valley State College (1995 – 1998), Brigham Young University (1990-1991)

Developing File Systems (5-day seminar), OSR Online (2006)

Design Patterns (5-day seminar), Microsoft Internal Development Training (2002)

Certificate: Installing, Configuring, and Administering Microsoft SQL Server 2000, Microsoft Learning (2001)

Certificate: Novell Certified NetWare Administrator, Novell Education (1995)

Conference Attendance

DEFCON, August 2016

Visual Studio LIVE!, August 2012, June 2015

BriForum Chicago, 2013

Microsoft IFS Plugfest, 2004-2013

Microsoft BUILD, September 2011

Altiris ManageFusion (Presenter), 2005-2008