Ryan S. Arnold - Software Engineer
994 Lincoln AveHome: (651)-402-4762
Saint Paul, MN 55105ryan.arnold@gmail.com
Employment History:
International Business Machines Corp. (IBM)
Rochester, MNJan 2001 - present
  • GLIBC Team Lead (current) - Linux for POWER Toolchain:Jun 2007 - present
    • Lead team members:
      • Identified strategic 2008 & 2009 development line items, assigned deliverable objectives to individual team members, and managed line item schedule risks as development progressed (specific examples available upon request).
      • Enabled and maintained the Linux operating system's core GNU C-library (GLIBC) for the following POWER ™ platforms: power4, power5, power6, et al. POWER ™ is the IBM branded PowerPC architecture server line of processors.
      • Deployed POWER ™ platform optimized libraries in Linux Distribution Partner enterprise operating system offerings: Novell SLES 10, Novell SLES 11, and Redhat RHEL 5.
      • Delivered three external Advance Toolchain releases. The Advance Toolchain is an IBM developed stand-alone GNU Toolchain (compiler, linker, binary utilities, system libraries, GNU debugger, and performance tools) that provides advance availability of the latest GNU Toolchain package versions before they show up in a Linux OS Distributions.
      • Delivered two custom Advance Toolchain builds for IBM-internal micro-architecture customers who have external customers of their own that we support indirectly.
      • Mentored two interns through the release of two key product features (decimal floating point trigonometric math functions, and quantlib optimziation for the POWER6 processor).
    • Linux GNU C-library (GLIBC) Community Contributor:
      • Serve as PowerPC architecture maintainer.
      • Moderate libc-alpha@sourceware.org mailing list (since Feb 2008), which is the primary development mailing list for GLIBC.
      • Maintain the GLIBC wiki and serve as primary documentation contributor.
      • Own #glibc Internet Relay Chat channel (on freenode.org) which is used as a realtime GLIBC developer's forum.
      • Mentor new GLIBC developers and users on the libc-help@sourceware.org mailing list. Co-founded this mailing list in Feb. 2007.
      • Owner of the ibm/* Git repository namespace branches on sourceware.org which holds IBM relevant branches of GLIBC.
    • Development:
      • Official maintainer of the GNU Decimal Floating Point C-Library (Libdfp) which is an extension of the C-programming language's math library for decimal floating point types support per ISO/IEC TR 24732.
      • Ported the Libdfp GLIBC add-on library into a stand-alone library using Autoconf and GNU Make for the build framework.
      • Served as architect for the Advance Toolchain through three releases. I set release schedules, determined package versions, resolved package dependency conflicts, make project re-factoring decisions, and helped debug complicated bugs.
      • Designed and coded competing solution for full featured printf-hooks for GLIBC which added plug-in support for new printf format specifiers to GLIBC.
      • Added struct-versioned interfaces to GLIBC's PowerPC get, set, swap, and make context functions. This patch was discarded as the context routines API was deprecated by the maintainer. I created the following tutorial as a result: Creating a Versioned Struct Wrapper For a GLIBC Function.
      • Added dynamic assembler instruction selection mechanism to GLIBC PowerPC context routines to select appropriate `mtfsf' assembler instruction based upon availability of DFP facility in the CPU.
    • Documentation & Tutorials:
      • Primary author of the 32-bit PowerPC ELF ABI rewrite and update (in development under the PowerABI TSC of Power.org).
      • Created "Debugging the Loader" which is a tutorial on advanced techniques for debugging the GLIBC dynamic link loader.
      • Created "General GLIBC Debugging Techniques".
  • GLIBC developer - Linux for POWER Toolchain:Jan 2006 - Jun 2007
    • Designed and Created the Decimal Floating Point C Library (Libdfp) as a GLIBC add-on.
      • Worked on POWER6 optimized arithmetic, conversion, and comparison routines in PowerPC assembler with the POWER6 instruction set.
    • Advance Toolchain Development
      • Created the Advance Toolchain (described above) as an integration test-bed for the Linux for POWER Toolchain department's co-dependent packages. This grew into a customer supported toolchain for the XL C Compiler, Powerpack product, and OpenHPC product.
      • Created scripts for auto-generating & updating repomd RPM (binary package) repositories.
      • Negotiated the technical aspects of a business relationship with University of Illinois at Urbana Champaign whereby they build the official Advance Toolchain releases and we provide them with the build scripts, build instructions, release notes, and debugging support.
    • Developed Docbook stylesheets in DSSSL for the 32-bit PowerPC ELF ABI.
    • Answered customer bugs as third-level support (generally we get two major month-long high-severity bugs per year).
    • Answered GLIBC community bugs by interpreting the POSIX and C99 standards, reproducing bugs, creating test cases, reducing text-cases, providing alternate solutions, and suggesting fixes.
    • Wrote a tutorial entitled Debugging PowerPC ELF Binaries.
    • Wrote whitepaper entitled "GAS CFI Directive Usage for 32-bit and 64-bit PowerPC".
  • XL Compiler Tester - BlueGene/L Super Computer:Jan 2005 - Jan 2006
    • Ported XL Compiler Test Suite to BlueGene/L PowerPC 440d architecture.
    • Deployed automated bug reports update scripting in KSH, BASH, Perl, sed and HTML.
    • Debugged and cleared over 2000 C/C++ bugs in the test suite including
      • XL Compiler configuration incompatibilities with GNU Linux environment.
      • Blackbox debugged highly optimized (-O6) PowerPC assembler code to determine instruction-selection and code-generation bugs.
      • Identified GNU C Library incompatibilities with BlueGene/L across all nodes, front-end service nodes, I/O nodes, and compute nodes.
    • Improved performance on BlueGene/L IO Nodes of test-case job dispatch by 500 percent by correcting improper multi-threaded polling and timeslice usage in the I/O node job dispatch code.
    • Added stdin support to BlueGene/L front-end nodes job dispatch framework.
  • Virtual I/O Device Driver Developer - PowerPC Linux Kernel:Jan 2003 - Jan 2005
    • Authored or enhanced several Linux Kernel device drivers:
      • hvc_console.c: Extended polling console device driver back-end framework to be interrupt driven with high throughput.
      • viocons.c : Maintained iSeries PowerPC virtual console driver across three Linux Distribution Partner Releases.
      • hvcs.c: Authored pSeries PowerPC high throughput, inter-partition tunneling TTY device driver.
      • hvc_vio.c: Extended pSeries PowerPC virtual console device driver front-end.
      • hvc_cbe.c: Authored port of PowerPC CELL console device driver as a front-end for the hvc_console back-end.
      • hvc_sim.c: Authored port of PowerPC CELL simulator console device driver as a front-end for the hvc_console back-end.
    • Wrote Linux Kernel HVCS device driver documentation (Documentation/powerpc/hvcs.txt)
    • Developed virtual I/O device administration utilities for: virtual SCSI server (vscsisadmin), hvcs (hvcsadmin), virtual SCSI server initi scripting (/etc/init.d/ibmvscsis.sh).
    • Created IBM intranet web-based XML/XSLT test-case report suite using Xalan, Perl, and Apache.
  • OS/400 Kernel: Virtual I/O Developer:Jan 2001 - Jan 2003
    • Developed multi-threaded telnet server in C++.
      • Asynchronous sockets server.
      • SSL based encrypted handshaking.
      • Inter-partition communication with partner logical partitions.
    • Maintained virtual console, virtual SCSI, and virtual disk (CD/DVD) inter-partition communication drivers for sharing real devices with partner logical partitions.
    • Performed Virtual SCSI performance analysis and code optimization.
Aatrix Software
Grand Forks, NDJun 1998 - Dec 2000
  • Project Development Lead:
    • Designed processing engine for MS Windows based State and Federal Tax Forms electronic submission software.
    • Assigned work items to team of five developers.
    • Lead programmer for engine coded in MS Visual C++.
Recognition:
IBM "Top Contributor": March 2008 - March 2009
IBM BRAVO award: July 2007 - In recognition for delivery of the Advance Toolchain.
IBM "Above average contributor": March 2005 - March 2008
Education:
BS Honors Computer Science - December 2000 (3.5 GPA) University of North Dakota
Senior Honors Thesis: A case study in Software Engineering Chair: Dr. Chang-Hyun Jo
References available upon request.