John H. Baldwin

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

Summary: A FreeBSD committer with development experience in various areas of the kernel as well as experience maintaining custom FreeBSD distributions.
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
Computer Skills: Hardware Architectures: Intel x86, x86-64 (amd64)
Operating Systems: FreeBSD, Mac OS X
Programming Languages: C, C++, x86 and x86-64 Assembly, Python, Bourne Shell, C Shell, Awk, Sed
Markup Languages: DocBook, HTML, LaTeX, XML
Development Tools: Emacs, GDB, Perforce, Subversion, git, cscope
Work Experience: Member, Ararat River Consulting, LLC, Concord, CA
July 2014 - Present
  • Prototyped alternate API to support zero-copy receive for offloaded TCP connections in Chelsio T4/T5 NICs.
  • Expanded debugging support for XSAVE including saving state in core dumps and adding XSAVE support for FreeBSD to gdb.
  • Added support for fork following on FreeBSD to gdb using ptrace().
  • Ported kgdb from GDB 6.1 to GDB 7. Expanded libkvm to support cross debugging of crashdumps.
Software Engineer, Hudson River Trading, New York, NY
January 2009 - December 2014
  • Implemented kernel bypass for Chelsio T3 NICs.
  • Assisted with implementation of kernel bypass for Chelsio T4/T5 NICs.
  • Maintained an internal distribution of FreeBSD using Subversion and svk.
  • Implemented initial NUMA support for FreeBSD.
  • Added kernel APIs to FreeBSD to support the 64-bit Nvidia GPU driver
  • Reworked resource management in FreeBSD's PCI bus drivers including bus number management and the ability to grow I/O windows in PCI-PCI bridges.
  • Added support for catching and logging machine check exceptions to FreeBSD's kernel.
  • Ported support for threads on FreeBSD from the in-tree GDB 6.1 to GDB 7 in ports.
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, July 2010 - July 2014)
Interests: FreeBSD, acoustic guitar, science fiction
References: Available upon request