Andrew D. Isaacson's Resume Current Address: 1778 Mission St #7 San Francisco, CA 94105 (415) 509-3112 This email address may be used for personal inquiries addressed solely to me. It may not be added to any database or placed on any mailing list without my express permission. adiresume@hexapodia.org Objective A challenging opportunity to develop software to solve difficult problems. Education - Enrolled in the MS program at the University of Minnesota, research in distributed attacks on cryptographic algorithms - 1999 BS in Computer Science from Michigan Technological University, Houghton, MI - Cum Laude - National Merit Scholar - Relevant coursework, MTU: CS420 Programming Languages, CS425 Algorithms, CS485 Computer Graphics, CS540 Parallel Algorithms, CS430 Compiler Construction, CS520 Operating Systems, CS580 Artificial Intelligence (note that 5xx denotes graduate-level coursework.) Employment History - PeakStream - Software Engineer (January 2006 - August 2006) Designed and implemented APIs for numerically-intensive computation on stream processors. Debugged complex system and OS interaction including hardware debugging and Linux kernel recommendations. Implemented API functionality including free pool management, fault detection through argument sanity checking, and template-based code generation to ease maintenance. Conceived, designed, and implemented a new application of 'obstack'-style object management to allow pseudo-automatic allocation and deallocation of anonymous temporary objects in C. Worked closely with documentation writer and lead system architects to develop a model for explaining a complex system in user-comprehensible terms. - Broadcom - Senior Staff Software Engineer (Sep 2004 - January 2006) Starting with support of one minor CPU, quickly grew into key role as primary software engineer within systems group of CPU business unit. Provided deep understanding of entire CPU-software interface, including device drivers, compilers, microbenchmarks, operating systems, errata workarounds. Contributed in multiple areas including documentation, customer escalations, open source evangelism and interface, future product definition, internal tools. Developed the required knowledge to understand the entire software stack and its hardware interfaces, from register allocation and pipeline scheduling through page tables and the OS interface to overall system performance and application suitability evaluation. - BitMover, Inc. - Software Engineer (Sep 2003 - July 2004) Contributed features, bugfixes, and customer support at extremely focussed software company. Company's primary product, BitKeeper, was a unique advance in the source control field; I performed feature enhancements and bugfixes in support of the algorithmic core. Also performed systems administration and customer support activities. - Unlimited Scale Inc - Employee #12 (SW Eng) (Sep 2001 - Sep 2003) Joined growing startup and contributed in many areas, including Linux cluster software definition and prototype, software development and integration, linux-kernel liason, kernel debugging, software deployment at beta sites, system administration, office network build-out. Company merged into Cassatt Inc. - Cray Inc - Member of Technical Staff (Sep 2000 - Sep 2001) Implemented new features and fixed bugs in MPI implementations for Cray SV1 and X1 systems, and assisted porting of various software to Cray SuperCluster. - U of MN Laboratory for Computational Science and Engineering (LCSE) - Research Assistant (Jan 2000 - May 2000) Implemented Cray SHMEM API for VIA (Virtual Interface Architecture) on Windows NT (using Finisar FC-VIA interfaces) and Linux (using VIA over Ethernet). - U of MN - Teaching Assistant (Sep 1999 - Dec 1999) Served as recitation instructor for CSCI1901, Structure of Computer Programming. Duties included answering student questions, tutoring students on specific concepts, and teaching programming skills. - SGI - Member of Technical Staff (June 1999 - Aug 2000) Worked on SGI's various MPI implementations for Origin 2000, Cray T3E, and Cray PVP (SV1, J90, T90). Added features such as MPI2 C++ support. Developed bug fixes and feature enhancements. - Honeywell Technology Center - Programmer (June 1998 - August 1998) Duties included - Bug fixes and feature implementation for HTC's system analysis tools, including optimization problems and component integration issues - IBM - Programmer (June 1996 - Nov 1996; June 1997 - Aug 1997) AS/400 Support Center - Tools and Technology Team UNIX developer (C and Tcl/Tk on AIX 4.x) Duties included - Designed and implemented ACDMon, a distributed near-real-time client-server data monitoring system - Assisted with implementation of Quality Monitor, a GUI interface and backend system providing call recording and scheduling to the support center - MTU Information Technology - System Administration Services (IT-SAS) - Systems Programmer/Sysadmin (September 1995 - May 1999) Duties included - Configuration and maintenance of Sun, PC, and Macintosh hardware and system software - Programming and scripting in support of SAS's mission; especially focusing on network-related and systems maintenance/performance management - MTU CS Learning Center - Coach (March 1996 - May 1999) Duties included - Answering student questions regarding general programming concepts and language details (C++ and FORTRAN) - Requires strong communication skills and programming skills Skills - Very proficient in C, C++, MPI, FORTRAN 77/90, Java, Perl, Bourne/Korn shell, and the MIPS, x86, SPARC, and Cray assembly languages. - Familiar with Python, lex/yacc, Scheme, Tcl/Tk, OpenGL, Common Lisp, SQL and RPC. - Experience writing complex Makefiles, using source control, and dealing with software maintenance issues. - 11+ years experience on Unix systems, including Linux/x86, Linux/MIPS, Solaris, IRIX, UNICOS, UNICOS/mk, OpenBSD, Linux/Alpha, NetBSD, Linux/PowerPC, SunOS, AIX, and HPUX. - System administration experience on Solaris, Linux (x86, Alpha, MIPS, Debian, RedHat, Fedora), OpenBSD, AIX, and HPUX, including hardware installation and maintenance, OS installation, and day-to-day operations.