Steven Noonan
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/MariaDB, 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 |
February 2024 -- October 2024 |
Principal Software Engineer, full-time position
|
- Improved stability and performance of
customer-facing Terraform modules and infrastructure.
- Developed new end-to-end testing infrastructure,
with greater visibility and insight into: long-tail runs, distinct failure
modes, cloud service provider reliability, product reliability, etc.
- Designed and implemented new product release qualification
procedures and requirements, focusing on customer experience, minimizing
customer frustration.
- Implemented new TCMS infrastructure using Qase
(migrating from TestRail) for cost-saving and reliability reasons.
|
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.
|
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
|