Back To School – Part I
When last we met back in January 2002 (almost one year a go), the accidental programmer decided it was time to get serious and really learn the trade of computer programming. To that end I wanted to program embedded systems where a thorough knowledge of the underlying hardware is absolutely necessary.
I took a 20% pay cut to work at SLAC, a DOE National Laboratory operated by Stanford University. What I recieved in exchange for the 20% has been absolutely invaluable -- I learned how to think, I learned all about how the computer/interfacing world operates. I learned and understood the importance of system engineering. More on that later.
The project I am working on is called GLAST, a large gamma-ray observatory satelite that will measure gamma-ray sources throughout our universe as the satelite orbits the Earth. I work on the embedded system software that runs the data acquisition system for the detector.
I'm right where the rubber mets the road -- where an electrical engineer's piece of super custom hardware meets a Motorola PowerPC single board computer. I write device drivers for one-of-a-kind hardware devices. Oh yah, and the whole system will be stuffed on the tip of an explosive rocket and launched into orbit.
Deliciously geeky.
Up front though I want to give props to the physicists, researchers and engineers who toil away building the best possible machines for measuring and understanding the universe in which we live -- they dedicated their lives to scientific pursuits.
SLAC is a very interesting place to work -- it is one of the few DOE labs that does not do defense research, i.e. it is not a bomb factory. Also all of the projects and results are open for public scrutiny -- no so called black projects that occupy so many defense and aerospace companies. The research is funded with our tax dollars and is open to you, me and everyone else.
That is refreshing.
It is also refreshing to work with people who have decided to spend their entire life at SLAC for that very reason. These are sharp people who believe in what they are doing, but with humility, graciousness and a sense of how things could be much, much, darker. More about the dark side in a future post.
So the employment was a fair trade I'd say. They picked up a seasoned computer programmer who also had a physics background. It's just my computer programming background was writing applications -- it was now time to dive into and beneath the operating system and write device drivers. This is the area I wanted to explore, the embedded system. While I knew nothing about the low level world or embedded systems it seems fascinating and valuable as computers become more pervasive as they shrink smaller and smaller.
For their part they signed up to teach me embedded system programming. Or so I thought. So far it has turned out to be much, much more. They taught me about system engineering. How to architect a complete, complex system of custom electronics and software. How to think way, way outside of the box when designing (and debugging) an ambitious compu-electronic data acquisition system.
I feel the pain of the hiring managers at SLAC -- everything is a trade off. They have ridiculously small budgets, but they need really experienced engineers to build the devices they design. However all the really good, experienced engineers all work in industry where the pay is about 20% higher. So they make do with the people they can afford, knowing they will have to do a bit of teaching to make it all work.
I'm sure they don't realize it, but I have been absorbing as much knowledge as possible at every opportunity.
It is not always fun, however.
I came from running my own company, where I was in control and I decided what needed doing when. This was a change -- someone else was in control for the direction. Even more than that I had no experience in the field at all. It's quite an unsettling feeling after being in charge for so long. I did not know enough about embedded systems to know if their ideas were right or wrong.
I felt small.
And dumb.
To be continued ...
Posted by curt at January 2, 2003 06:41 PM
| TrackBack