I first started working with the Internet (actually, the ARPAnet, as it was known back then) as part of a work/study program at NASA Ames Research Center while I was in school in 1974. That was back in the days when 56Kbps was considered a "high speed" trunk and a 44MB disk was the size of a washing machine.
After working at Digital Equipment Corporation (DEC) during the summer doing tech support, I went to university at UC Santa Barbara. They turned out to be one of the early adopters of Unix.
After graduating from UCSB with a BA in Math in 1979, I got a job at the Rand Corporation in Santa Monica, where I continued my involvement with Unix, C, and the Internet.
During the 1980s, I moved to Silicon Valley and started my own software consulting company. I specialized in low-level operating systems work, performance tuning, and network-oriented applications. I led a team that did one of the first ports of Unix to a microprocessor (the 68000) and wrote a Unix-like OS from scratch, including a high-performance filesystem. I developed an XNS-based network stack and helped architect Intel's first port of Unix to the x86. I also wrote several 3-D scientific animationsystems and a gate array placement package based on the simulated annealing optimization algorithm.
In the early 1990s, I wrote a custom real-time OS that was used in the US Navy's F-18 aircraft. I developed real-time applications that were used in spacecraft and associated ground support systems, including a system called the Stellar Compass that measures vehicle attitude using digital images of stars. That software has flown to the Moon, to Mars three times, and to a comet and back. I was also the principal architect and designer of the ground system and various flight software components for one of the world's first commercial imaging satellites for what is now DigitalGlobe (of Google Maps fame).
I was very enthusiastic about Java when I first heard about it in the mid-1990s. One of the first things I developed with it was a large-scale audio conferencing system. Sometime later, I used it to build a custom high-performance application server. I helped to architect and build several large-scale Java-based data-intensive web sites and web applications, including one that was designed to be deployed to and used by 20 million set-top boxes to provide Internet over TV. My most recent Java-based project was building a document-management-oriented filesystem; I am the primary inventor of several related patents. A number of financial institutions are now using the system to help address risk-management issues.
I went to work for Microsoft in late 1999. My first project there was to develop a comprehensive architecture to deliver MSN content via TV-oriented middleware platforms such as WebTV using C#, ASP.NET, and SQL Server. A few years later, after completing development of the initial system, I moved to the Microsoft Technology Center. I began working with and advising some of Microsoft's largest customers such as eBay and MySpace, regarding the .NET- and SQL Server-oriented aspects of their system architectures.
The common thread that binds my career together includes a focus on performance and reliability. The software development process is another long-time interest of mine, because I've seen first-hand how much of an impact it can have on the success or failure of a project.
In December 2006, my family and I left the intensity of Silicon Valley and moved to beautiful New Zealand, where we currently live. My hobbies include ham radio (callsign ZL2HAM) and photography.