Programming
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.
Work Projects
2003–2021: Principal Software Engineer/Lead, Microsoft
-
2012–2021: The ARM64 Era
- Ported Windows NT to the 64-bit ARM architecture (AArch64/ARM64).
- Did initial bring-up on simulators and two early hardware platforms.
- Wrote core backend x86-to-ARM64 translator for the Cobalt project.
- Implemented large parts of the native ARM64 port of Chakra (JavaScript).
-
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 ISA to shipping Thumb-2 ISA.
- 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 13 engineers.
- Led the team that developed 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, using virtualization for user mode code.
- Created Connectix Virtual Game Station, implementing most non-CPU 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.
- Developed weapon systems and networking model for Outlaws.
- Led programming efforts on Jedi Knight: Mysteries of the Sith expansion pack.
- As a contractor, ported all DOS-based SCUMM adventure games to Windows.
- Read some of my LucasArts “War Stories”
- Enhanced CU-SeeMe videoconferencing application to support a plugin model.
- Created CU-SeeMe plugins for high-res image exchange via early digital cameras.
- Prototyped a journaling system on the Apple Newton for medical staff.
- Read some of my CUMC “War Stories”
1992–1993: Research Assistant, U. Chicago Department of Physics
- Developed 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.
Side Projects
1997–2012, 2020–2021: Project Lead/Architect, MAME
- Led the project from 2005–2011, beginning the push from C to C++.
- Created the first official native port of MAME to Windows.
- Wrote emulators for 11 CPUs, 7 sound chips, and 100+ arcade games.
- Developed generic dynamic recompliation system with MIPS III and PowerPC recompilers.
- Read some of my MAME “War Stories”
1990–1997: MacOS Freeware/Shareware Developer
- Created the JPEGView image viewer, the default for NCSA Mosaic.
- 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