Steven Noonan
https://www.linkedin.com/in/stevennoonan/ steven@uplinklabs.net

Summary

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 game development, graphics programming, low-level performance optimization and debugging.

Skills

  • Programming languagesC, C++, Python, shell scripting (Bash)
  • Graphics technologiesOpenGL, OpenGL ES, some Vulkan
  • DatabasesSQLite, MySQL, PostgreSQL, and Microsoft SQL Server
  • Operating systemsLinux, Windows, macOS
  • Revision control systemsStrong experience with Git. Moderate experience with Perforce.
  • Natural LanguagesEnglish (native)
  • Interests and specialized skills
    • low-level x86 system and code tuning/optimization
    • graphics programming, debugging, and optimization experience on both immediate-mode and tile-based renderers
    • 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
    • talented at and enjoy low-level code optimization and debugging strange problems

Experience

Aviatrix March 2024 -- present
Senior Staff Software Engineer, full-time position
  • Developing cloud networking software and testing frameworks.
Samsung SARC/ACL March 2023 -- January 2024
Staff Software Engineer, full-time position
  • Developing Vulkan graphics drivers for the AMD-based GPU in Samsung phones.
  • Solved multiple conformance issues with Vulkan dEQP on the Samsung User Mode Driver (SUMD).
  • Implemented new features to better support ANGLE and improve rendering performance.
Valve Corporation August 2015 -- December 2022
Software Engineer, full-time position
  • Developed Valve Anti-Cheat and Steam Trust machine learning model and infrastructure. Implemented several new detection methods and heuristics for cheat and bot detection. These methods resulted in much higher and more accurate detections, improving the game experience for millions of daily users.
  • Low-level x86 Steam Datagram Relay (SDR) and game server I/O performance tuning and accompanying tooling, allowing for much more efficient use of hardware and consistent low-latency experience for users.
  • Cross-platform (Windows/Linux/macOS) software and game porting/development
  • Anti-fraud and anti-bot infrastructure to combat automated account creation, cheating, and other malicious activity. Worked with Google to improve reCAPTCHA and other anti-fraud tooling for Valve's use case.
  • Several improvements to the Steam Hardware Survey, improving data sanitization and gathering
  • Game Networking Sockets library development, maintenance and porting. The library provides developers with a good basis for multiplayer game networking, with support for the Steam Datagram Relay (SDR) infrastructure.
  • Steam Deck OS and Proton development and low-level x86 tuning/debugging, mostly on the Wine and kernel side. Improved compatibility and performance for many games across the board.
Introversion Software 2020 -- present
Developer, freelance development

Developed the "10000th Anniversary Edition" remaster of Darwinia. Rewrote the majority of the 2005-era game engine for performance and compatibility on modern hardware.

  • Redesigned and rewrote graphics subsystem to support OpenGL 3.3 core and OpenGL ES 3.0. Uses ANGLE to support multiple rendering backends: Vulkan, Direct3D, Metal, OpenGL. Introduced support for MSAA/SSAA/SMAA/FXAA for anti-aliasing, and AMD FSR 1.0 for scaling. Changes were implemented with a strong focus on performance and higher fidelity visuals.
    The original game engine only used the fixed-function OpenGL pipeline and had no support for any of the modern graphics tools like vertex buffers, framebuffer objects, vertex arrays, or shaders.
  • Rewrote custom UI toolkit to use dynamic DPI scaling to better support high DPI displays.
  • Rewrote sound engine to use MiniAudio for spatialized multithreaded high-performance cross-platform game audio. Supports up to 7.1-channel surround sound. The original engine only supported spatialization on Windows with DirectSound, and only supported up to 2-channel (stereo) audio.
  • Improved platform portability, introducing support for 64-bit CPU architectures, native Apple Silicon support, and optimizations for other tile-based renderers.
  • Significantly improved game performance through rendering, game math, and core design optimizations.
  • Fixed numerous long-standing gameplay, graphics and audio bugs.
  • Worked with numerous graphics hardware/driver vendors to solve bugs discovered in their driver implementations (AMD, NVIDIA, Intel, Qualcomm).
  • Contributed to the MiniAudio, ANGLE, and SDL projects to solve bugs or add new features.
  • Providing long-term game updates on Steam and Good Old Games (GOG) with support for macOS, Windows, and Linux.
Amazon Web Services - EC2 Kernel and Operating Systems Team January 2012 -- August 2015
Software Engineer, full-time position

Linux kernel engineer, software engineer, and performance guru.

  • Development focus on several key areas while with Amazon EC2: block I/O performance, network throughput/latency, hypervisor scheduling and resource allocation, scalable fleet validation and testing instrastructure, and new platform development.
  • Primary platform team engineer responsible for multiple platforms:

    • High-capacity HDD-based High Storage (HS1) platform (hs1.8xlarge). Aside from base platform development, implemented generally applicable core platform tooling for resource affinity to ensure high throughput.
    • First SSD-based High I/O (HI1) platform (hi1.4xlarge). Aside from base platform development, implemented several kernel, hypervisor, and userspace changes to ensure high I/O per second (IOPS) rate.
  • Developed critical tooling for platform performance and development:

    • Wrote declarative tools/services for fair resource management on all EC2 instance types (PID affinity, IRQ affinity, vCPU/pCPU pinning, CPUID topology).
    • Co-author of a fast, scalable, and reliable tool infrastructure (internally called "Mjollnir") used for platform qualification, benchmarking, testing, and emergent operational use cases. To this day, Mjollnir still enables engineers to rapidly prototype and qualify platforms for the Amazon EC2 fleet.
Amazon Web Services - EC2 High Performance Computing (HPC) Team January 2011 -- January 2012
Software Engineer, full-time position
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++.

Open Source

  • GameNetworkingSockets, a game networking library
    Ported to foreign (non-x86 and Big Endian) architectures, including several endianness correctness fixes. Developed and maintained build system and continuous integration, complete with ASAN/UBSAN tests and related fixes.
  • N-Body, a portable N-Body benchmark with support for CUDA, SIMD, and auto-vectorization
    Initially forked from the CUDA Handbook repository. Implemented a build infrastructure using GNU make (and later Meson + ninja). Implemented option to build without CUDA support (i.e. only CPU implementations). Vastly improved the CPU implementations to better support auto-vectorization with GCC and Clang -- with these changes, the compiler generates better code than the SIMD intrinsic versions and even takes advantage of newer instruction sets not implemented with intrinsics (e.g. AVX, AVX2, NEON, etc). Added OpenMP support in all CPU implementations. Implemented tiled CPU SOA algorithm. Numerous bugfixes over upstream as well.
  • CPUID
    Wrote a command-line utility for dumping/decoding information gathered with the x86 CPUID instruction.
  • clockperf
    Wrote a series of tests to identify platform performance or correctness problems with regards to timekeeping.
  • fio, flexible disk/network I/O tester
    Numerous contributions, most of which were a direct result of work at Amazon Web Services.

Education

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

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.
Scouting
  • 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,
    • Served as conclave vice chief in charge of publications on 3 separate occasions.
    • Served as conclave vice chief in charge of shows.
    • Achieved the highest honor in the Order of the Arrow, Vigil Honor.
    • NOAC Live! website technical teams in 2006 and 2009