Resume#
Programming#
Tools#
I utilize open-source software for development.
Languages: C#, Python, Markdown, reStructuredText, HLSL, GLSL, and PowerShell
Version control: Git (GitHub, GitLab) and Subversion (TortoiseSVN)
Source code editors: Notepad++, Visual Studio Code, and PyCharm
Project management: Redmine
Documentation generators: MkDocs and Sphinx
Research and development: Zotero, Logseq, and draw.io
Other: PowerShell Terminal
Learning: Rust
Experience#
Project Reality: Battlefield 2#
- Date:
2021 - Present
- Link:
As a developer for Project Reality: Battlefield 2, I:
Collaborated with other developers on new features
Assisted new contributors with development
Published development blogs to update the player community on game progress
Utilized Redmine for tracking changes and updates, and TortoiseSVN for version control
Implemented various features, including:
- HLSL updates
Rewrote shader codebase to Shader Model 3.0
Ported shader assembly to programmable shaders
Rewrote post-processing suppression, thermal pixelation, and water reflection
- HLSL implementations
16x anisotropic filtering support
Complete per-pixel lighting
Distance-based fog
Logarithmic depth buffering
Offmap terrain procedural sampling
Valve Software’s Half-Lambert Lighting
- Python implementations
Python-generated dynamic AI view distance setting
Reformatted codebase for PEP-8 standards
Extended bot loadout to spawn with standard and alternate kits
Optional randomized bot loadout kits via Python
Maintained and contributed to several related projects, including:
- RealityDocs
Ported the team’s modding documentation into a static documentation site
- RealityShaders
Maintained an open-source repository for Project Reality’s updated shaders
- RealityUDL
Updated Project Reality’s language support for Notepad++
Projects#
ReShade Shaders#
- Date:
2020 - Present
- Link:
I created CShade, a library of image and video processing shaders, which includes:
AMD FidelityFX ports
Anti-Aliasing
Camera effects: Autoexposure, Dual-Kawase bloom, lens effect, and vignette.
Color conversions: Chromaticity space, polar coordinate space, and grayscale.
Local Normalization: Census Transform and Local Contrast Normalization.
Convolutions: Gaussian blur, edge detection, and sharpening.
Motion estimation: Hierarchical Lucas-Kanade optical flow.
Post-processing: Backbuffer blending and letterbox.
Video effects: Datamoshing, motion blur, and vector lines.
ReadShade#
- Date:
2024 - Present
- Link:
I launched a documentation site for ReShade-related support using MkDocs and collaborated with Depth3D to create a documentation site.
PythonicEngine#
- Date:
2023
- Link:
I spent a weekend in 2023 following Coder Space’s Python 3D Engine Series and learned about:
Adding geometry, basic lighting, and a camera to a scene
Best practices: mipmapping, gamma-correction, and code refactoring
Fundamentals of the OpenGL pipeline
Using PyGame, ModernGL, and PyGLM to make an engine
Differences between Vertex Buffer Objects (VBOs) and Vertex Array Objects (VAOs)
I also learned about code refactoring through polymorphism, creating a skybox, plane-based skyboxing, and smooth shadowmapping, and used Sphinx to generate documentation for the project.