BLOGRESUMEPORTFOLIOGALLERYinit.elGitHubYouTube
William Gooch
they | them

Game developer
Systems programmer
C++ enthusiast


wgooch2000@gmail.com
Albuquerque, NM
 I am a low-level systems programmer interested in ecological sustainable computing, zero-overhead abstractions, and reimagining solutions to old problems.
 I am enthusiastic for low-level systems at the level of Linux kernel syscalls, inline assembly, SIMD, data-oriented data-structures, and memory allocators. I also love template metaprogramming and designing other modern abstractions, as well as designing generative game content.
 I often nerd-out over C++ standards proposals, new tools, text editors, terminal emulators, keyboards, and fanfiction.
Skills
  • C++20 (and older standards)
  • 2D and 3D asset creation
  • Designing game editors
  • Introspecting and optimizing compiler code-gen, profiling, using static analyzers, debugging segfaults, introspecting heap, stack, and registers, ptrace
  • Git (pull requests, branch conflicts, reflog)
  • Modern CMake
  • Vulkan 1.2 and DirectX 11
  • GDB, rr, RenderDoc, NSight Graphics, and Cutter debuggers
  • Unity and Game Maker Studio
  • Assembly literacy, dissassembling, bindiffing
  • GNU Emacs and Visual Studio 2019
  • Compute, vertex, fragment, and geometry shaders
  • Basics of GLSL, HLSL, and Slang
  • Linux kernel syscalls, libC, and GNU/Linux systems
  • Multiple C++ compilers and STL implementations
  • Researching and navigating large source trees (Linux, Musl, Mesa)
  • Shell scripting (Fish, Bash)
  • Pull Requests

    liblava, Vulkan framework
  • Made vertices and meshes generic to optimize non-float use-cases
  • Supported the VkPhysicalDevice2 extension
  • Made configurable camera controls
  • Education

    B.S. Game Development

    Full Sail University

    3300 University Blvd, Winter Park, FL 32792

    Projects

    libCat non-POSIX C++20 runtime
  • Optional and variant templates
  • Linux syscall wrappers
  • SIMD
  • Memory allocators
  • Template facades
  • Move semantics support
  • File and socket I/O
  • Threads
  • Unit testing
  • Superstar Game Suite framework and editor
  • Cutscene dope sheet editor
  • Multi-layer tile editor
  • Collision and generative graphics for staircases of any orientation, width, height, length, and steps
  • Cinematic weights and tweening
  • NPC dialogue systems
  • Level serializing/deserializing
  • Poly-building tool
  • 2.5D platforming
  • C++ pixel-art raytracer
  • Spatial hash data-structure, optimized for 2.5d raytracing
  • Branchless AABB-ray intersection
  • Normal maps, depth maps, color maps
  • Point and ambient lighting
  • DirectX 11 forward renderer
  • Time-based animated geometry
  • Rendering 3D geometry with normal maps
  • Sorting models to render semi-transparency
  • Vertex, fragment, and geometry shaders
  • Directional lighting
  • First-person flying camera