Hans Fugal
700 California Ave #8
Las Cruces, NM 88001
575-621-1049
http://hans.fugal.net/
hans@fugal.net
Education
PhD Computer Science, New Mexico State University (Fall 2005–August 2009 expected)
GPA 3.80/4.00
Research in audio processing: Identification of pipe organ stops in audio recordings
Digital Signal Processing, Machine Learning
Significant class projects: Haas stereophonic effect on an embedded DSP board.

BSc  Computer Science, Brigham Young University (Fall 1996, Fall 1999–Spring 2004)
GPA 3.76/4.00
Significant class projects: implemented a network MIDI protocol dealing with real-time issues like latency and jitter; rudimentary speaker identification using machine learning; multi-agent capture the flag game AI.
Publications
H. Fugal, “Optimizing the Constant-Q Transform in Octave,” Linux Audio Conference, April 2009.
 H. Fugal, “Hack #13: Edit XML with Vim.” In M. Fitzgerald, XML Hacks, O'Reilly Media, 2004, pp. 49–53
Skills
Programming
Ruby, C, (ba)sh, C++, real-time, pthreads, sockets, MATLAB/Octave, JACK, Qt, MVC, DSP, Motorola assembly, QNX, Java. Familiarity with Perl, SWIG, XSLT, Erlang, Scheme. Proficient with a number of revision control systems, especially git and mercurial.
System Administration
Linux, Debian, RedHat, HP-UX, DNS, OpenVPN, IPsec, PPTP, Samba, Postfix, Dovecot, Asterisk, SER, SIP, Tivoli Backup, NIS, NFS, MySQL, Postgres, Apache, scripting, iptables, QoS, HylaFAX, bayesian spam filtering, ClamAV, Amavis, DansGuardian, Squid, Nagios, mon, SNMP, cacti
Web
Ruby on Rails, XHTML, CSS, SVG, PHP. Familiarity with Javascript and AJAX.
Experience
Independent Consultant (Fall 2005–Present)
Voice over IP solutions for small businesses. Asterisk, SER, SIP, IP phones, analog adapters
Linux system administration. Troubleshooting, maintenance, added features
Web development. Primarily Ruby on Rails
Instructor, C Programming (CS 167/467), Computer Science Dept, NMSU (Summer 2006, Spring 2008)
Designed and taught the course and programming assignments
Instructor, Computer Literacy (CS 110), Computer Science Dept, NMSU (Fall 2007)
Teaching Assistant, Computer Science Dept, NMSU (Fall 2005–Spring 2009)
Automata, Languages, Computability (CS 510)
Data Structures and Algorithms (CS 372)
User Interface Design (CS 485)
Introduction to Data Structures (CS 272)—second-semester CS/Java course for CS majors
Algorithmic Computation (CS 171)—Introductory CS/Java course for CS majors
Computer Literacy (CS 110)—Office, HTML, Visual Basic
System Administrator, Wencor West, Inc. (Spring 2004–Summer 2005)
Implemented VPN solution for remote offices and roadwarriors using OpenVPN and IPsec
Implemented single sign-on, unifying Linux, Windows domain, Samba, Postgres, and Apache
Designed and implemented Tivoli Backup/Archive backup and restore strategy
Primarily Linux (RHEL and Debian) servers
Mail, DNS, web, database, file servers, user accounts, CUPS, some Lotus Notes and Windows
Research Assistant, Mechanical Engineering Dept, BYU (Summer 2003–Spring 2004)
Versatile Machine and Actuator Control—smart home and machinery control
Custom real-time network protocol on ethernet hardware for device control
Real-time network system control developed in C on QNX
Developed collision-free multirate ethernet communication scheme
Research Assistant, Computer Science Dept, BYU (Summer 2002–Spring 2003)
Genealogy visualization and database merging
System Administrator  and Web Developer, SurveyPro (2000–2002)
Linux, Apache, MySQL, email, DNS, HTML and Perl.
Web Development Intern, The Church of Jesus Christ of Latter-day Saints (Summer 2001–Spring 2002)
Vignette StoryServer. HTML and Javascript
Assistant UNIX System Administrator, CAEDM, College of Engineering, BYU (Fall 2000–Spring 2001)
HP-UX system administration
User accounts, quota and printing accounting Perl and shell scripts
Research Assistant, School of Music, BYU (Summer 2000)
Maintained Organ Tutor, written in Macromedia Director
Organ Composer Information Database webmaster
Teaching Assistant, Java Programming (ISys 540), Information Systems, BYU (Spring 2000)
Portfolio
Selections from http://hans.fugal.net/src
ABD HID caps lock patch for the Linux kernel
lindbergh: flight planning software
rosc: a Ruby library for Open Sound Control
batphone: a Ruby Asterisk Gateway Interface
k20: ANSI terminal K-20 meter for JACK
ruby-audio: Audio library for Ruby
ruby-wx: METAR library for Ruby
hearnet: an audible network analysis tool (C++, JACK)
LAM: Music Made with Linux website (http://lam.fugal.net)
nmidi: networked MIDI (C, ALSA)
Grants, Fellowships & Awards
Google Summer of Code (Summer 2006)
Added persistent undo to Ardour
GAANN Fellow (Summer 2006–Fall 2008)
GENTECH Research Grant (2002–2003)
An XML implementation of the Genealogical Data Model (http://gdmxml.fugal.net)
Research presented at the National Genealogical Society conference, 2003
Eagle Scout, Boy Scouts of America (1995)
Volunteer Service
Various presentations for Linux Users Groups on subjects such as Vim, QoS, VOIP, email administration, Debian, GnuPG, and others.
President and Vice President, Computer Science Graduate Student Organization, NMSU
System Administrator, Provo Linux Users Group
System Administrator and Officer, BYU UNIX Users Group
Maintained 3 Debian Packages for 3 years.

References available upon request.