John H. Baldwin

john@baldwin.cx
http://www.baldwin.cx/~john/

Home Address
1628 Kimble Dr
Marietta, GA 30064
Objective: To obtain a full time position in operating system development at the kernel level.
Education: B.S., Computer Science, May 2000
B.S., Mathematics, Applied Discrete Mathematics concentration, May 2000
Virginia Polytechnic Institute & State University (Virginia Tech)
Blacksburg, VA.
Minor: Religious Studies
Relevant Coursework:
  • Data Structures and File Management
  • Operating Systems
  • Comparative Languages
  • Numerical Methods
  • Compiler Theory and Design
Computer Skills: Hardware Architectures: Intel x86, AMD x86-64, Alpha
Operating Systems: FreeBSD, Windows, Mac OS X
Programming Languages: C, C++, Intel x86 Assembly, Alpha Assembly, Python, Bourne Shell, Korn Shell, C Shell, Awk, Sed
Markup Languages: DocBook, HTML, LaTeX, XML
Applications: Xemacs, CVS, GDB, Perforce, Subversion
Work Experience: Senior Technical Yahoo!, Yahoo!, Atlanta, GA
May 2006 - December 2008
  • Wrote monitoring daemons and RAID management utilities for the LSI MPT-Fusion HBA and LSI MegaRAID SAS controllers.
  • Added support for booting FreeBSD from GPT-labelled disks directly from the BIOS (as opposed to booting from EFI).
  • Implemented support for PCI Message Signalled Interrupts in FreeBSD's PCI bus driver.
  • Extended kgdb to better integrate with gdb, including native handling for kernel module symbols.
  • Provided general support for OS issues on FreeBSD including analyzing kernel crashes and deadlocks and also analyzing userland issues such as run time linker bugs.
Senior Software Engineer, The Weather Channel, Atlanta, GA
November 2001 - May 2006
  • Ported simple device driver from Linux to FreeBSD and Windows XP (WDM);
  • Ported device driver for Video I/O board from FreeBSD to Mac OS X.
  • Backported simple ACPI support to FreeBSD 4.x to support soft power-off.
  • Continued work on multithreading the FreeBSD kernel:
    • Added a per-thread reference to user credentials to avoid locking and avoid race conditions with permission checks.
    • Implemented turnstiles with priority propogation and reader/writer locks.
  • Rewrote most of the x86-specific interrupt handling code to allow runtime selection of interrupt controllers. Also, implemented PCI interrupt routing across PCI-PCI bridges using $PIR and PCI interrupt routing using ACPI.
  • Appointed as FreeBSD SMP technical lead;
  • Elected to serve on FreeBSD governing board.
Senior Engineer, Wind River Systems, Inc., Alameda, CA
May 2001 - November 2001
  • Continued work on multithreading the FreeBSD kernel;
  • Extended the Witness debugging facility to handle lock upgrades and downgrades;
  • Converted the ktrace debugging facility to use a kernel thread to write to its backing file to avoid locking problems;
  • Made the FreeBSD kernel fully preemptive.
Systems Programmer, Berkeley Software Design, Inc., Concord, CA
June 2000 - May 2001
  • Improved support for EDD BIOS support in the x86 bootstrap needed for hard drives larger than 8.4 GB.
  • Worked as one of the primary engineers on the FreeBSD SMP next generation project:
    • Converted low-level interrupt vectors to interrupt threads;
    • Extended the atomic operation kernel API to allow for memory barriers in a manner consistent for the x86, Alpha, and IA-64 architectures;
    • Reworked the mutex code inherited from BSD/OS to be fully machine independent and to depend on the expanded atomic operation API for its machine dependent bits;
    • Split the software interrupt code from hardware interrupts and made it completely machine independent; and
    • Extended the Witness lock debugging facility to perform checks on shared/exclusive locks in addition to mutexes.
  • Assisted in implementing low-level support for SMP on Alpha systems.
Lab Administrator, Virginia Tech, Blacksburg, VA
August 1998 - May 2000
  • Administered over 40 machines in the CS undergraduate lab running FreeBSD and Tru64 UNIX.
  • Implemented a server/client remote cloning system using PicoBSD.
Summer Intern, Fuentez Systems Concepts, Inc., Martinsburg, WV
May 1999 - August 1999
  • Rewrote all of the makefiles, centralizing the definition of default rules and options. This new system also allowed all internal software to be recompiled with a single make command.
  • Designed and implemented a system that allowed the Automated Mutual-assistance VEssel Rescue (AMVER) system to receive messages from ships directly over e-mail.
Summer Intern, Gilbarco, Inc., Greensboro, NC
May 1998 - August 1998
  • Wrote shell scripts to automate tedious system administrator tasks under SCO Openserver.
  • Developed a web-based database of problem reports searchable and maintainable via CGI scripts.
Activities:
  • Committer, FreeBSD (August 1999 - Present)
  • Core Team Member, FreeBSD (June 2002 - July 2006)
Interests: FreeBSD advocacy, playing guitar, reading science fiction
References: Available upon request