George Burgess
OS, runtime, and compiler enthusiast.

Facebook   |   Twitter   |   LinkedIn   |   Github

About Me

(Please note: this page was written in late-2014, and hasn't really been updated since)

Hi! My name is George Burgess, and I'm currently an undergraduate student at Virginia Tech. I'm pursuing a degree in Computer Engineering, with a minor in Computer Science. My interests include generally making things go super fast -- I'm interested in the design and implementation of compilers, runtimes, operating systems, and distributed systems. Additionally, I enjoy learning new programming languages, because they generally provide a unique perspective on how to solve certain problems. At the time of writing, I've studied HotSpot, a popular runtime for Java/Scala/Clojure/..., and I've worked on one of the high-performance components of Microsoft's Roslyn compiler, as well as researched and implemented new alias analysis algorithms on the open-source LLVM platform.

After finishing my degree in May 2015, I'll be working with Google to make Android faster.

If you would like a more thorough description of my prior work (below), feel free to grab a copy of my resume here. If you would like to contact me, you may reach me at

Work History

LLVM Alias Analysis

My internship project with Google was to implement an alias analysis algorithm derived from the papers located here and here for LLVM. Alias analysis is essential to get correct, because it enables a number of other compiler optimizations that make code both leaner and faster. You may read the full proposal/description for it here. As of 2-Sept, the so-called "CFL AA" was checked into LLVM, and we're currently working to find bugs and hopefully have it enabled by default.

Roslyn

At a prior internship with Microsoft, I assisted in writing a high-performance part of their (mostly) open source Roslyn C#/VB compiler. Additionally, I assisted in the reconcilation of various APIs that the compiler would provide, compared to already available APIs.

Windows Security

Over Summer 2012, I worked with the Windows Security team to help better secure Windows 8.1 by authoring new security features that focused primarily on applications available in the Windows Store. For this, I had to write code that executes both in userland and in the kernel. I'm told that my code is currently in Windows, and I've not received a single bug report about being the cause of a blue screen yet. :)

Technical background

Sparing you a life story, my technological background is primarily in operating systems (largely Linux flavors), compilers, runtimes, parallel systems, and embedded environments. Also, I'm a massive fan of writing tests in tandem with code -- doing so promotes modularity, good design, and takes a massive chunk out of the time a developer spends debugging.

I'm interested in working on distributed systems, programming languages, runtimes, compilers, and/or operating systems (in no particular order). More than anything else, I enjoy making things run fast -- whether this speed is of the code generated (in the case of various compilers) or of the project I'm working on itself, I like being part of the reason that a piece of code is blazing fast.

The programming languages I have the most experience with are C++, Python, Clojure, Go, C#, JavaScript, and Java. I've also spent a fair amount of time in Scala, BASH, Haskell and others, and generally don't have much (if any) trouble picking up new programming languages as needed.

Platforms I've programmed for include Windows (ARM and x86), Mac, Linux (ARM and x86), Android, and Windows Phone. My ideal workflow is centered on a shell, but I've no problems with IDEs if they help me get my job done faster. I'm significantly more comfortable on Linux flavors and Mac OS than I am on Windows for software development.

© All Rights Reserved. Template/Framework by Jonathan Ballands. Images courtesy of Flickr.