MICHAEL FAIRMAN

software designer ⊗ developer

 ◑ B/W   ↯ ANY   ♺ ALL 
 GIT ⅏   MSG ✎   COM ⑆ 
EXPERTISE
LANGUAGES

C/C++, rust, swift, bash, python, asm

SYSTEMS

Linux, Mac/iOS, RTOS

PLATFORMS

ARM, RISC-V, x86, DSP, GPU, FPGA

EXPERIENCE

2024.01 - Present

Mobile Power Delivery.

Firmware for mobile power units and related infrastructure.

C • C++ • FreeRTOS • Linux


2019.01-PRESENT

Freelance product design / development.

Various embedded and iOS/macOS projects. Try out USBee!

Rust • Swift • C++ • RISC-V • LwIP


2022.07 - 2024.01

Architecture for high-performance computing.

Designing control systems for future vehicles, focused on low-level platform software architecture and hardware integration.

C • C++ • GMSL • S32G • Stellar


2019.09-2022.07

Electric vehicle charging.

Architected microcontroller and embedded Linux frameworks for various charger subsystems, implementing vehicle interfaces (J1772, ISO 15118) and secure bootloaders (ECDSA signatures, firmware updates), with associated build/deployment mechanics. Extensive i.MX-RT, i.MX8 and STM32G bringup and BSP work.

C • C++ • CANopen • CoAP • FreeRTOS • Linux


2017.12-2019.01

Firmware for vehicle connectivity systems.

Created tools for automating vehicle network topology descriptions and routing functionality. Established system-software platform and development environment. Developed kernel drivers for CAN controllers and handled BSP/bringup.

C++ • Linux • Buildroot • nanomsg-NG • CAN


2017.02-2017.12

Long-range radio communications for off-road vehicles.

Developed real-time LoRa® radio control firmware, host libraries and map-based user interface for tracking vehicles in the wild without a cell connection. Created algorithms to form mesh-like networks on low bandwidth links to extend the tracking range. Built tools for FCC certification testing and manufacturing.

C • C++ • FreeRTOS • Linux


2009.12-2017.01

Infotainment for Model S, X and 3.

Created UI framework with animations, skinning, touch gestures and compositor for infotainment and instrument cluster displays.

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

Board bringup and Linux kernel support for display/audio hardware platforms.

C++ • Qt • Linux • OpenGL • Perl • CAN • LIN

2000s

2009.05-2009.12

Graphical design tools for hybrid digital/analog chips.

Created heirarchy-connection editor UI wxWidgets app for Mac/Windows/Linux with logic-generation backend interface.

C++ • Perl • wxWidgets


2008.11-2009.05

Various website and firmware projects.

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

PHP • CSS • WordPress • Javascript • Canvas


Member of Technical Staff
2008.02-2008.10

Motion/Voice Bluetooth Wearable

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. Board bringup and custom prototype fixtures for testing and demonstration purposes.

C/C++ • Ruby • Objective-C • BlueCore • Kalimba • Bluetooth


1999.06-2007.07

FPGA Tools

Created declarative GUI framework for SOPC Builder and Nios products, enabling module parameterization interfaces to be built without code.

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.

Built compute-farm infrastructure providing virtualized access to resources including CPUs, OSes, applications/tools, thin-client display terminals, and JTAG test nodes.

C++ • Java • Perl • Linux • Solaris

1990s

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


Contract
1995-1996

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

ADSP 21xx


Contract
1993-1994

"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.

DSP56xx • ADSP21xx • HC11


Contract
1994

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.


Royalties
1992-1994

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


Royalties
1991-1995

"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.


Contract
1991-1992

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

1980s

1987-1991

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 exercise the platform.


1985-1987

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.


1985-1988

Electrical Engineering major at CSU Fresno for three years; left early for a full-time position at Apple following several internships.

C, 8088, 680x0, Atari ST


1982-1985

Apple ][, TRS-80 Color Computer and Commodore Pet hacking in BASIC and assembly.

6809, 6502

EXPERIMENTS
tegimeki

Random other things

Including some music I've recorded. Various multi-track guitar/bass/keyboard thrashings and over-over dubbings.

Real Live, Spies and Such, Knotty Ideas

squid

Messing with three.js

A starfield-style animation using some images my daughter drew on her skateboard.

monopticon

My really old image search app

Once the page loads, just press ENTER a few times, zoom with +/- or scroll wheel... etc.

2024.02