Craig Hansen-Sturm

Craig Hansen-Sturm

Sr. Principle Engineer at Digidesign

San Francisco Bay Area

Current
  • Senior Principle Engineer at Digidesign
Past
  • Lead Engineer - iPod Video Team at Apple
  • Principle Engineer - CPU Software at Apple Computer
  • Principle Engineer - Music Applications at Apple Computer
  • Lead Engineer - QuickTime at Apple Computer
  • Lead Engineer at Cycling '74
  • Manager at Emu Systems/Creative Labs
  • Staff Engineer at Aureal (Acquired by Creative Labs)
  • Senior Audio Engineer at Philips Semiconductors
  • Senior Audio Engineer, Direct X Team at Microsoft
  • Manager/Project Lead at Autodesk
  • Lead Engineer - Develper Products Group at Apple Computer
  • Software Developer - Music Applications at Opcode Systems
  • Software Devloper - Languages Group at Borland
Education
  • Brown University
  • City University of New York-Hunter College
Connections
126 connections
Industry
Computer Software

Craig Hansen-Sturm’s Summary

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

Craig Hansen-Sturm’s Specialties:

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


Craig Hansen-Sturm’s Experience

  • Senior Principle Engineer

    Digidesign

    (Public Company; 1001-5000 employees; AVID; Computer Software industry)

    January 2008Present (10 months)

    Host and embedded systems development for the audio industry.

  • Lead Engineer - iPod Video Team

    Apple

    (Public Company; 10,001 or more employees; Computer Hardware industry)

    January 2007August 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.

  • Principle Engineer - CPU Software

    Apple Computer

    (Public Company; 10,001 or more employees; AAPL; Computer Software industry)

    August 2006August 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.

  • Principle Engineer - Music Applications

    Apple Computer

    (Public Company; 10,001 or more employees; AAPL; Computer Software industry)

    January 2005August 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.

  • Lead Engineer - QuickTime

    Apple Computer

    (Public Company; 10,001 or more employees; AAPL; Computer Software industry)

    20032005 (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.

  • Lead Engineer

    Cycling '74

    (Computer Software industry)

    May 2000April 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.

  • Manager

    Emu Systems/Creative Labs

    (Public Company; 51-200 employees; CREAF; Computer Software industry)

    May 2000May 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 product’s 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.

  • Staff Engineer

    Aureal (Acquired by Creative Labs)

    (Public Company; 51-200 employees; Computer Software industry)

    May 1999May 2000 (1 year 1 month)

    • Responsible for WDM Midi and Wavetable Synthesizer driver development for Aureal’s 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.

  • Senior Audio Engineer

    Philips Semiconductors

    (Public Company; 10,001 or more employees; Computer Software industry)

    May 1998May 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).

  • Senior Audio Engineer, Direct X Team

    Microsoft

    (Public Company; 10,001 or more employees; MSFT; Computer Software industry)

    May 1996May 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.

  • Manager/Project Lead

    Autodesk

    (Public Company; 5001-10,000 employees; ADSK; Computer Software industry)

    May 1994May 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.

  • Lead Engineer - Develper Products Group

    Apple Computer

    (Public Company; 10,001 or more employees; AAPL; Computer Software industry)

    May 1993May 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.

  • Software Developer - Music Applications

    Opcode Systems

    (Privately Held; 51-200 employees; Computer Software industry)

    19921993 (1 year)

    • Developer of Opcode’s 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.

  • Software Devloper - Languages Group

    Borland

    (Public Company; 1001-5000 employees; BORL; Computer Software industry)

    19901992 (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.


Craig Hansen-Sturm’s Education

  • Brown University

    ScM, Computer Science, 19861989

  • City University of New York-Hunter College

    B.A., Mathematics, Philosophy, 1986

    Graduated Summa Cum Laude.


Craig Hansen-Sturm’s Contact Settings

Interested In:

  • career opportunities
  • consulting offers
  • new ventures
  • job inquiries
  • expertise requests
  • business deals
  • reference requests
  • getting back in touch

Public profile powered by: LinkedIn

Create a public profile: Sign In or Join Now

View Craig’s full profile:

  • See who you and Craig Hansen-Sturm know in common
  • Get introduced to Craig Hansen-Sturm
  • Contact Craig Hansen-Sturm directly

View Full Profile