Tim Hockin
San Francisco, CA
*******@******.***
Objective A full-time position or contract work in operating system,
firmware, language, or application systems design and development.
Professional Experience Staff Software Engineer, Systems Software Group,
Mountain View, CA (June 2004-Present)Debugged and enhanced Linux kernel for Google applications.Bringup BIOS and kernel on new hardware.Lead a team of 10+ people, responsible for all new platform
bringups.Developed tools and diagnostics to help new platform bringup as
well as deployed system management and post-mortem.
Staff Engineer, Linux Sofware Engineering,
Menlo Park, CA (Dec. 2000-May 2004)Technical lead for Sun project to enhance autofs on Linux
(dubbed AutofsNG).Author and maintainer of the Linux ACPI daemon (acpid), which
is shipped in most Linux distributions.Consulted with groups across Sun on Linux kernel and low-level
issues, including writing drivers and porting apps.Maintainer of Linux's driver for National Semiconductor dp8381x
ethernet controller.In charge of cleaning and pushing Linux kernel patches back to
the community.Maintainer of Linux kernel for Sun Linux and Cobalt
products.Worked with key customers on Linux kernel and low-level
issues.Developed tools/methods for enhanced use of SunRay clients with
smart cards.Developed SunRay/Linux loopback audio driver.Helped establish the first BitKeeper installation at Sun.Lead architect for Cobalt's CCE product (part of the Sausalito
architecture).Developed internal software development processes.Wrote several specifications for portions of the Cobalt software
stack.
Systems Software Engineer,
Mountain View, CA (May 1999-Dec. 2000)Ported Cobalt Linux kernel work to Linux 2.4.Co-architected and implemented Cobalt's backend architecture
"Sausalito" (responsible for the Cobalt Configuration Engine).
The Sausalito architecture was eventually open-sourced, and is the
basis for several projects.Modified, debugged, and enhanced Linux kernel for various needs:
network drivers, TCP stack, various device drivers, PCI
subsystem.Implemented Sausalito Internationalization (i18n) library.Wrote Sausalito-based Active Monitor application and UI.Wrote large portions of the Sausalito Developers Guide (SDK).Co-developed and maintained firmware (BIOS) for RaQ3, RaQ4,
Qube3, RaQ XTR, and RaQ550 products (x86).Developed tools to help developers flash BIOS and use newer
kernels on Cobalt x86 hardwareDeveloped PCI BIOS subsystem for x86 firmware.Debugged and helped diagnose board-level problems.Responsible for partial schematic reviews for new boards.Maintained CVS servers for internal and external access.Maintained and debugged Mips/x86 kernels and libraries.Cobalt acquired by Sun Microsystems.
Programming Coordinator / Lead Programmer - Residential Computing, Normal, IL (Aug. 1996-May 1999) Supervised, consulted with, and trained other programmers.Maintained Linux based web and multi-purpose servers.
Designed and implemented ISU Summer Conference Management System.
Written in Visual FoxPro (Oct. 1996 - May 1999).Created the application framework and standards definitions used
by the programming staff at the ISU Office of Residential Life on
all software projects. (Jan. 1997 - May 1999).Redesigned and authored the ISU campus-wide computer lab printing
solution (Sep. 1998 - May 1999).
Programming
Experience Active Languages:
ANSI C and C++, POSIX, UNIX Shell, Awk, x86 Assembly
Lex, Yacc.
Stale Languages:
Perl, PHP, Java, Visual FoxPro, SQL, Visual Basic, some TCL/TK,
Python.
Operating Systems:
Linux (since 1994), IRIX (3 years), Solaris, most UNIXes,
Windows 3.x/9x/NT/XP, DOS, some MacOS and MacOS X,
Novell Netware 3.x/4.x.
Project Contributions:
Linux kernel, GMPI, Cistron RADIUSD, Samba, shadow suite, RPM,
GLibc, PThreads, GLib, GNOME, PPPd, FreeS/WAN, ethtool, acpid,
SWIG, flam3, prettyprint, and more.
Frequent contributor to the Linux kernel in various areas.Wrote the implementation of the PSet specification for the Linux
kernel. Resurrected PSet as the generic procstate interface for
Linux.Started and lead the prettyprint project, which is a generalized
system for reading/writing hardware devices in a human friendly
way.Made flam3 (fractal flame renderer) run efficiently on N
processors. Changes mostly involved removing contended locks and
using atomic operations instead. Final result is near linear
speedup for N processors.
De-facto leader of the Generalized Music Plugin Interface (GMPI)
working group (an MMA sanctioned group designing an open-standard
audio plugin API), now defunct. Many of our ideas were incorporated
into Steinberg's VST3 standard.
Released free classes, libraries, and code samples for Visual
FoxPro (1998-1999).Chief developer and project leader for a Java implemented
Assembler and Virtual Machine simulator for the ACS curriculum
(Feb. 1997 - May 1999).Helped in the initial conversion of the shadow suite for use
on Red Hat Linux 4.2.Designed and implemented a custom toy OS from scratch.
Education
-
Computer Science / Software Engineering
Cumulative GPA 3.5/4.0President and founding member of
(UNIX users group) at ISU
Honors ACS Department GPA 3.95/4.0Golden Key National Honor Society
Interests and Skills
OS design, parallel processing, SMP, scalability.Backend and low-level systems and libraries.Electronic music, sequencing, software-based sound synthesis.Software Engineering Processes.Databases, data design, and data normalization.Computer hardware and system architecture.Excellent writer and communicator.
Keywords
General Software, JTAG, American Arium, Schematic,
Ethernet, Hardware, OOP,
Entity Relation Diagrams, ERD,
Internet, HTTP, WWW, NNTP, SMTP, sendmail, POP,
FTP, DNS, USENET, BNF, firewall, XML, MIDI, Music.
References Available upon request.
Tim Hockin, San Francisco, CA