- Things that I have not done before
Life is too short to do the same thing all of your life.
- Unix Kernel
I have been working with Unix and Unix-like operating systems since 1983.
I always wanted to be a Unix kernel hacker. From 1989 through 1997, I
worked doing just that on AIX 1.2, Sinix, LynxOS and Solaris. I also
briefly worked on Minix. I took an intensive Berkeley UNIX internals
class from Kirk McKusick and did an implementation of NTFS for NetBSD
(based on some code and reverse engineering of NTFS done by others) for
my class project. My favorite area of OS work is file systems.
- IEEE-1394 and Consumer Electronics
While at Sun, I worked on the IEEE-1394 device driver infrastructure for
Solaris. After I left Sun for a brief adventure in the .com world, I went
to work for two different companies, Digital Harmony and Zayante, where I
got to combine my experience with IEEE-1394 with playing with consumer
electronics toys. I got to contribute to a bunch of the specifications
created by the 1394 Trade Association and I hope I made some contribution
to the world. In the end, neither company ended up being a good fit, but I
really enjoyed the work that I was able to do at those companies.
I first started programming in Java by attending the first two Java classes
offered at Sun Microsystems while I worked there. I had done some object
oriented programming in Objective C on the NeXT, but I thought C++ was a mess.
Java was a much cleaner language. However, I didn't have any projects were
Java would be appropriate. In 1997 and 1998, I had to write a lot of C++ and
Java for the backend of a personalized health information web site and my
opinions about both languages were confirmed.
Also, I was the project lead and primary technical contributor to the jini.org
ieee1394 project. The goal of the project was to create a specification for
the IEEE-1394 interconnect for the Jini Surrogate Architecture. I am also
working on a Java implementation of the 1394 Trade Association Audio/Video
control specifications (AV/C) to support this work.
- Palm Software Development
When I got my Palm Pilot, I liked it purity and simplicity. I also liked
that it was an environment where a programmer was rewarded for writing
efficient code. Unfortunately, I could not come up with an idea for an
application to write until I came up with the idea to write applications to
aid in one of my hobbies, competing in rally racing.
While working on my rally applications, I started getting requests that I
port them to Pocket PC, which I have done. There are pluses and minuses
for writing for each platform.
- Computer Representation of Time and Timezones
While I was at Sun Microsystems, one of the areas in which I worked was
maintaining the code that displays time and tracks timezones and daylight
savings time in Solaris. During that time, I became fascinated with the
topic of time and representation of time. These days I just track discussion
of the topic.