Mike Gibson

Software Engineer

3452 Medford Dr.
Bountiful, UT 84010
M: 801-554-3942


Sling TV

Senior Staff Software Engineer
November 2013 - Present
  • Over-the-Air television DVR and streaming device (C++/Linux/MIPS)
  • Roku UI Lead (C++/Linux/Qt/ARM/MIPS)
  • XBOX One streaming video client in JavaScript


Senior Software Engineer
June 2013 - November 2013

    • Developed core libraries used by forensic and security products in C++
    • Responsible for product licensing code
    • Quickly came up to speed and was able to contribute to several different products

Vantis Solutions

Director of Engineering
August 2012 - June 2013

    • Developed pipeline inspection data analysis tool
    • All work was multiplatform (Linux and Windows) using Qt
    • Large data sets were the norm

StorageCraft Technology Corporation

Senior Software Engineer - Linux Kernel
December 2011 - August 2012

    • Kernel drivers related to disk image backup projects

Senior Software Engineer - Linux
October 2010 - December 2011

    • ShadowStream high speed network backup image replication technology
    • Team lead for Linux based Live Recovery Environment
    • General Linux Development

T. D. Williamson, Inc.

Software Engineering Supervisor
May 2007 - October 2010

    • Built up and hired an 11 member software development team.
    • Oversaw all aspects of development group including performance reviews, raises, hiring, etc.
    • Implemented best practices for software engineering including code reviews, testing, release cycles and issue tracking.
    • Worked closely with Electrical Engineering team responsible for data collection platform.

Senior Software Engineer
December 2005 - May 2007

Software Engineer
March 2004 - December 2005

    • Team leader of Pigtrap project, the flagship data analysis and reporting software for the company.  Maintained and refactored software to improve development turnaround. All work done in C++.  Responsible for team of five developers.
    • Worked with large data sets and developed compression schemes for data that could be run on an low-power embedded platform.
    • Developed format neutral data interface framework to the various large data formats produced by the data collection tool.
    • Developed tool calibration program that communicated directly with the tool.
    • Implemented and enforced a development process, including a build system, source code control, revisions, and controlled release process.
    • Interacted with users on a daily basis to collect and interpret requirements.
University of Utah Genetics Department

Bioinformaticist / Software Developer
May 2002 - April 2004

    • Administrated and processed corn mitochondrial genetics data. Created system with GNU make, to automate data processing done with PERL scripts and C++ programs.  Build system worked on Linux and Mac OS X.
    • Used Linux for all development and data processing work.
    • Developed specialized figure generation program in C++ for small circular genomes. Embedded JavaScript as a configuration language to provide a wide range of formatting options to figure creators.
    • Developed fast accurate dotplot tool in C++ for comparison of two genomes.
    • Discovered interesting distribution of open reading frames in semi-random genetic sequences using Monte Carlo analysis.
Solin Corporation & Montgomery Watson Harza

Software Engineer
1998 - May 2002

    • Responsible for all major software development work in Salt Lake City office.
    • Moved from poor in-house SCM to Perforce.  Builds done with nmake.
    • Interfaced with the client on a daily basis.
    • Developed multiple engineering related software tools in C++, from data and image processing tools, to visualization tools. Many of these tools interfaced to Oracle or Access databases.  Oracle databases were very large.
    • Developed and designed in C++ major portions of Active Web GIS. A GPS enabled ActiveX control for doing Maps on the web. Responsible for updating the design from the prototype stage to beta. Key portion of a GIS in use at MWH today.
    • Developed the Envision Viewer, a browser-based interface in JavaScript and C++ (via ActiveX) to a million record Oracle environmental sampling database. Requirements included ability to transfer and run from CD without modification and ability to interface to any ODBC compliant database.
Sarcos Inc.

October 2001

    • Developed low-level software for A/D conversion card to interface to medical CCD in C++ and Visual Basic.
University of Utah Computer Science Department

Teaching Assistant
August - December 2001

    • Taught two lab sections for Introductory Course in Computer Science for Computer Science Majors.
University of Utah CADE Lab

UNIX Systems Administrator
1994 - 1995, 1997 - 1998

    • Supported about 300 UNIX machines running various UNIX operating systems.

B.S. Computer Science

University of Utah
Salt Lake City, Utah

Computer Science Courses: Machine Vision, Computational Geometry, Linear Algebra, Digital Circuit Design, Machine Learning, Natural Language Processing, Operating Systems, Compilers, Programming Languages

Other Courses: Mathematics, Numerical Analysis, Genetics, Probability, Parallel Programming, Business Concepts, Geography


Languages: Advanced C++ (including templates and template meta-programming), JavaScript, PERL, Scheme, SQL
Development Platforms: Windows, Linux, Mac OS X
Areas: Object Oriented Design, Engineering Software, Large Databases and Data Sets, Modern C++ Design, Data Analysis
Technologies: Qt, STL, Boost Libraries, GNU make, Emacs, Visual Studio, MATLAB, PHP, Windows API/MFC, Subversion, LaTeX
sqlite, MySQL, Oracle, MS Access
Linux Distributions: Ubuntu, CentOS, Gentoo, SuSE


S.W. Clifton, P. Minx, C.M. Fauron, M. Gibson, J.O. Allen, H. Sun, M. Thompson, W.B. Barbazuk, S. Kanuganti, C. Tayloe, L. Meyer, R.K. Wilson, K.J. Newton
Sequence and comparative analysis of the maize NB mitochondrial genome.
Plant Physiology, November 2004


  • Linux driver for USBAT CompactFlash Reader [link]
  • Median algorithm for Boost Accumulators library
  • DirectFB driver for Qt/Embedded 3 [link]