Greg Pfeil’s résumé

Format

Code Portfolio

Additional code samples are available upon request. If you have a specific language in mind, pleast let me know. Also, the code linked to here may not be the most recent. If that is important, I’d be happy to provide current source.

LanguageProjectsSource CodeDescriptionSkillsAPIs
C PortAudio pa_mac_core.c

OS X support for the popular PortAudio library. It's used by a number of applications including Csound and Ardour to provide a cross-platform low-latency audio system.

  • procedural programming
  • pointers
  • callbacks
  • CoreAudio
  • AudioToolbox
Objective-C Square in the Jaw full source

A pluggable real-time audio effect for Mac OS X.

  • audio DSP
  • Cocoa
  • AudioUnit
  • vDSP
Eiffel Eiffel Audio Library full source

Cross-platform audio support for the Eiffel programming language.

  • OO programming
  • Design-by-Contract™
Java Structured Text engine full source

A tool for converting simple text markup, such as _italics_ and *bold* (like Wiki markup) into various formats, including HTML, plain text, PDF, RTF and others.

  • regular expressions
  • XML
  • XSLT
  • DOM
Java Simplified SAX Framework full source

Applies the State Pattern to SAX parsing. Maintaining the element hierarchy, and making it even easier to write a parser for your XML documents.

  • Design Patterns
  • XML
  • SAX
Haskell cellular automata ca.hs

Simple program that generates one-dimensional cellular automata based on a truth table or algorithm defined at the beginning of the source.

  • functional programming

Summary

Throughout my career I have used a number of object-oriented languages, both imperative and functional. As such, I have a solid grounding in the concepts and theory of programming. To balance that, my experience in business software has forced me to be eminently practical – I don’t allow theory to get in the way of finishing the job.

Over the past four years I have designed and implemented various large projects that I feel illustrate my programming ability. Some, including a context-sensitive search engine, required research and complex algorithm development. Previously, my research in the field of wearable computers prompted NASA to invite me as a domain expert to consult on one of their projects. More recently, my interest in music has influenced my programming, so I have written a cross-platform audio API for the Eiffel programming language (for which no audio support was previously available).

In addition, for the last three years I have employed agile development methods, such as test-first development and pair programming, in every project I have been involved with. I have found these methods to increase the clarity and reliability of the final product, as well as lower the cost of change (I have yet to work on a project where the requirements haven’t changed).