Thursday, March 24, 2005

Sleepless in Somerset

Can't sleep.

I was thinking about the work I did today. I spent most of the evening trying to get a third-party's code to work, hassling with the C++ that I never really took the time to learn. Got me thinking about college, and how I used to spend nights in the computer lab trying to get my assignments to work. The whole thing reminded me of the fact that I've had a C compiler since I was fourteen years old and I didn't really start to take advantage of it until I was in college. How much smarter I would be now if I had started a few years earlier.

And that got me thinking about the man who gave me the compiler.

Most kids ask their parents for a skateboard or the latest video game. My Dad gave me a commercial C compiler. Most computer geeks take compilers for granted nowadays - since open source Operating Systems like Linux came around every distribution comes with one for free. But back in the early 1990's they were expensive and only professional software developers had them.

I was thinking about how I looked at my father back when I was at Lucent and 3Com. By that point he had stopped doing development, and was doing Quality Assurance at 3Com. Part of me saw him as a dinosaur, a relic of the mainframe era whose skills were useless in the modern world. I was the "young whipper snapper" who was familiar with all the new technology. I guess at the time I really didn't know what he had been working on all those years at Concurrent, but I figured that since it was all old technology that it wasn't very advanced compared to the technology of the nineties. I figured it must be easy compared to the latest and greatest stuff I was working on.

In the last couple of years though I have come to realize that the opposite is true. Modern computing provides so many facilities that I take for granted that I don't really appreciate how hard it was to get there or what the machine is really doing. It's like kids today who use calculators and as a result don't know how to do long division.

Bert designed hard drive controllers. He designed logic analyzer microcode. He coded in assembly. This is the hardcore shit. I think about it now, and realize that there are a million Visual Basic programmers. There are hundreds of thousands of C and Java programmers. Even firmware design has a fairly large workforce - any C programmer with a little motivation can learn it. But only a handful of people can do microcode -- the lowest level above the hardware.

I wish I had learned more from him.

I found several boxes of code he wrote for various projects at Concurrent. Wide-carriage greenbar printouts of work that clearly he had been proud of. When I look at the code, I see beauty in a way that only engineers can appreciate. I see genius.

I sometimes wonder whether the work I do for Netilla begins to compare. Sure the people who run Netilla think it's the best thing since sliced bread, but am I really getting out of it the most that I can? Has my growth stagnated? Will the MemVidia project be an opportunity for growth, or just another few years spent doing integration work of various components?

Is it innovation or just integration?

I think about the drive controllers he designed, and wonder what I have done that even comes close. The stuff he did had never been done before. He took the field in new directions. He did soft sectoring of the disk while everybody else was jumping to the outer track to map around defects.

Anyway, I guess I've rambled enough for the moment. Guess I will try to get some sleep. Tomorrow is Friday and Naomi is coming over after work.