Resume
Al Borchers

Contact Info

106 Arroyo Ct.
Santa Cruz, CA 95060
(831) 454-9725
alborchers@steinerpoint.com

Goals

Work in Linux/Unix/embedded kernel development, device drivers, or systems programming.

Software Skills

I have worked with these operating systems, languages, and software tools: Linux (2.4 and 2.6 kernels) and many variants of Unix (Tru64, Solaris, UnixWare, SCO Open Server, DGUX), Palm OS, C, ksh/bash/sh/csh shell scripts, Perl, Java, TCL, assembly languages, C++, Postscript, Scheme, GCC, Palm API, STREAMS, NFS, Samba, USB 2.0/1.1 host and device, DDI/DKI, TCP/IP, sockets, TLI, SNMP, DHCP, pthreads, Java threads, ipchains, RPM, awk, lex, yacc, curses, make, cvs, bk, rcs, and latex.

Experience

Software Engineer, Google, 2004 to present.

I work on the Linux kernel and device drivers.

Contract Software Engineer, 1983 to 1995 and 1999 to 2004.

I developed device driver, file system, networking, embedded, and application software primarily in C on Linux/Unix/embedded systems.

Most recently I contracted at Digi International for three years, writing and maintaining Linux/Unix based communication device drivers and firmware, at Guidant for a half year writing Linux USB host and device side drivers to implement Unix fifo semantics over a USB connection and other Linux device drivers, at Tricord Systems for a year and a half, adding NFS support to their Linux based clustered file system. I contributed to the USB subsystem in the Linux kernel. More details on these and other contracts are listed below.

Visiting Assistant Professor in Computer Science at the University of Minnesota, 1996 to 1999.

I did research with the GroupLens project on algorithms that analyze a database of user preference data and make predictions about future user preferences.

I published articles on recommender systems, networking, and theoretical computer science in IEEE Computer, SIAM Journal of Computing, Journal of Algorithms, Theoretical Computer Science, Information Processing Letters, and in conference proceedings for CSCW, AAAI, STOC, and IC3N.

I taught undergraduate and beginning graduate level courses in operating systems, networking, and programming. Nominated for the University College Distinguished Teaching Award.

Education

University of Minnesota, Ph.D. in Computer Science with a minor in Mathematics.

Carleton College, B.A. in English, Cum Laude, National Merit Scholar.

Software Projects

Texas Instruments --- Developed a Linux USB serial device driver for both the 2.4 and 2.6 Linux kernels.

Digi International --- Developed and maintained several Linux USB serial device drivers for both the 2.4 and 2.6 Linux kernels. Enhanced firmware for remote networked serial port devices to support virtual shared serial ports; also improved DHCP and fixed bugs in this firmware. Maintained Tru64 and Linux streams device drivers and firmware for a WAN card. Ported a streams device driver for a remote networked serial port device to UnixWare, SCO Open Server, and DG/UX.

Guidant --- Wrote Linux USB host and device (gadget) side drivers to implement Unix fifo semantics over a USB connection using a TCP-like protocol. Also wrote other Linux device drivers to control and test hardware, proxy servers to convert TCP to USB, and Linux configuration and test scripts.

Tricord Systems Inc. --- Added NFS support to Tricord's clustered NAS product. Worked on the Linux kernel NFS sub-system, Linux kernel directory cache, Tricord's clustered file system, Tricord's file replication service, and Samba to support NFS. Added Samba user mapping.

MD Software --- Developed a medical documentation application for the Palm OS.

MultiTech Inc. --- Developed stand alone and embedded fax compression and decompression software using T.4 Group 3 1D/2D algorithms. Developed graphics conversion and display applications. Worked on an SNMP library and MIB compiler.

Brimson Laboratories --- Wrote utilities to process RIFF/WAVE sound files. Enhanced Linux mgetty/vgetty to support an interactive voice response system. Researched and prototyped a natural language interface to a nutritional database and an expert system to recommend preventive health care.

IGS/BHI --- Developed a Java object cache and synchronization system.

Merrill Corporation --- Maintained Unix/Informix database applications. Developed a Word Perfect to typesetting conversion application.

U.M.E. Corporation --- Developed a simulator for an AI inference chip.

Byte/BIX and EMS McGraw Hill --- Developed a scripted menu front end to a Unix teleconferencing system.

Hallmark Cards --- Developed Unix and MS-DOS TCP/IP network software for a point of sale system.

Electronic Arts --- Designed and developed "Cartooners", an actor based animation system that won a Software Publishers Association award (later called the Codie awards).

Hallmark Cards/Compuserve --- Designed a multi-platform system to create and send animation via email, designed the graphics transmission protocol, and wrote the graphics library.

SpringBoard --- Developed and implemented a fast polygon fill algorithm.

ITDA --- Designed and developed a multi-platform graphics library.

Learning Company, MECC, EMS McGraw Hill, Scholastic Inc --- Developed animation and educational software.