Steven A. Finney Linux/UNIX Systems Programmer www.sfinney.com OBJECTIVE: Position in Linux/UNIX systems programming, analysis, or design (kernel or user level, embedded or not). Cognitive or linguistic research, writing positions, and technical training (e.g., kernel internals) are also of interest PROFESSIONAL BACKGROUND Feb 2011- 2012: Senior Kernel Engineer, Palm/HP (WebOS), Sunnyvale, CA Linux kernel, driver, and bootloader work for the HP Touchpad and various smartphones. Major revision (bug fixes and enhancements) to the Palm version of the Linux “ondemand” DVFS governor. Found and fixed kernel memory leaks, including an upstreamed cpufreq fix. Investigation, measurement, and documentation of low-level characteristics of the Linux kernel for the Qualcomm dual-core 8260 SOC, including CPU on/off and CPU frequency transition times, and power effects of SMP, CPU frequency, ondemand governor parameter values, and CPU idle states. Added battery validation protocol to bootloader and kernel. Diagnosed and fixed timing bottlenecks in LK-based bootloader. Diagnosed performance/alignment issue with VFAT filesystem on flash. Put together systems using Python (as well as gnuplot, USB, and GPIB) for automatically measuring board power consumption over a wide range of SW-controllable states, and for graphing frequency changes on a dual core Linux system. Sep 2009-Sep 2010: Voluntarily unemployed Sep 2007-Sep 2009: Senior Firmware Engineer, Zing Systems (acquired by Dell), Sunnyvale, CA • Wrote and modified Linux kernel, driver, and bootloader code for power management, sus pend/resume, PMU configuration, battery charging, DVFS, watchdog, RTC, keypad, I2C, and GPIO for an ARM-based wireless MP3 player (unfortunately canceled near completion). Configured kernels and root file systems (Busybox, shell scripts, etc.). Brought up Linux on pro totype boards. Did preliminary investigation and coding for a camera interface. Supported application developers (providing workarounds for bugs and diagnosing HW issues with prototype units) and HW engineers (developing diagnostic tools) through multiple versions of HW and FW. • Provided US-based support, testing, and oversight for the first Dell Streak (Qualcomm Snapdragon Android mini-tablet), focusing on power management (suspend states, DVFS, power measurements). Wrote a kernel module for stress-testing CPU frequency and voltage changes. Researched and documented low-level Android features (wakelocks, IPC, startup sequence, etc.) for internal use. 2005-2007: Senior Software Engineer, Health Hero Network, Redwood City, CA Maintained and enhanced the Linux kernel, U-Boot, and root file system on the “Health Buddy” home medical appliance (Linux 2.6 on a Samsung S3C2410 w/NAND flash, STN LCD, and a USB hub). Modified kernel and user code to support communication with medical devices over USB infrared, serial, and Bluetooth adapters. Designed the low-level software architecture for a new hardware platform. Designed, implemented, and documented validation procedures in C and Python for the boot loader, Linux kernel, and root file system. Added single-bit error correction for NAND flash to the U-Boot boot loader. Developed user space diagnostic tools for flexible manipulation of LCD parameters. Upstreamed fixes to the mtd-utils package. 2004-2005: Consultant, Open Source Risk Management, Durham, NC Developed prototype Python-based source code analysis tools. 2002-2004: Senior Software Engineer, Spirent Communications, Honolulu, HI Developed systems software for proprietary network test boards using the Broadcom 1125 MIPS processor, including device drivers and significant modifications to the Linux kernel and the CFE bootloader. Helped bring up MontaVista Linux (2.4 kernel) on multiple prototype boards (ARM- and MIPS-based), working closely with hardware engineers to debug hardware and FPGAs. Implemented a high-performance, zero-copy user-space network driver for the Broadcom 1125 MAC. Implemented a memory-mapping support library for controlled user-space access to physical addresses on multiple processor architectures. Participated in porting proprietary RTOS-based software to a Pentium-based Linux system, including full responsibility for kernel issues related to the PCI bus and large address space peripherals. 1992-2002: Graduate Student in Cognitive Science, Brown University (PhD, 1999) Post-Doctoral Research Fellow in Music Cognition, Ohio State University Research areas included auditory feedback and motor behavior, music performance, and psycholinguistics. Course work included experimental design, statistics, linguistics, and neuroscience. Software work included writing data analysis and data collection programs in C and Python, including FTAP, my GPL-licensed Linux-based real-time MIDI experiment package. See www.sfinney.com for CV, publications, software, and further details on activities and research. 1980-1991: Member, Technical Staff, The Santa Cruz Operation, Santa Cruz, CA Implemented an asynchronous raw I/O disk facility in the UNIX kernel for database server support, leading to a significant improvement in multi-user server performance. Implemented a high-resolution kernel profiler driven by the real-time clock. Extensive work on the SCO Integra database system, working primarily with the SQL server and SCO ISAM. Enhanced, optimized, and internationalized SCO ISAM, and brought it up to X/OPEN conformance. UNIX and XENIX kernel work, including disk drivers for the IBM PC, the Victor 9000, and the Apple LISA, as well as modifications to the serial driver. Worked on the original UNIX implementation of MicroFocus COBOL, including full responsibility for the file interface, GSA testing, and the Animator screen debugger. SOFTWARE EXPERTISE Linux (2.2-3.0 kernels, various distributions), U-Boot, RedBoot, CFE, and Little Kernel boot loaders, C, Python, Git, basic assembly language for various processors, Linux TCP/IP stack, UNIX (Version 6 through System V), minimal C++. HARDWARE EXPERTISE ARM processors (Qualcomm 8X50 and 8X60, Samsung S3C24XX, Broadcom 2820), Pentium, Xs cale, and PPC processors, Broadcom/Sibyte 1125/1250 MIPS processors, USB (serial and network adapters, hubs), PCI, I2C, Intel 825XX Ethernet NIC family, NAND and NOR flash, various PMU chips, STN and TFT LCDs, JTAG debuggers. EDUCATION Ph.D., Cognitive Science, 1999. Brown University, Providence, RI B.A., Computer and Information Science, 1980. University of California, Santa Cruz SOFTWARE-RELEVANT PUBLICATIONS Finney, S.A. (2001a). FTAP: A Linux-based program for tapping and music experiments. Behavior Research Methods, Instruments, and Computers, 33, 65-72. Finney, S.A. (2001b). Real-time programming in Linux: A case study. Behavior Research Methods, Instruments, and Computers, 33, 167-173.