
at Sun Microsystems
San Francisco Bay Area

at Sun Microsystems
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, Digidesign/Avid's Protools 8.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; JAVA; Information Technology and Services industry)
February 2009 — Present (6 months)
Engineering Lead for the JavaFx Media runtime - a new, open-source, audio and video capture and playback framework. This position involves:
- Leading the rearchitecture of the audio/video rendering engine. This new runtime consists of a modified version of GStreamer with VP6 and MP3 Codecs supplied by On2. JNI is used to proxy the engine to Java. For performance, all realtime processing runs completely natively outside of the JVM. Architecture is based around a fundamental abstraction called a pipline which serves as a stream encoder, decoder, transcoder, or as a generalized audio and video effects host. Pipelines may be chained together arbitrarily to build up complex signal processing chains.
- Designing new public Java, JavaFX, and Javascript APIs which will be used by 3rd party developers.
- Integrating runtime with a new OpenGL/DirectX graphics stack.
- Defining the overall product feature set in cooperation with marketing.
- General project planning and technical leadership of a team of six engineers. This includes working with engineers in remote geographies.
- Serving as primary contact with 3rd party vendors and internal and external clients.
(Public Company; AVID; Computer Software industry)
January 2008 — September 2008 (9 months)
Responsible for the overall design of a DSP resource management framework. This work involved:
- Designing resource optimization algorithms used for allocating limited physical hardware resources (cpu, memory, dma) to software audio effects and plugins.
- Designing a framework used to model and manage internal, external, and cache memory; dma allocation; and the overall cpu scheduling for a DSP HW platform. Framework provides a mechanism for statically describing, discovering, loading, and instantiating DSP accelerated plugins, and defines a new model for hosting audio plugins under Protools.
(Public Company; 10,001 or more employees; AAPL; 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 and implementation 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; AAPL; Computer Hardware industry)
August 2006 — January 2007 (6 months)
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; AAPL; Computer Hardware 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 Hardware industry)
May 2003 — January 2005 (1 year 9 months)
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, where contention is managed using atomic 'CompareAndSwap' operations.
(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. This work involved:
- Handling all aspects of product development, from long-term feature planning, design, and implementation.
- Rewriting large parts of the application and plug-ins to run natively. This included all multimedia timer, midi, audio, thread management & synchronization, file handling, registry access, resource handling, and much of the window/dialog UI.
- Writing ASIO 2.x, DirectX, and MME host audio drivers for the MAX audio subsystem.
(Education Management industry)
May 1999 — May 2001 (2 years 1 month)
Manager at Creative Labs/Emu Systems
- Founded, staffed and managed the Emu Desktop Software Group. Managed five engineers and two contractors.
- Served as architect and lead engineer. Wrote the product’s MRD and architecture specification. Co-designed the editor/librarian application user-interface. This product design eventually grew into the successful EmulatorX product family.
Staff Engineer at Creative Labs/Aureal
- Responsible for WDM Midi and Wavetable Synthesizer driver development for Aureal’s PCI audio hardware. Implemented DLS downloading and editing support for the Aureal Wavetable Synthesizer.
- Architected, designed, and implemented WDM DirectMusic Synth and UART miniport drivers for Win2x and Win9x.
(Privately Held; 10,001 or more employees; NXP; Semiconductors 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 running PSOS RTOS. Synthesizer supported efficient DLS1 sample playback: < 1MIP per voice for 44100/16bit/Stereo bitstreams.
- Implemented and optimized MPEG I, Layer 1&2 streaming audio filter for the Trimedia 1000 series DSP processor running the PSOS real-time operating system.
(Public Company; 10,001 or more employees; MSFT; Computer Software industry)
May 1996 — May 1998 (2 years 1 month)
- Founding member of the DirectMusic team. Designed first of the DirectMusic API. Drafted the project's initial functional spec. Maintained and enhanced the Microsoft WDM kernel wavetable synthesizer. Implemented midiout playback and downloadable sample support (DLS) for the kernel synthesizer as part of DirectMusic.
- Developed DirectSound, waveout, and midi renderers for DirectShow. These renderers are used by many Microsoft products, including Internet Explorer v4.x and Media Player.
(Public Company; ADSK; Computer Software industry)
May 1994 — May 1996 (2 years 1 month)
- Managed three developers. Responsible for day-to-day project management, mentoring, and performance reviews.
- Designed and implemented a framework and object management system for a 2D, drag and drop, sketching application. Co-designer of the top level application design.
(Public Company; 10,001 or more employees; AAPL; Computer Hardware industry)
May 1993 — May 1994 (1 year 1 month)
- Developer of the Mr. CPP compiler. This compiler was 20-times faster than MPW Lucid PPC C++ compiler it replaced.
(Computer Software industry)
1992 — 1993 (1 year)
- Developer of Opcode’s Vision for Windows (Vision was one of the most successful and influential midi sequencer/audio authoring applications of its time).
(Public Company; 1001-5000 employees; BORL; Computer Software industry)
1990 — 1992 (2 years)
- Developer of OWL C++ (Object Windows Library, an application framework similar to MFC), and C++ compiler front-end for BC++ v3.0 and v3.1.
ScM , Computer Science , 1986 — 1989
B.A. , Mathematics, Philosophy , 1986
Graduated Summa Cum Laude.
Undergraduate 1978 — 1980
General engineering curriculum.