Erik Jacobson Software Engineer, System Engineer 6776 Wakefield Dr, Eden Prairie, MN 55346 (952) 888-0288 erikj@tdkt.org EDUCATION Computer Science, B.A. University of Minnesota 2001 Associate of Arts Degree Minneapolis Community College 1995 CAREER SKILLS / KNOWLEDGE Cluster / System Management Development Prototype Systems Checkout Virtualization Linux Distribution Checkout Documentation (Internal and Customer) Systems Administration GPFS Storage Systems CAREER ACHIEVEMENTS Excel at working across multiple organizations to achieve results Work with firmware and hardware engineers to bring up new computing platforms Enable new hardware products to work with system management product offerings Worked on solutions installing and configuring GPFS including custom spins of RedHat/CentOS for DDN embedded and external servers Experience with Bright Computing Cluster Manager including cluster deployment and image management Experience configuring and using DDN SFA 10K and SFA 12K storage systems including controller and server configuration Developed embedded “inside-RAID” servers: virtual machines with direct access to virtual disks managed the RAID controller and providing GPFS or Lustre Services Support beta deployment of new storage system by working with engineers in my own team, as well as other engineering groups and support organizations. Triage beta customer problems, ensure no important issues are dropped. Fix issues in my area and ensure issues for other teams are tracked and resolved. Experience configuring and using Gerrit source code review tool Experience configuring automated builds with Jenkins, including Jenkins integration with git, gerrit, and mock (srpm chroot builds) Design hierarchical cluster solutions: Evaluate system, network, and storage resources to pick the best option. Take in to account use cases such as NFS roots or tmpfs roots transported with IP multicast. Design cluster network management solutions that reduce bottlenecks Evaluate managed network switches to find the most reliable options that meet requirements including cost. Experiment with VLAN configuration, mutlicast, trunking (802.3ad and manual link aggregation switch and host). Developed installation and system setup infrastructure as part of a cluster management development team. Unique installation tools were necessary to support the hierarchical design of the cluster hardware. Leveraged open source cluster projects such as OSCAR, systemimager, yum, and torque. Wrote the glue that connected these components for use in the hierarchical cluster environment. Most common languages used: bash, python, perl. Contributed to several parts of the cluster management solution. This included writing APIs making use of SQL and adjusting the DB schema. Developed HA solution for cluster admin nodes using QEMU/KVM and Novell HAE where by two physical admin nodes with shared storage together host a VM guest. If one physical node should die, the second automatically starts up the guest, resulting in minimal down time. Developed a dual-boot mechanism for hierarchical cluster hardware where by the various node types would boot in to the appropriate root as directed by the system administrator thus allowing a large clusters the ability to test updates or support multiple Linux distributions. Developed an imaging-based installation tool for internal engineering systems where by ia64 and x86_64 systems could be installed with various software images over the network. Through a web interface, the tool allowed several roots with differing Linux versions and software to be configured on the disks of test systems. Perl and Perl CGI used, leveraged open source systemimager. Two tours as the on-site partner engineer representing the company at the Red Hat engineering office in Westford, MA. Worked with Red Hat engineers to ensure computer systems and software sold by SGI worked properly with Red Hat Enterprise Linux (RHEL). Acted as an interface between SGI engineers and Red Hat engineers. Pushed kernel and user-land patches developed by myself or co-workers to Red Hat to support SGI products. Assisted with QE and drove bugs to resolution. Responsible for ensuring new servers in development properly support the intended target Linux distributions. Filed detailed bug reports on problems in both the company bug tracking system as well as the Linux vendor bug tracking system. Worked to find temporary solutions to keep development moving as well as driving longer term solutions with Linux vendors. Maintained company-sponsored open source project with kernel and user land components (PAGG/Pnotify, Linux Job) Responsible for the customer installation experience of company software products. This included writing scripts that worked with the software build system to lay out packages to be installable by the Linux distribution. This included yum (for RHEL) and YaST add-on products (for SLES, including zypper support). Provided customer-facing documentation for company software products and training to technical support personnel As an HPC system administrator and lab manager, maintained large SGI Origin2000 systems including PBS scheduler and system tuning. Also provided support for desktop systems and associated file servers. Assisted with a large IBM SP2 system. Developed monitoring tools. As an engineering system administrator, maintained a large file server making use of the clustered filesystem (CXFS) and the Data Migration Facility (DMF, hierarchical storage). RAID storage, tape drives, and systems were connected to a Storage Area Network (SAN). Maintained many unique released and prototype systems for engineering. With prototype systems, ensured engineering was able to make progress even if the hardware had quirks that needed to be worked around. Developed internal documentation for how to use prototype systems. Set up and maintained numerous engineering servers including imaging/installation servers and build servers. Handled all aspects of the servers from finding the physical parts, performing the installation and setup, keeping the systems updated, monitoring the systems, and diagnosing software and hardware problems. For systems under service contracts, opened support cases and ensured hardware support people fixed the problem. Handled systems administration support request cases from users. Prioritized the service requests and ensured service requests got properly routed. Made extensive use of QEMU/KVM (qemu-kvm) virtualization software. Used virtualization to simplify and speed up installation testing. Wrote internal documentation for KVM tricks. Non-exhaustive language and technology list: Python, Perl, Bash scripting, C (past), HTML, CGI, NIS, NFS, DHCP, DNS/bind, Samba, CUPS, DMF (past), CXFS (past), PXE setup/network booting, gPXE, EFI, elilo setup/network booting, grub booting/chain loading, sendmail, postfix, asterisk (opensource PBX), ftp server, apache web server, IPMI server control (BMC), Dell iDRAC remote system management, Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), CentOS, Fedora, OpenSUSE, OpenBSD, IRIX (past), AIX (past), Solaris (past), KVM, Qemu, Vmware, Pacemaker/HA/HAE, managed network switches, multicast file transport, VLAN management, trunking/802.3ad/link aggregation WORK EXPERIENCE SGI (Silicon Graphics), August 26, 2013 – Present Senior Technical Lead, Software Engineering DataDirect Networks, February 29, 2012 – August 23, 2013 Senior Software Engineer SGI (Silicon Graphics), Eagan MN 2000 – February 28, 2012 Project Lead for Middleware System Software (2011 – February 28, 2012) Software Engineer (2003-present) Engineering System Administrator (2000-2003) University of Minnesota Supercomputing Institute, Minneapolis MN 1995 – 2000 HPC System Administrator