Chris Lomont

Chris Lomont, PhD

Principal Research Engineer & Inventor

Objective

To lead or collaborate with teams developing advanced technology projects including robotics, computer security, scientific computing, visualization, network research, algorithm development, quantum computation, or anything else sufficiently fascinating.

Security Clearance: Secret (expired 2013)

Work Experience

Owner at Hypnocube, LLC, Ann Arbor, MI

April 2013 - Present

  • Cofounder of Hypnocube, LLC (www.hypnocube.com), with Gene Foulk, in 2005
  • End to end product design and development, resulting in retail channel products
  • Specialization in integration of embedded electronics with custom software to produce art
  • Sold ~$1.5M of product as of spring 2017
  • Commercial products we developed include
    • The Hypnocube, a 3D lattice of true color LEDs for entertainment and scientific visualizations
    • The Hypnosquare, a 2D version
    • The HypnoLight, a remote controlled string light for many purposes
    • The HypnoLSD, a driver board for creating large scale art and lighting projects
  • Technology used
    • Software: C/C++, Assembler, C# and WPF/MVVM, F#, Mathematica, ~400K lines
    • Platforms: PIC, Atmel, Gumstix, Beagleboard, ESP32, WS2812, FreeRTOS, Linux, others
    • Algorithms: specialized compression, auto-color theme matching, audio analysis
  • Custom design for clients under NDA, including Intel and Mathematica, makers of Mathematica
  • Multiple art projects

Principal Investigator at Cybernet Systems, LLC, Ann Arbor, MI

