
Sr. Principle Engineer at Digidesign
San Francisco Bay Area

Sr. Principle Engineer at Digidesign
San Francisco Bay Area
Proven track record of shipping successful, revenue-generating products:
• Applications (Apple’s Logic v7.x and GarageBand, Apple’s QuickTime v6/7, Microsoft’s Internet Explorer 4.0, Autodesk’s AutoCad R13, Opcode’s Vision for Windows, Cycling ‘74’s MAX for Windows, and Borland’s BC++ v3.x development environment).
• Consumer Hardware (3rd Generation iPod Nano / 6th Generation Video iPod)
• Device drivers (Aureal’s WDM audio DirectMusic & UART miniport drivers, Cycling ’74 ASIO, DirectX, and MME host drivers for MAX).
• Operating System components (Apple's BootCamp for OS X 10.5, DirectX/DirectShow audio renderers and DLS wavetable synthesizer for Windows Windows 98SE, 2000; and the QuickTime AudioEngine for Mac OS X 10.3 & 10.4).
• Application frameworks (Borland’s OWL v3.x; Symantec’s and Apple’s Bedrock v1; Autodesk’s LEGO - an ATL-like, COM C++ template library; and Opcode’s MACLIB - a MacOS on Windows emulator used by Vision).
• C++ Compiler/translator development (Borland’s BC++ v3x, Apple’s Mr CPP C++ compiler).
• Strong architectural and technical and management leadership abilities.
• Proven ability to innovate, master the complexity of large scale projects, and ship products on time.
• Strong object-oriented design and C/C++ framework/library design background.
• Deep understanding of performance-critical software, optimization, and platform limitations and workarounds.
• Extensive cross-platform development experience on Windows (all versions), Mac OS X, and BSD Unix.
(Public Company; 1001-5000 employees; AVID; Computer Software industry)
January 2008 — Present (10 months)
Host and embedded systems development for the audio industry.
(Public Company; 10,001 or more employees; Computer Hardware industry)
January 2007 — August 2007 (8 months)
Served as lead engineer for the iPod Video Team for the 3rd generation iPod Nano and the 6th generation Video iPod. This work involved:
- Driving the design of the Audio/Video synchronization manager component.
- Collaborating with Graphics and Sound teams on the overall design of the a new video and graphics rendering pipeline.
- Leading a small, talented, team of three engineers.
(Public Company; 10,001 or more employees; AAPL; Computer Software industry)
August 2006 — August 2007 (1 year 1 month)
Designed and implemented a Windows to OS X fast OS-switching feature for Leopard 10.5.x and BootCamp 1.x. This involved:
- Working with multiple teams within Apple in a feature-lead capacity, driving discussions with the Finder UI, File System, Graphics, Disk, and IOKit driver teams; as well as Core OS Program Management.
- Modifying the MacOS bootloader, the kernel hibernation code, and the platform-expert kext driver.
- Writing separate Windows and MacOS system services used to hook system power notifications, clean/prepare memory, initiate hibernation, unmount/mark disk partitions, protect mounted partitions, as well as trigger automatic restart into MacOS after Windows hibernation (and conversely).
- Developing a reliable method to automatically restart Windows after hibernation (using rtc timers).
- Developing a signaling mechanism between hibernated and active OS’s using shared RTC memory.
- Reverse engineering undocumented Windows hibernation code.
(Public Company; 10,001 or more employees; AAPL; Computer Software industry)
January 2005 — August 2006 (1 year 8 months)
• Designed and implemented the Disk IO, File Streaming and Data Compression framework for Logic v7.2x and Garageband v3.x. Functionality includes:
- Ultra-high IO performance, tripled Application disk IO bandwidth from 70 to 255 tracks (441khz/24bit/mono PCM).
- Unique, chainable data-source architecture. Each data-source object implements a single IO optimization which delegates through a data-source object chain. Optimizations include: page aligning buffer memory and IO request sizes; sorting IO requests by logical disk offset; scheduling IO requests using a disk sweep/elevator algorithm; and reading ahead and selectively caching IO requests.
- Support for streaming and export of MP3 and M4A AAC and Apple Lossless files with accurate encoder and decoder priming/draining latency compensation.
(Public Company; 10,001 or more employees; AAPL; Computer Software industry)
2003 — 2005 (2 years)
• Architect of the QuickTime AudioEngine for QuickTime v7. This engine provides the foundation for multi-channel audio playback within the QuickTime player, the OS X finder, and several iLife applications such as iMovie and iDVD. Functionality includes:
- Signal chains built up using a single recursive data structure called a channel, representing a physical strip on an audio mixer.
- Collections of channels organized as a hierarchical tree structure patterned after user-interface frameworks. Messages are forwarded to each level of the tree until a channel containing an appropriate handler is found. Default properties are inherited from parent to child by default.
- Properties and control handling are implemented using a unified asynchronous event system. Interrupt level connection events are scheduled on a real-time thread. Thread contention is managed with atomic ‘CompareAndSwap’ operations.
- Filed my first patent on behalf of Apple for this work.
(Computer Software industry)
May 2000 — April 2003 (3 years)
• Responsible for the Windows versions of Max and Max/MSP. Max/MSP is a real-time, midi/audio authoring and programming environment.
• Responsible for all aspects of product development, from long-term feature planning, design, and implementation.
• Rewrote large parts of the application and plug-ins natively for performance or platform compatibility reasons. This included all multimedia timer, midi, audio, thread management & synchronization, file handling, registry access, resource handling, and much of the window/dialog management code.
• Hand-optimized performance “hot-spots” in the application using Intel assembly and SIMD instructions. These performance enhancements resulted in significantly lower CPU usage stats than the original Mac product.
• Implemented ASIO 2.x, DirectX, and MME host audio drivers for the MAX audio subsystem, as well as a 1 microsecond accurate, two-stage, low-latency, self-correcting timer for the MAX midi/audio/event scheduler.
(Public Company; 51-200 employees; CREAF; Computer Software industry)
May 2000 — May 2001 (1 year 1 month)
Founded, staffed and managed the Emu Desktop Software Group. Managed five engineers and two contractors.
Served as architect and lead engineer for the version one product. Wrote the products MRD and architecture specification. This product design eventually grew into the now successful Emulator X product family.
Co-designed the editor/librarian application user-interface. This UI design formed the basis of the Emulator X product.
Implementor of a device encapsulation library used to decouple applications from the redundant APIs used to access devices on Win32; this includes MME midi input/output, SCSI, and ATAPI CD drive access, ASIO, DirectSound, and custom IOCTLs for private interfaces.
Implemented a OS-neutral system portability library. This included creating the library abstractions for: threads, timers, clocks, memory mapped files, allocators, synchronization primitives, etc.
Rehosted embedded E4/EOS hardware sampler/synthesizer onto Win32.
(Public Company; 51-200 employees; Computer Software industry)
May 1999 — May 2000 (1 year 1 month)
Responsible for WDM Midi and Wavetable Synthesizer driver development for Aureals PCI audio hardware. Implemented DLS downloading and interactive editing support for the Aureal Wavetable Synthesizer.
Architected, designed, and implemented WDM DirectMusic Synth and UART miniport drivers for Win2000 and Win9x.
(Public Company; 10,001 or more employees; Computer Software industry)
May 1998 — May 1999 (1 year 1 month)
Designed and implemented a DLS wavetable software synthesizer engine for the Trimedia 1000-series DSP processor. Synthesizer consists of: a midi parser, a DLS file parser, an instrument manager, a sequencer, a voice manager, and an audio renderer. Efficient DLS1 sample playback: < 1MIP per voice for 44100/16bit/Stereo bitstreams. Platform neutral, runs under Win32/Intel client as well as on embedded PSOS RTOS/Trimedia 1000-series DSP.
Implemented MPEG I, Layer 1&2 streaming audio filter for the Trimedia 1000 series DSP processor running the PSOS real-time operating system. Optimized filter for the TM 1.x instruction set. Implemented all Trimedia streaming API code (roughly analogous to writing a DirectShow/DirectX filter).
(Public Company; 10,001 or more employees; MSFT; Computer Software industry)
May 1996 — May 1998 (2 years 1 month)
Developed DirectSound, waveout, and midi renderers for DirectX/DirectShow 2.0. These renderers shipped as part streaming playback engine for Internet Explorer v4.x and Media Player.
Designed and implemented DirectTransform Audio, a lightweight audio plug-in architecture used for embedding audio effects within Web pages.
Wrote the project's functional specification.
Implemented several basic DSP effects including: Basic audio (panning, volume, muting), chorus/flange, delay, and noise gate.
Implemented DirectShow adapter filters which embed video and audio DirectTransform Effects within DirectX plug-in filters, and conversely.
Designed first revision of the DirectMusic API. Wrote project's initial functional spec.
Maintained and enhanced the Microsoft WDM kernel wavetable synthesizer. Shipped synthesizer as part of Win2k.
Implemented midiout playback and downloadable sample support to kernel synthesizer as part of DirectMusic.
(Public Company; 5001-10,000 employees; ADSK; Computer Software industry)
May 1994 — May 1996 (2 years 1 month)
Managed the framework and object management system development team for a 2D, drag and drop, sketching application. Responsible for the high-level design of the application.
Managed three developers. Responsible for day-to-day project management, mentoring, and performance reviews.
Served as functional lead for the framework team, and architected the following framework components: a frame-based, prototype-instance, object management system patterned after the SELF programming language.
Architected the following libraries: an ATL-like framework for creating ActiveX/COM clients and servers, a hierarchical zone memory manager, and a DLL extension/plug-in manager. The ActiveX/COM framework had a decentralized design, based on collections of C++ templates which generated all boilerplate code for COM's low level system interfaces. Framework was cross platform (Win32, Win95, Win32s, Dos, UNIX). Framework anticipated the development of Microsoft's ATL by three years.
(Public Company; 10,001 or more employees; AAPL; Computer Software industry)
May 1993 — May 1994 (1 year 1 month)
Developer of the Mr. CPP compiler. Implemented an AST to PIL translator which mated v6.0.x of the Symantec C++ compiler's front end with Lucid's back end. Bootstrapped the compiler onto PowerPC. The design of this translator was extremely successful; it resulted in a compiler which was 20-times faster than the original MPW Lucid PPC C++ compiler.
(Privately Held; 51-200 employees; Computer Software industry)
1992 — 1993 (1 year)
Developer of Opcodes Vision for Windows. Primarily responsible for writing a Macintosh Toolkit emulation library which enabled Mac System 7 applications to run under Win16 with little or no modification. While Opcode used this emulation library within Vision, this library was also sold as a separate product.
(Public Company; 1001-5000 employees; BORL; Computer Software industry)
1990 — 1992 (2 years)
Developer for v1.x release of OWL (Object Windows Library, an application framework similar to MFC).
General C++ compiler front-end development for BC++ v3.0 and v3.1.
ScM, Computer Science, 1986 — 1989
B.A., Mathematics, Philosophy, 1986
Graduated Summa Cum Laude.