As I prepared to go to college, I knew I wanted to be a scientist, but I didn't know which branch of science, so I first majored in biology, then chemistry, then physics, and finally computer science. It wasn't easy for me to select a major in computer science, because I had always viewed engineering science as second-class to natural science, but nothing piqued my interest and passion as did computer science. Even though I switched majors several times, I was still able to complete a Bachelors of Science degree with honors (Phi Beta Kappa and Magna Cum Laude) in only three years.
In graduate school, I was very interested in both artificial intelligence and software development, but I eventually chose software engineering because I derived great satisfaction from developing novel software tools and programming languages to facilitate software development. I received my Ph.D. from UC Irvine (UCI) in 1988 for a thesis on integrating software tools into a programming environment while maintaining a uniform user interface to a large, growing tool set. My goal was then, as it is now, to enable software developers to build high-quality software systems more rapidly.
My early work focused on teaching programming languages, compilers, and software design. I worked as a full-time lecturer in the Department of Information & Computer Science (ICS) at UCI for 14 years. I made my impact by educating the next generation of software developers. I loved teaching and excelled at it -- winning over 17 teaching awards in the process. January 2000, at the invitation of Professor Douglas Schmidt, I switched my primary focus from teaching to research. I now enjoy working one-on-one with graduate students to help them become experts and innovators. January 2002, I moved to the Department of Electrical Engineering and Computer Science (EECS) within the Henry Samueli School of Engineering at UCI, where my primary work is doing research. I am actively involved with three research units at UCI: the Center For Embedded Computer Systems (CECS) the California Institute for Telecommunications and Information Technology (Cal(IT)2), and the Institute for Transportation Studies (ITS).
My research focus has been in the area of middleware for distributed, real-time, and embedded (DRE) systems. While developing middleware, we also document and publish the object-oriented software design patterns that we discover along the way. This research is particularly challenging because it requires expertise in the following research areas:
I discovered early in my career that collaborative research is the most rewarding, and my current research continues in middleware themes with graduate student and faculty colleagues at UCI, Vanderbilt, WashU, University of Utah, MIT, and Purdue. I also work with industry and government leaders at institutions including Boeing, Lockheed Martin, Unisys, and SPAWAR. I particularly enjoy working on large-scale, integrated research projects that span multiple institutions and research groups. One current project is our development of ZEN as a subcontract for Boeing as part of the DARPA PCES large-scale research project. ZEN is an implementation of Real-time CORBA for RTSJ (real-time Java). Current research on ZEN includes minimizing memory footprint while providing real-time response through low-jitter. Small memory footprint and low-jitter for middleware are both necessary for DRE systems, yet difficult to achieve simultaneously. We use patterns, reflection, and aspects to achieve these goals. ZEN integrates with RTSJ compilers from WashU, MIT, and Purdue, with real-time operating systems from TimeSys, with real-time event channels from WashU, with CORBA Component Model support from OpenCCM, with graphical modeling tools from KSU and U. of Virginia, and with automatic target recognition from MIT.
I directed the UCI Distributed Object Computing (DOC) Laboratory where these research projects were carried out. The UCI DOC Lab offers excellent computer facilities supporting a variety of experimental middleware research projects. Students learn about middleware, design patterns, and modeling and also acquire facility with computer systems, with methods of modeling, and with modern experimental techniques, to develop the diverse technical skills they need to conduct experimental research in computer science and engineering.
I am currently teaching at the University of California, Riverside and doing research with Laxmi Buyan and his students.
August 10th, 2002, I married the talented and beautiful Susan Anderson who came with a huge bonus of a wonderful family. Susan's father and I share a passion for fishing. We all share a common faith in God.
When I find some spare time, I enjoy my hobby of freedive (breathhold) spearfishing where I become part of the food chain in the beautiful underwater world for hours at a time. See me in action both below water and above water. I had an awesome trip to San Benitos Island August 2004. Here were my two big white seabass from day one 61 lb fish and from day two (54 lbs). The latter fish towed me around through the water in a large circle like I was water skiing. What a wonderful trip!
I love older cars, boats, and motorcycles. I spend more time that I should working on them, but I enjoy keeping them in good shape. I enjoy my 1972 Chevy Truck and my 1987 Boston Whaler boat that are pictured and described here.