May 2003 – April 2013

  • Authored, won, and executed/lead many Phase I and Phase II SBIRs, totalling ~$4M in award value
  • Principal Investigator on many projects (most in C++ or C#/WPF/MVVM), including
    • Image processing using quantum computation; C++
    • Hardware assisted rootkit detection and prevention via bus monitoring OS structures; FPGA, PCIe
    • Wavelet based image compression for NASA satellite imagery; C
    • Automated software verification for security; C#/WPF/MVVM
    • Network security innovations, such as IPv6 port hopping protocols; C, Linux
    • Preventing hardware attack vectors, such as a USB firewall to prevent USB attacks; USB, C, Linux
    • Virtual machine research, such as using VM deltas to track malware; C#/WPF
    • Creating radio frequency models for low cost radio verification; C#/WPF
    • Ad-hoc networking protocols; C, Linux
    • Realtime Constructive Solid Geometry (CSG) raytracer for missile defense applications; C++
    • Developed models for mitigating explosive RPG attacks on convoys; Mathematica
    • Developing algorithms for robot self-locationand mapping (SLAM); C++
  • Lead programming seminars to transfer skills from senior to junior developers
  • Numerous internal and external talks on various topics in software development, security, math, physics

Consultant at Waterfield, Ft. Wayne, IN

Apr 2001 – May 2001

  • Used Mathematica to demostrate existance of better tranch pricing algorithm; mathematical modeling
  • Proved optimal solution NP-hard, thus non-feasible; theory
  • Developed mortgage bundling algorithm using simulated annealing & random walks; algorithm devleopment
  • Developed and integrated a program implementing the algorithm; C++

Teaching Assistant at Purdue, West Lafayette, IN

Aug 1996 – May 2003

  • Won excellence in teaching award in 2001, selected by students and faculty
  • Taught courses: all levels of undergrad math, graduate economics, numerical algorithms

Lead Programmer at PHD, Ft. Wayne, IN

Feb 1995 – Nov 2000

  • Lead a team implementing 6 large software systems and many smaller tools; WinNT, Win95, Manage
  • NURBS based parametric geometric modeling tools, with full trim curve and CSG support; C,C++
  • Created rendering tools for robotic part selection and manipulation; C,C++, OpenGL
  • Wrote a cross compiler to convert an old language to C/C++ easing future development; Python
  • Taught advanced C++ to company developers: teaching
  • Resulting tools distributed on CD-ROM to engineers, shortening part generation time
  • Shipped over 300,000 copies in 8 releases

Consultant at Sunstorm, Indianapolis, IN

Oct 1997 – May 1998

  • Developed NURBS code, high-performance surface tessellation, and rendering algorithms; C,C++

Consultant at Inland Productions, Chicago, IL

Jun 1997 – Jul 1998

  • Implemented DirectPlay network code; C/C++
  • Modeled flight paths, obtaining pleasing pitch and yaw flight parameters from parametric curves; Mathematica 3.0
  • Implemented subdivision surface algorithms for use in realtime gaming; C/C++
  • Other miscellaneous coding tasks

Teaching Assistant at IPFW, Ft. Wayne, IN

Aug 1995 – May 1996

  • Taught mathematics courses for IPFW while finishing masters degree in mathematics

Consultant at Studio E, Chicago, IL

June 1995 – Feb 1996

  • Created 20,000 line modeling tool for 3D game development; Sony Playstation, SEGA Saturn, C,C++, WinNT, Win95
  • Tool allowed real-time modeling, Gourad shaded texturing, light placement, DXF import

Consultant at Pulse, Ft. Wayne, IN

Nov 1994 – March 1995

  • Developed program tracking investment firm financial data, did standard and customer portfolio formatting; C

Lead Programmer at Black Pearl Software, Chicago IL

Oct 1993 – Nov 1994

  • Designed and coded SEGA video game, 75,000 lines; 68000 assembler
  • Managed tool programmer and art assets
  • Wrote tools for DOS and Windows; C, C++
  • Developed image processing pipeline, physics based modeling tools
  • Developed music, AI, real-time control, compression, and other systems

Consultant at Betz Systems, ID

Oct 1993 – Feb 1994

  • Developed oil well data acquisition, management, and visualization system; C++, Win 3.1

Lead Programmer at DataLogics, Chicago IL

Oct 1992 – Aug 1993

  • Worked on SGML (document structure language like HTML) parser; C, OS/2, DOS, Win 3.1
  • Formally taught C to group, answering questions about our product internals; C
  • Ported 16-bit, 100,0000 line OS/2 SGML editor to 32-bit Windows NT using the Microsoft SDK;C
  • Rewrote DDE code, PM GUI interface, and a multithreaded application handler;C
  • Wrote graphics launch and viewer for OS/2
  • Worked on SGML import/export code for FrameBuilder under X-Windows on a SPARCstation
  • Developed tools for group as needed

Systems Analyst at Sears, Chicago, IL

Jan 1992 – Oct 1992

  • Worked on team to develop a Promotional Marketing System; C, OS/2, Easel
  • Designed and coded a networked time management system; C++
  • Used DDE to link Lotus to Easel
  • Used TSO and various mainframe to PC connections

Skills

Languages and tooling

  • Mathematica 30 years
  • C/C++ 25+ years
  • C# 12 years
  • WPF/MVVM 10 years
  • F# 5 years
  • x86 assembly 20 years
  • x64 assembly 10 years
  • PIC/MIPS assembly 10 years
  • Python 5 years, not recent
  • JavaScript 2 years
  • Misc other:
    • Visual Basic, Smalltalk, LISP, COBOL, Basic, Snobol4, Prolog, Pascal, more
    • 6502, 6809, Z80, 6800, 68000, Xtensa, ARM, more
  • MSVC 1.0 to VS2017, 35 years
  • OpenGL 20 years
  • Win32 SDK 15 years
  • DirectX 3 years
  • Win32 DDK 2 years

Systems and protocols

  • Windows 25 years, Windows 3.1 through Windows 10
  • Linux, many flavors, 10 years
  • PIC, all types, 10 years
  • (X)HTML, CSS 15 years
  • PHP, Apache 2 years
  • Android 1 year
  • Embedded platforms 10 years:
    • PIC, Gumstix, Atmel, ESP32, Beagleboard, some FPGA, more
  • Hardware protocols ~5 ~10 years
    • I2C, SPI, DMA, ADC, others
  • Networking protcols 10 years
    • IPv4, IPv6, TCP/IP, UDP, others
  • DOS 10 years
  • OS/2 2.0 and 2.1 3 years
  • SEGA arcade platform 1 year
  • FPGA, 2 years
  • WiFi development 2 years
  • VAX, VMS, MVS, TSO
  • X-Windows for Sun Workstations

Education

Ph.D., Mathematics, Purdue University, W. Lafayette, IN

Fall 1996 - May 2003

  • Dissertation: "Error Correcting Codes on Algebraic Surfaces".
  • Worked in algebraic geometry, coding theory, cryptography, quantum computing
  • Did about half of the coursework for a M.S. in Computer Science, some graduate physics courses

M. S., Mathematics, Indiana-Purdue at Fort Wayne.

Jan 1995 - May 1996

3.6/4.0 GPA

Triple B. S. in Physics, Math, and Computer Science, ORU, Tulsa, OK

Aug 1987 - May 1991

Graduated with honors, 3.5/4.0, top math and top physics student

South Side High School, Ft. Wayne, IN

Graduated 1987 with high honors (#6 out of ~400), top SAT score in school, top math student all four years

Patents (pending and granted)

  • 8806619 System and methods for detecting software vulnerabilities and malicious code
  • 8646082 USB firewall apparatus and method
  • US 20110314331 A1 Automated test and repair method and apparatus applicable to complex, distributed systems

Publications

Awards and recognition

  • Won departmental teaching award for Excellence in teaching, 2000, Purdue University
  • Awarded both VIGRE fellowship (2000-2001) and Purdue Research Fellowship while in PhD program
  • First Place State competition in Academic All Around 1987, 3rd place in Science
  • Top Math student all four years of High School and all four years of college
  • ACM College Computer Programming team 1990–1991
  • Graduated top Physics and top Math student in undergrad
  • Top Scorer Nationwide Putnam Math Competition for Oklahoma\Arkansas section 1991
  • Presented Paper on unsolved problems to the American Math Association 1989

Personal

  • Excellent people and leadership skills
    • Asked to be on various employee/management comittees at last few work places
    • Lead programming teams and workshops at many work places
    • Selected to mentor programmers at many work places
    • Elected Graduate Student Representative almost every year of graduate school
    • Selected to lead a missionary team overseas after undergrad
    • Led sales team during college summers
    • Held numerous leadership positions in high school
  • Have written ~1,000,000 lines of C, C++, assembler, C#, other languages for personal use over 35 years
    • AI: natural language processing, genetic algorithms, neural nets
    • Security and cryptographic algorithms: my AES implementation is widely used
    • Graphics: reading/writing images, 3D formats, color reduction, NURB libraries, color space tools
    • Compression: have designed many compression formats for specialized uses
    • Modeling: mesh manipulation, 3D modeling, mesh compression, sprite compression
    • Languages: designed and implemted several languages, compilers, and IDEs
    • Assemblers/disassemblers: 6809, x86/x64, more
    • Algorithms: tree and graph searching, did 300+ Project Euler problems
    • PRNGs: my code and article for random numbers are widely used.
    • Audio: many algorithms including beat detection and prediction. My FFT code and article are widely used
  • Programming since 6th grade (TRS-80 BASIC and assembler back then..)
  • Learns quickly – IQ tested at over 150

References available upon request