A focused set of projects that show product thinking, backend analysis, graph reasoning, and lower-level C systems work.
Dependency AnalysisFeaturedPublic project
DepGraph
Proof of codebase analysis, editor diagnostics, and developer-facing signal design.
Problem
Large codebases become risky when dependency structure is invisible; developers need to know which files create cycles or carry broad downstream impact before they change them.
Built
Built a VS Code-oriented dependency analysis surface that parses project structure, models reach and cycles, and turns graph findings into editor diagnostics and navigable project context.
Result
Reduces detached debugging by putting dependency-risk signals directly in the editor.
Source proof
hstephan23/dep_graph public repository
Signal
High-impact file diagnostics
Surface
VS Code extension feedback
Judgment
Noise control and graph interpretation
Tech
TypeScriptPythonVS Code ExtensionGraph Analysis
TakeawayDependency tools earn trust when every warning connects to a concrete review or refactor decision.
Proof of C++ gameplay systems, frame-order discipline, collision boundaries, and playtest-driven scope control.
Problem
A shooter looter only works if moment-to-moment combat, loot pressure, extraction timing, and raid consequences feel coherent; the hard part is keeping those systems readable while the prototype grows.
Built
Built a playable C++/raylib extraction shooter loop with WASD movement, mouse aiming, pistol and shotgun behavior, reloads, dash timing, grenades, enemy types, pickups, room transitions, extraction, and an in-memory stash.
Result
Supports a playable three-room extraction loop with weapons, grenades, pickups, enemy fire, room transitions, and extraction decisions.
Source proof
hstephan23/2D_shooter_looter public repository
Signal
Explicit C++/raylib frame order
Surface
Playable extraction shooter loop
Judgment
Playtest-first scope control
Tech
C++raylibCMakeGame Loop
TakeawayGameplay systems become easier to trust when the frame order is explicit and every system has a narrow reason to mutate state.
Proof of lower-level C practice, state boundaries, timing, and explicit lifecycle control.
Problem
Lower-level game code breaks down when timing, input, rendering, state updates, and shutdown are blurred together; the project needed a readable loop with explicit system boundaries.
Built
Built and organized the C gameplay loop across input handling, map generation, frame rendering, timed monster movement, move resolution, multiplayer branches, and cleanup.
Result
Improves workflow reliability by keeping input, render, timer, multiplayer, and shutdown paths explicit.