Skillset
C: 30 years, Lisp: 10 years, C++: 5 years, Fortran: 5 years, Perl: 3 years, Java: 2 years, SQL 1 year. I have written over a million lines of C/C++/Java, and have a working knowledge of many other languages, e.g. microprogramming the Pixar Machine.
Compilers: 10+ years. Wrote two C compilers from scratch and spent five years rewriting SML/NJ; also extensive work on implementations of LISP, FORTH, Assembly, Smalltalk etc.
Assembly code: 5 years. Over a quarter million lines of assembly code for machines ranging from eight-bit microcontrollers to supercomputers.
Firmware and Embedded Systems: 5 years. Cisco IOS, also PIC microcontroller firmware, Atmel firmware etc.
Operating Systems: Linux 20 years Unix (Irix) 10 years, Cisco IOS 5 years. Also Windows, CP/M, DOS, RSX11, SCOPE, TOPS-10, IRIX, HP/UX, NeXT, Solaris, AIX, etc.
Version control systems: CVS, Git, SourceSafe, ClearCase, darcs.
OpenGL: 20 years. I have been using OpenGL since the '80s when it was called GL. My complete line of scientific visualization packages Skandha1 through Skandha5 are based on it.
YACC/LEX/etc: Since the '70s, starting on a PDP-11. For the Loglan parser project, I ported AT&T YACC to CP/M.
Other Skills: Excellent writing skills, broad technical background ranging from math and physics to electronics and aerodynamics.
Job History
While still an undergraduate, I was hired by the UW Physics department Visual Techniques Lab to oversee all computer operations plus manage the student neutrino-event scanner team.
After graduation, working with neuroanatomist John W Sundsten of the University of Washington Health Sciences Biological Structures Department, I created the Digital Anatomist project and with it the field of computer reconstruction and visualization of human anatomy. I authored a number of peer-reviewed papers on this work.
It would be tedious to list all my short-term contracting work; I limit myself to post-graduation salaried positions.
2000-2005
Developer with Cisco's elite Gigabit Systems Group co-founded by Andy Bechtolsheim.My initiatives there included writing their complete internal developer's documentation (when I arrived, it was all word of mouth) and writing their complete daily build system (when I arrived engineers were manually generating up to a dozen different image builds a day for external use).
I also worked upon their 250Kloc C++ codebase and of course the main Cisco 13Mloc IOS C-language codebase.
My hiring supervisor there commented, "This guy has written more useful code than anyone I've ever heard of."
1997-1998
Developer with Activerse, a start-up developing an intra-corporation cross-platform instant messaging client/server solution in Java. My contributions included Java applet coding, Java GUI and networking coding, doing the Solaris port of the product, and doing QA liaison and coding.
1986-1996
Creating and building the UW Health Sciences Biological Structure Department Digital Anatomist Program. This included developing from scratch a series of half a dozen scientific visualization packages on platforms ranging from S-100 CP/M to SGI RISC boxes. My supervisor there, Stanford Artificial Intelligence Laboratory PhD (and UW MD) James F Brinkley, calls me "the best programmer I've ever met" — and adds that anyone who doesn't hire me is an idiot. :-)
For the last six years I have been concentrating on open source work:
- To provide an evolutionary upgrade path from the C/C++/Java language paradigm (whose core design concepts date from circa 1970) I have been morphing the SML/NJ research compiler (Bell Labs, CMU, NYU...) into Mythryl, a production-oriented compiler engineered for minimum retraining cost. (This has absorbed the bulk of my time over this period.)
- I have also been getting involved with computer vision,
robotics and CNC machining:
- Computer vision and control for Sandy's Fan Club installation art piece.
- PCB milling gerber-to-gcode converter
- Demo Linux computer vision app + X widget
- Categorized collection of computer vision papers
- Ruminations on same
- R/C model airplane construction, operation and instrumentation
- Maintainer on OpenCV
- PIC/Atmel based "squirmy guy" installation piece shown various places.
- Unreleased gcode synthesis library.
Education
BS in Computer Science 1986, University of Washington.
Curriculum Vitae
I am author of a number of peer-reviewed papers starting with "Three-dimensional reconstruction from serial sections IV: The reassembly problem", Computers and Biomedical Research, 1986 — do a Google Scholar search if interested.
Availability
I am currently available for work in the Bay Area. I occasionally accept telecommute work from elsewhere.
Affiliations etc.
HS chess champ, National Merit Scholar, Mensa, 999, ISPE, ACM, IEEE.