• Designed and implemented Effects Engine (with team of 2 other people)
    • Hierarchical node graph with attribute linkages and lifecycle (with team; all remaining items are individual)
    • XPath-inspired 'node' & 'attribute' path lookups
    • Hierarchical profiling tool for C++ and scripts
    • Meganodes - new nodes implemented on top of system using existing nodes and scripts (patent #7428542 issued)
    • Remote debugger
    • Shared library plugin API
    • Exposed portion of API via Python
    • Implemented video load and saving, audio playback
    • Trained third party developers on using the system
  • Embedded Perl as scripting language using Inline and SWIG
    • Constructed framework to automatically produce releasable modules and shared libraries from Inline::CPP-style annotated source. Release versions do not depend on Inline.
    • Implemented debugger support for application via DB.pm
    • Exposed full API to internal C++ node structure, as well as OpenGL and FFmpeg libraries
  • OpenGL graphics programming and scripted behavior
    • Implemented a LightWave3D model import and rendering component
    • Implemented GLSL shaders for various visual effects
    • Implemented simple GLSL templating system
    • Enhanced the leading open source Perl OpenGL library
    • Implented pie menus, traditional menus, circle gesture recognizer, timelined behaviors, exploding frogs
  • Implemented XML dispatcher to bridge between Flash player and other applications
    • Involved use of asynchronous JavaScript XMLHTTPRequest calls to bridge between Effects Engine, web browser, and Flash plugin
    • XML dispatcher also used to combine multiple Effect Engine instances into a larger display
  • Deployed and heavily customized Tinderbox to perform automated builds and run smoke tests
    • Replaced email-based communication with XMPP (Jabber) messaging (produced CPAN module Net::Chat::Daemon)
    • Designed and implemented simple but flexible test harness
    • Integrated instant messaging to notify of build or test breakages, and to control builds
    • Integration with our revision control system to send "blame" and "praise" emails
    • Allowed tests to run remotely on test server
    • Extended to generate final build packages
  • Maintained and extended internal Wiki used as primary document repository
    • Wrote migration scripts to transfer data from legacy wiki
    • Implemented "filter" pages containing Perl scripts used to filter other pages
    • Used the above to integrate bugzilla bug descriptions with Wiki pages
    • Used the above to implemented partial page includes
    • Implemented an instant messaging interface for monitoring changes
  • Audio playback
    • Wrote installer and kernel configuration system for ALSA (Linux sound driver)
    • Implemented clip manager for GStreamer framework
    • Wrote graphical, Curses, and command-line managers for external speaker using serial communication
    • Wrote Linux kernel module for identifying USB serial ports
    • Wrote monitoring daemon for detecting hardware and software problems with audio
    • Designed and implemented camera-based volume control solution
  • Other tool design and development
    • Heavily extended NaturalDocs to provide easy documentation generation for our components
    • Wrote OpenGL save-to-video functionality
    • Wrote scripts for making available appropriate builds for different OSes, architectures, and releases
    • Wrote content packaging and testing tool
  • Created bootstrap software and procedure for hardware manufacturing, trained third-party contract manufacturer's QA team
  • Created custom kickstart CD with automatic rebuild partition and state preservation
  • Implemented fallback CD-based content distribution system (and much of network-based system)
  • Camera driver development using Linux V4L2
  • Served as interim IT department during early stages of company
  • Wrote popular newsletter to communicate engineering progress and goals to creative department
  • Ported system laptop for salespeople