Noah Stolk
- Senior software engineer: low-level systems, engines, graphics and developer tooling
- 8 years of professional experience
- 19 years building games and engines
I'm a self-taught software engineer, and I build things from the ground up. From late 2024 to late 2025 I worked full time on Shrapnel Sentinel, a 3D first-person shooter released on Steam in July 2026. I wrote all of its code, as well as the engine it runs on: rendering, collision, content pipeline, deterministic replay, netcode and anti-cheat.
I learned low-level programming in C#, at the performance-critical end: memory layout and allocation behaviour, Span<T>, unsafe code, pointers and function pointers, SIMD, Native AOT, and profiling.
I'm currently learning modern C++, and I'm interested in Rust and C as well.
Next to that I build developer tooling, such as Roslyn source generators and analyzers, MSBuild, and static code analysis.
Contact
Games and engines
Shrapnel Sentinel (2026)
A 3D first-person shooter in C#, running on a custom engine, released on Steam in July 2026. I worked on it full time from late 2024 to late 2025 and was the only programmer on the project; two friends did all of the art, sound and music.
- Custom OpenGL 3.3 renderer and GLSL shader pipeline, mesh-particle rendering, and in-engine editors for skeletal animation and particles (ImGui)
- Own math library, and collision detection and resolution using spatial grids
- Fixed-timestep simulation decoupled from the render framerate; slow motion works through time scaling without changing the deterministic outcome
- Fully deterministic simulation with a replay system that supports seeking and fast-forwarding
- Custom content pipeline: parsers for .obj/.tga/.wav, plus purpose-built binary formats for levels, particles, animations and other game data; audio engine on OpenAL Soft
- Steam integration (auth, achievements, cloud saves), self-hosted leaderboards secured with Steam auth, and anti-cheat
- Native AOT, function pointers, entity pooling and Roslyn source generators to keep performance up on older hardware
More about the game at shrap.nl.
Before that
I started making games at the age of 10, in 2007, using GameMaker; several of them ended up on the front page of yoyogames.com. Since then I've released a long stream of free games, and I've been writing my own 3D engines since 2017. In 2015 I co-programmed Void Invaders with a friend, my first commercial release on Steam.
Along the way I've spent a lot of time reverse-engineering binary formats from other games and 3D software, and releasing the resulting parsers and modding tools. Most of my hobby work is pure C# with no external dependencies: level editors, a 3D timeline animator, and tooling libraries.
Developer tooling
Open-source, zero-dependency Roslyn source generators, published on NuGet:
- union-struct: generates memory-efficient discriminated unions as value types, with data that can be passed to
refparameters - enum-generator: generates extension methods and utilities for C# enums
Work experience
Eight years of professional .NET work: a year of freelance projects, then full-time engineering roles since late 2019. I designed and maintained internal library ecosystems used across teams, introduced static code analysis with custom Roslyn analyzers to keep those teams consistent, and led architectural decisions on platforms I then worked in for years. I care about clarity, correctness and long-term maintainability.