Michael Fairman

Software Designer/Developer


April 2017
Santa Cruz, CA
[E-Mail]
[PDF]

Polaris Industries / Trail Tech
Sunnyvale, CA / Battle Ground, WA
Senior Staff Software Engineer, February 2017 - Present

Infotainment for off-road vehicles and motorcycles.

C/C++
Linux
Tesla Motors
San Carlos and Palo Alto, CA
Senior Staff Software Engineer, December 2009 - January 2017

Infotainment for Model S, X and future vehicles.

Built custom UI framework in C++ with dynamic view heirarchy, skinning, animations, touch gestures, OpenGL compositor and full simulation capabilities. Implemented numerous infotainment features using this framework and other system services.

Created scalable job automation infrastructure used for continuous testing of builds. Web and CLI front-ends, database back-end, resource management and VM dispatch.

Built various tools and libraries for CAN debugging/automation, log inspection, performance analysis, fleet scanning, manufacturing and assembly-line hardware tests, as well as vehicle drive-test suite used to qualify all cars leaving the factory.

Board-level bringup and Linux kernel BSPs for display/audio hardware platforms.

C/C++, perl, bash, Javascript

Linux, Buildroot, FreeRTOS

Qt, OpenGL

CAN, LIN
Exar Corporation
Fremont, CA
Principal Design Engineer, June - December 2009

Developed graphical design tools for hybrid digital/analog chips.

C/C++, wxWidgets
Consulting
Santa Cruz, CA
Freelance, Nov 2008 - May 2009

Consulting services for various projects ranging from hardware/board design and bring-up to firmware and operating systems to applications and user interfaces. Expertise in graphics, signal processing, server/compute-farm management, web server and web application design.

Built browser-based diagramming tool http://guitarmodder.com with stylized vector component library and intelligent auto-routing connections, http://www.saturdoon.com featuring auto-scaling of content and layout for any window size, http://www.deerhavensoap.com WordPress e-commerce site, and miscellaneous other projects.

PHP, Javascript, Ruby, Perl, C/C++, Assembly

Linux, OS X, Embedded
Fullpower Technologies
Santa Cruz, CA
Member of Technical Staff, February - October 2008

Created voice-prompt and motion-driven user interface for wearable bluetooth device under tight memory/CPU/power constraints. Implemented motion-processing and audio mixing/playback algorithms in assembly language on DSP coprocessor, and built HFP/HSP/SPP-operable applications in C on main processor. Automated generation of deployable assets including flash file upgrades, encrypted library packaging for external developers, and documentation. Worked on Mac-based host control application for calibration and testing. Brought up custom PC board and built custom prototype fixtures for testing and demonstration purposes.

C/C++, Ruby, Objective-C

BlueCore, Kalimba DSP, OS X

Bluetooth
Altera Corporation
Santa Cruz, CA / San Jose, CA
Principal Engineer, 2005-2007

Created compute-farm infrastructure used by engineering departments worldwide, transforming development process from expensive desktop workstation model to efficient network-computing flow. System provided virtualized access to resources including CPUs, OSes, applications/tools, thin-client display terminals, and JTAG test nodes. Interfaces included web front-end with process control and result visualizations, command-line, Perl and SQL.

Integrated source control, bug tracking, wiki access and other services into development flow. Drove creation of infrastructure APIs and managed automated build/test processes. Promoted infrastructure adoption among teams at multiple sites.

Senior Software Engineering Manager, 1999-2005

Developed GUI framework for SOPC Builder and Nios products. Framework allowed developers to implement user interfaces for their hardware IP modules using simple layout directives, avoiding the need for custom code. Used by customers, third-party developers and internally for product development.

Developed SignalTap embedded logic analyzer GUI and JTAG control features. Product was first of its kind to allow capture of arbitrary internal FPGA signals, revolutionizing the on-chip debug and verification process.

Managed source control, product builds and final release packaging for Nios and SOPC Builder projects.

Managed software and QA teams in Santa Cruz office.

Received five US patents: #6754862: Gaining access to internal nodes in a PLD, #6976239: Methods and apparatus for implementing parameterizable processors and peripherals, #7000161: Reconfigurable programmable logic system with configuration recovery mode, #7225285: Assigning interrupts in multi-master systems, #7010666: Methods and apparatus for memory map generation on a programmable chip.

Perl, C/C++, bash, make, Javascript, HTML, CSS, Java

Perforce, Apache, MySQL, Cygwin, Eclipse, TWiki

Linux, Windows, Solaris, Embedded (Nios), JTAG
Boulder Creek Engineering
Santa Cruz, CA
Software Engineer, 1997-1999

Developed Pod-A-Lyzer(tm) handheld logic analyzer firmware and application software. User interface provided fast pan/zoom of captured waveforms and easy-to-use bussing/un-bussing and signal assignment facilities.

Developed packet capture/disassembly layer atop logic analyzer functionality for CAN-bus and several DSP/microcontroller families.

Developed Silicon Explorer(tm) II logic analyzer firmware and application for Actel devices.

Developed firmware and host control software for Altera MasterBlaster(tm) JTAG device.

Company acquired by Altera Corporation in 1999.

C, C++, 68HC11, M-CORE

Windows, Embedded, JTAG
Consulting
Phoenix, AZ / San Jose, CA
Cylink, 1995-1996 (Contract)

"Secure Pocket Traveler" serial port security device. Wrote DSP firmware which performed public key exchange and line-rate DES encryption.

AC44 Ltd., 1993-1994 (Prototype)

"DADIO" multi-track digital hard disk recorder. Wrote firmware for system which included SCSI disk control, MIDI user interface, FIR filter coefficient calculations and code self-updates. Wrote DSP code for audio record/playback/EQ.

Crystal River Engineering, 1994 (Contract)

Wrote user interface for "Protron", a ProTools plug-in for producing spatial effects, e.g. 3-D sound. The interface allowed the user to drag sound-sources around a simulated model of a room with different sizes, shapes, and wall materials.

Nova Development Corporation, 1992-1994 (Contract/Royalties)

"Kaboom Factory" sound editing and multi-track mixing software for Macintosh. Recognized as high-value, easy-to-use sound application by various Macintosh publications.

MagicScroll Inc, 1991-1995 (Contract/Royalties)

"MagicScroll" teleprompting software for Macintosh and Windows. Wrote user interface and high-performance smooth scrolling teleprompter video output code for Truevision and Apple video cards.

Extreme Systems, 1991-1992 (Contract)

Wrote system extension to allow Mac SE to draw to external video adapter as second screen. Wrote Mac II video card driver software.

C, C++, AD21xx, M56000, 680x0, x86, 68HC11

SCSI, MIDI, DSP

Macintosh, Windows, ProTools, Embedded
Apple Computer
Cupertino, CA
Software Engineer, 1987-1991 (Internships and Full-Time)

Worked on QuickDraw GX system software. Wrote bitmap drawing code, shape-hierarchy code, region operations, and matrix math routines. Also wrote graphics demos and games to excersize the platform.

C, 680x0

Macintosh
Victor Technologies
Scotts Valley, CA
Software Engineer, 1985-1987 (Summer Internships and Contracts)

Wrote clones of MS-DOS utilities (mode, format, fdisk) and video drivers for PC emulation platform which ran on Victor 9000 hardware. Created several graphics demos and games for the Victor and early IBM PC platform.

x86

MS-DOS, CP/M
Education
California State University, Fresno, 1985-1988

Studied Electrical Engineering program for three years, focusing on Embedded System Design.

EE, CS