I am a 30-year veteran computer programmer with extensive experience in operating systems, video games, porting, and emulation.
I am also a dabbler in other technologies like compression, audio processing, MIDI, etc.
Almost completely self-taught, I am an expert in C, C++, and many forms of assembly language.
Below you can find an online resume of sorts, with links out “war stories” containing more detailed information.
I’ve listed formal work projects first, with side projects at the end.
2003–present: Principal Software Engineer/Lead, Microsoft
2012–present: The ARM64 Era
- Performed initial port of Windows NT to the 64-bit ARM architecture (AArch64/ARM64).
- Did first bring-up of Windows NT, first on simulators, then on two early ARM64 platforms.
- Wrote backend x86-to-ARM64 translator for the Cobalt project.
2008–2012: The ARM Era
- Co-authored the port of Windows NT to the 32-bit ARM platform.
- Converted initial prototype from 32-bit ARM instruction set to shipping Thumb-2 instruction set.
- Designed compiler-generated exception handling metadata for ARM binaries.
- Assisted in the testing and optimization of new Thumb-2 native compiler technology.
2003–2008: The Hyper-V Era
- Managed a team of up to 10 engineers.
- Led the team that developed all the user mode components of Microsoft’s Hyper-V technology.
- Led the effort to rebrand and secure Virtual PC for Microsoft.
- Read some of my Microsoft “War Stories”
1998–2003: Lead Software Engineer, Connectix
- Ported Virtual PC to Windows, writing the jitter for ring 0, and converting ring 3 to run live.
- Created the Connectix Virtual Game Station product, implementing most non-CPU-related code.
- Ported Connectix Virtual Game Station to Windows.
- Implemented ISA plug & play and Soundblaster 16 support for Virtual PC.
- Read some of my Connectix “War Stories”
- Single-handedly ported 9 A-list LEC games from DOS/Windows to Macintosh during my first year.
- Developed weapon systems and networking model for Outlaws.
- Led programming efforts on Jedi Knight: Mysteries of the Sith expansion pack.
- As a contractor, ported the complete set of DOS-based SCUMM adventure games to modern Windows.
- Read some of my LucasArts “War Stories”
- Enhanced CU-SeeMe videoconferencing application to support a generic plugin model.
- Created CU-SeeMe plugins to support high resolution image exchange using early digital cameras.
- Wrote a prototype journaling system on the Apple Newton for medical staff to use on rounds.
- Read some of my CUMC “War Stories”
1992–1993: Research Assistant, U. Chicago Department of Physics
- Developed and enhanced live filtering firmware for OPAL Si-W particle detector at CERN.
- Created 68040-based diagnostics for the OPAL Si-W detector.
- Spent 6 months at CERN bringing detector online.
1997–2012: Project Lead/Architect, MAME
- Led the project from 2005–2011, beginning the push from C to C++.
- Wrote emulators for 11 CPUs/DSPs, 7 sound chips, and over 100 arcade games.
- Developed generic dynamic recompliation system and wrote MIPS III and PowerPC recompilers.
- Created the first official native port of MAME to Windows.
- Read some of my MAME “War Stories”
1990–1997: MacOS Freeware/Shareware Developer
- Created the JPEGView image viewer, the default for NCSA Mosaic on the Macintosh.
- Developed uuUndo, a fast assembler/extractor for Usenet-supplied binaries.
- Received the 1996 MacUser Rising Star award.
- Read some of my Mac shareware “War Stories”
1979–1990: Basement-Dwelling Kid Writing Code
- Wrote a Gauntlet clone and a Qix clone in Modula-2 on the Amiga.
- Developed several DOS-based games in assembly, including Rescue, Riské, and an Uno clone.
- Created INT17 patch to render all printer text as graphics and account for bent pins on printer.
- Wrote an x86 assembler/linker in 100% x86 assembly (eventually ported to be self-assembling).
- Read some of my early “War Stories”
This site and all contents Copyright © Aaron Giles