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++ and C#, usually on Intel machines running Win32-based operating systems such as Windows 10, Windows Server 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 several 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 acquired by 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. I have reunited with several of my colleagues from Metalincs who formed LiveHive, a cloud storage and collaboration application startup in California. I work remotely from my home in Utah.

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, or peer-to-peer systems as they are sometimes called. 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 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 my past, recently I've been moving into client-side technologies like AJAX and Microsoft Silverlight, as well HTML5, CSS3 and JavaScript which I believe are now becoming the dominant tools for browser applications and are likely to remain so for the next several years.

Away from my formal job projects I spend a lot of time studying new languages and technologies. What I love most about my job is the constant learning and exploring new areas. Nothing ever seems to remain static for very long.

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. So below 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 guys 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.

My Business Card Resume

May 2012 to Present

December 2007 to March 2011

July 2003 to Decebemer 2007

November 1999 to May 2002

March 1999 to November 1999

October 1997 to March 1999

January 1997 to October 1997

February 1990 to May 1997

August 1988 to January 1990

April 1982 to July 1988