
I have been programming computers since the early 1980s when I taught myself to program first on CP/M machines and later PCs. Over the years I have learned or experimented with a number of different languages including Pascal, dBase, Clipper, Smalltalk, x86 Assembler, C and C++. I now spend most of my time working in C++, C#, and Silverlight mostly on Intel machines running Win32-based operating systems such as Windows7, Windows Server, Windows Vista and Windows Mobile.
I started making a living programming in 1981 when I contracted a few simple projects for friends. That grew into a full time consulting business that lasted for six years, during which I wrote dozens of accounting systems, construction estimators, customer databases and other custom programs for small businesses in the Sacramento area.
In 1988 I was lured to the Silicon Valley and hired by a company called ENSR Health Sciences. A couple of years later I moved to Marketing Resources Plus where I stayed for just over six years. I returned to full-time consulting for a year and then in October of 1997 I joined an Internet start-up called Impulse Buy Network where I worked as Chief Architect.
In April of 1999 Impulse was bought by Inktomi where I took the position of Chief Technologist. Late in 1999 I left Inktomi to help start a new company with my friend from Impulse Richard Ling. For just over 2 years I was Chief Technology Officer for AlterEgo Networks, and Richard was the CEO. In May of 2002 AlterEgo was sold to Macromedia. A short time later Richard and I started another company, Metalincs. In December of 2008 Metalincs was acquired by the Seagate company i365 where I served as Senior Scientist until March of 2011.
Now I have returned again to startup mode which seems to be where I am happiest. Currently I am working on prototypes for a couple of new software products that for the moment must remain confidential.
Back in the early 1990s I was fortunate to become involved in a project for a PC-based distributed system, one of the earliest of its kind to be sold commercially. Distributed software is designed as a series of modules that reside on different networked computers, yet work together to accomplish a specific task.
Simple distributed designs are often called Client/Server because they employ a single data server that responds to requests from multiple clients which manage the user interface. The Web is a good example of this architecture with the browser you are looking at now acting as the client. More complex designs have modules that are capable of acting as either clients or servers depending on the task.
I specialize in writing high-performance servers for Win32-based distributed systems. Proprietary servers of this type are necessary when commercially available products like SQL Server or Oracle aren't suited to a specific task. I also do some client-side user interface work which I enjoy, but I tend toward systems-level programming because it's a relatively small group that specializes in that area.
While server-side is where I've done most of my work, recently I've been concentrating on several client-side technologies like AJAX and Microsoft Silverlight, as well as beginning to explore HTML5 which I believe will become dominant in browser applications over the next few years.
Away from my formal job projects I spend a lot of time studying new languages and technologies. Currently I'm exploring the worlds of Web Services and rich-experience web user interfaces, and programming new classes of computers like PDAs, tablets and smart phones.
This is normally where I would put my resume, but rather than posting one of those boring all-text tomes I decided to try something different. To the right is my business card resume. Not every job I've ever held is included but it does give a pretty good overview of my working life.
After uploading these I have to admit to a history of rather ugly business cards. I'm reminded of the scenes in American Psycho where the boys are comparing the design and material characteristics of their business cards with the zeal of bull elk proudly parading their seasonal racks. Mine would be an embarrassment in that context, I'm afraid. LOL