Programming

I am a 30-year veteran computer programmer with extensive experience in operating systems, video games, porting, and emulation.

Almost completely self-taught, I am an expert in C, C++, and many forms of assembly language.

In college I wrote and released a MacOS utility program called JPEGView, which became famous as the de facto image viewer for early web browsers.

In 1995 I achieved my dream of working in the games industry, taking a job at LucasArts Entertainment Company. I spent a year there porting games from DOS/Windows to the Macintosh, and then worked on first-person shooters for another two and a half years before disillusionment set in.

I’ve worked on the MAME arcade game emulation project since 1997, initially contributing drivers, then working on the MacOS and Windows ports, and finally overseeing the system architecture. I served as project leader from 2005–2012, and continue to advise on architectural issues.

I joined Connectix in 1998 and developed Virtual Game Station, one of the first commercial video game console emulators. I was also responsible for porting Virtual PC from MacOS to Windows. Virtual PC begat Virtual Server, which eventually interested Microsoft enough to purchase the company.

Since 2003, I have been a principal developer at Microsoft. I led part of the team that developed the first release of Hyper-V. I was also one of the key developers responsible for porting Windows to run on ARM processors, allowing the Windows NT kernel to power both Windows Phone 8 and the Microsoft Surface.

You can read (lots) more about some of the things I’ve worked on below: