Steven Noonan


I'm looking for a full time job position which will challenge me and hone my skills as a developer. My current areas of interest are parallelization, code optimization, virtualization, emulation, and game development, though I'm open to opportunities not exclusive to these areas.


  • Programming languages (fluent)C, C++, Python, shell scripting (Bash)
  • Programming languages (proficient)x86 & ARM ASM, Ruby, Lua
  • DatabasesSQLite, MySQL, PostgreSQL, and Microsoft SQL Server (and T-SQL extensions)
  • Operating systemsLinux, Windows, macOS (10.4+)
  • Integrated development environmentsXcode (2.5+), Visual Studio 6.0 through 2017, Visual Studio Code, vim
  • Revision control systemsStrong experience with Git, Subversion, Perforce
  • Natural LanguagesEnglish (native)
  • Miscellaneous
    • significant experience porting games and software between platforms (Windows, Linux, and macOS)
    • experience developing and maintaining Linux platforms running KVM and Xen with a Linux control plane
    • low-level programming and code optimization (paravirtualization, I/O rate, x86/ARM assembly, stress testing)
    • interest (but no professional experience) in compiler backend code generation (e.g. with LLVM & Clang)

Open Source

  • fio (Flexible I/O tester)
    Numerous contributions, most of which were a direct result of work at Amazon Web Services.
  • The CUDA Handbook
    Worked extensively on the n-body code base. Implemented a build infrastructure using GNU make, developed an option to build without CUDA support (i.e. only CPU implementations), vastly improved the CPU SOA implementation such that the compiler generates better code than the SSE intrinsic version and even takes advantage of newer instruction sets (e.g. AVX/AVX2), added OpenMP support in all CPU implementations, implemented tiled CPU SOA algorithm. Most of these changes were pulled into the upstream repository managed by Nicholas Wilt.
    Wrote a command-line utility for dumping/decoding information gathered with the x86 CPUID instruction.
  • CPU_TEST for ARM
    Wrote a framework and set of microbenchmarks for understanding architectural differences between various ARMv7 implementations (execution unit distribution, caching behavior, IPC, etc).


Valve Corporation August 2015 -- present
Software Engineer, full-time position
  • 2+ years working on Valve Anti-Cheat on Windows, macOS and Linux
  • Steam Datagram Relay (SDR) and game server performance tuning and accompanying tooling
  • Linux game and software porting/development
  • Optimization, performance debugging
  • Game Networking Sockets library
  • Proton development, mostly on the Wine side
Amazon Web Services - Kernel and Operating Systems Team January 2012 -- August 2015
Software Engineer, full-time position

Linux kernel engineer, software engineer, and performance guru. I focused on several areas during my time with Amazon Web Services: block I/O performance, network throughput/latency, hypervisor scheduling and resource allocation, scalable fleet validation and testing infrastructures, and new platform development.

I served as the primary platform team engineer responsible for the High Storage (HS1), SSD-based High I/O (HI1 and I2) platforms. Through these platforms, I developed userspace tooling around effective/fair resource management (PID affinity, IRQ affinity, vCPU/pCPU pinning) and kernel patches for improved throughput and latency with high IOPS workloads.

I also was one of the primary authors and maintainers for a fast, scalable, and reliable test infrastructure used for platform qualification, benchmarking, and testing, as well as for operational use cases. The tooling has enabled engineers to rapidly prototype new platforms and verify functionality both from a configuration validation standpoint as well as from a user acceptance standpoint.

Amazon Web Services - Platforms and Performance Team, formerly EC2 High Performance Computing Team January 2011 -- January 2012
Software Engineer, full-time position

I worked in the Amazon EC2 Platforms and Performance team, where I worked primarily on performance tuning and design for cluster compute instance types. I was the lead software engineer in charge of the hi1.4xlarge instance type, and did significant kernel changes to ensure hi1.4xlarge performed well.

Introversion Software 2005 -- 2007
Linux and Mac Developer, contract work
  • Developed the Linux port of Defcon, using C++, SDL, SDL_image, SDL_mixer and OpenGL.
  • Assisted in the development of the Windows Vista version of Darwinia, which was released on MSN Games shortly after Windows Vista's release.
Exosyphen Studios 2009 -- 2010
Linux and Mac Developer, contract work
  • Developed the Linux and macOS ports of Hacker Evolution: Untold. Was tasked with eliminating the use of DirectX and Windows-specific APIs, and refactored the code to use much more cross-platform APIs including SDL, SDL_image, SDL_mixer, and OpenGL. The project is written in pure C++.
Google & Python Software Foundation Summer 2010
Google Summer of Code Participant, Software Engineer, contract work
  • Worked on the Unladen Swallow interpreter for Python, to reduce memory usage, eliminate memory leaks, and generally improve performance.
Uplink Laboratories 1999 -- present
Developer, non-profit personal project development
Currently the lead developer of several projects including:
  • CrissCross, a cross-platform C++ development library with several data structures and algorithms. Builds and runs on Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD, and even the Nintendo DS. Currently used mainly for cross-platform game development as a supplement to the C++ STL, and game development libraries like SDL.
  • ARC++, a C++ rewrite of OpenARC, using SDL, SDL_mixer, SDL_image, OpenGL.
  • OpenARC, a clone of Hoopy Entertainment's Attack, Retrieve Capture. Originally written in Visual Basic 6, using a DirectDraw/Direct3D hybrid, and designed for Windows 95 and above (works even on Windows Vista and 7).
  • GenPrime, a prime number discovery algorithm, primarily used for code generation comparisons (a programming language shootout).
  • CryptoPad, a WordPad-like cryptography program written in Visual Basic 6. Open source.


Seattle Pacific University, Seattle, WA, USA Winter 2007 -- Winter 2009
Student of Computer Engineering
Central Washington University, Ellensburg, WA, USA Fall 2006, Spring 2009 -- Fall 2010
Student of Computer Science
Moses Lake High School, Moses Lake, WA, USA 2003 -- 2006
  • Participated in university-level computer science workshops.
  • Participated in an honors English course.

Other Experience and Qualifications

Future Business Leaders of America
  • Competed in Visual Basic Programming, C++ Programming, and Network Design.
  • Placed 1st in Visual Basic, C++, and Network Design at the Washington State North Central Region competition.
  • Placed 1st in Network Design, 2nd in Visual Basic, and 3rd in C++ at the Washington State competition.
  • Placed 5th in Network Design at the national competition. (Only could enter one event.)
Speech and Debate
  • Received several first place awards for Lincoln-Douglas debate in competitions at district competitions in Washington state.
  • Received an award from the coach for being the "Most Improved".
  • Received a second place award for a dual interpretation speech at a district competition.
  • State qualifier for Lincoln-Douglas debate.
  • Achieved rank of Eagle Scout in 2001.
  • Was active in cub scouts, achieved all ranks (Bobcat, Wolf, Bear, Webelos).
  • Previously active in both Boy Scout Troop 69 and Venture Crew 69.
  • In the Order of the Arrow,