Technical Qualifications
Software Engineer V / Technical Lead with extensive knowledge of large shared memory and distributed memory systems
Programming Languages: C, assembly, BASH Shell Scripting
Operating Systems: Linux, Unicos, Irix, Sun, Windows
Tools and Applications: Subversion, CVS, gdb, objdump, MySQL, TotalView
Web development: PHP, MySQL, CGI scripting, HTML, CSS
Running Linux on the desktop since 1996 (kernel 2.0.27)
Familiar with UNIX kernel internals, structures, and methodologies. Familiar with the Linux kernel at an intermediate to advanced level.
Advanced mathematical and scientific knowledge: several math classes beyond calculus, calculus-based physics, statics, dynamics, mechanics of materials, and introductory electrical engineering.
Professional Experience
Software Engineer V - Technical Lead, March 2005 - Present
Senior engineer working remotely from Michigan for the Network I/O group based in Minnesota.
Design, modify, develop, write and implement system level networking software for high speed proprietary network interfaces in massively parallel supercomputers. Provide technical support to team members across multiple groups. Participate in planning and scheduling for current and future projects including time estimates and delegation of work assignments. Troubleshoot and resolve critical customer issues that manifest themselves at the operating system level or within the high speed network stack.
Cassatt
Software Engineer, September 2001 - March 2005
Software Engineer working remotely from Michigan.
Started as employee #10 at the forerunner to Cassatt, Unlimited Scale (USI).
At USI, developed software allowing MPICH to run on Cplant from Sandia National Labs and later USI's own single system image (SSI) clustering software. This work required detailed knowledge of the requirements for MPICH job launch and startup using various interconnects such as Myricom's Myrinet as well as Ethernet, and also detailed knowledge of the underlying clustering software. The Myrinet version of MPICH uses Myricom's GM for interprocess communication and the Ethernet version uses sockets. The job setup required in these two scenarios is completely different.
Worked with senior engineering staff at HP to resolve problems with USI's myrinet-based MPICH that only occurred on large systems under heavy loads. Also worked with the same staff to get one of HP's clusters up and running with USI's version of MPICH for Myricom's new (at the time) version of GM (named GM-2).
Updated Cplant support for the TotalView parallel debugger.
Other responsibilities at USI were varied due to the small number of initial employees. These responsibilities included installing new versions of Cplant from Sandia, data backup, participation in company-wide planning meetings, and bug fixing for various components.
When USI became Cassatt the focus migrated from the High Performance Technical Computing market to the Enterprise market.
At Cassatt, developed low-level Java methods for interfacing with network devices such as managed switches and load balancers. These Java methods interfaced with Expect scripts that were used to log into the various network devices. Designed XML files that were used as configuration files describing available network devices.
Cray Research, Inc.; Silicon Graphics Inc.; Cray, Inc.
Software Engineer, February 2000 - September 2001
Performed initial port of the MPI library from the Cray SV1 to the Cray X1. Since the memory models for these two systems were dissimilar the port required a significant rewrite of MPI initialization.
Designed an MPI job launch mechanism for the Alpha SuperCluster that allowed MPICH-GM to take advantage of the Scyld bproc process migration mechanism.
Designed and implemented a First In, First Out (FIFO) job scheduler (node allocator) for the Alpha SuperCluster.
From the early Spring of 2001 until early September of 2001, worked remotely from Michigan.
OS Test Engineer, May 1999 - February 2000
OS Test Engineer working in SGI/Cray's Minnesota office(s).
Developed and executed test plans for commands and system calls for SGI's Irix OS and Cray's Unicos OS for the X1.
Worked directly with developers to formulate test strategies and identify areas that required specific and specialized testing.
Responsible for testing the memory management functions for the listed operating systems.
OS Testing Intern, November 1998 - May 1999
OS Test Intern working in SGI's Minnesota office as well as remotely from the Michigan Tech campus.
Developed and executed test plans for commands and system calls for SGI's Irix OS and for what would eventually become Cray's Unicos OS for the X1.
Worked directly with developers to formulate test strategies and identify areas that required specific and specialized testing.
Responsible for testing the memory management functions for the listed operating systems.
MPI Testing Intern, May 1998 - November 1998
MPI Testing Intern working in SGI's Minnesota office.
Responsible for running regression test suites against the in-development version of SGI's MPI. Maintained and added to the MPI regressions test suite.
Performed in-house scalability testing in support of SGI's ASCI Blue Mountain system of 6,144 processors arranged as a cluster of 48 SGI 2800 servers with 128 processors each.
Started the port of SGI's FailSafe software from Irix to Linux.
Distributed Computing Services, Michigan Technological University (Network Technician) May 1997 - May 1998
Working with minimal supervision, had several responsibilities including configuring, troubleshooting and remotely monitoring student PCs on the campus Ethernet and CATV network; writing supporting documentation; testing new software to be deployed campus-wide; and assisting with Internet workshops designed to educate the staff at MTU.
Monitored a newsgroup related to the campus-wide student network and answered questions as appropriate.
Independent Contracting
Boffin Limited (Developer/Architect, bash, C, C++, perl, Samba, RAID) July 1999 - March 2000
Designed, developed, and tested a Linux-based network RAID storage product. Product included web-based configuration software that assumed no customer familiarity with RAID or Linux. This work involved complex system level shell scripting and network programming on the server side, Windows GUI and network programming on the client side, and the development of a self-discovery protocol based loosely on bootp.
Educational Background
Bachelor of Science in Computer Science, Michigan Technological University. Graduated in May of 1999.