Full-stack developer by day. Systems and graphics programmer by obsession.
I ship production web at Vasion, and on my own time I build a Vulkan engine from scratch and work through Knuth.
I like knowing what happens underneath the abstraction. At work that means building fast, maintainable marketing sites in Next.js, TypeScript and Storyblok. Outside work it means going the other direction: GPU pipelines, memory, and the algorithms that everything else rests on.
| Frontend and CMS | React, Next.js, TypeScript, styled-components, Storyblok, GSAP |
| Systems and graphics | Modern C++, Vulkan, SDL2/SDL3, ECS architecture with EnTT, CMake |
| Tooling | Neovim (Lua), tmux, Linux, shell automation, CLI utilities |
| Hardware | Arduino, embedded systems, electronics hobby projects |
A passion project written in C++ on native Ubuntu & Metal. No engine, no wrapper library, just the API and a lot of validation-layer errors. So far I have working through:
- Swapchain creation and recreation on resize
- Dynamic rendering (no render passes) and pipeline layout
- Memory allocation with Vulkan Memory Allocator, wrapped in RAII types
- Depth buffering: depth image, depth test, per-frame clear and layout transitions
- Next: 3D vertex positions, textures and descriptors, model loading, lighting
I keep Do keep AI notes/documentation on every step I complete and or need redone, including the mistakes worth remembering, because that is where most of the learning happens.
Fully on Neovim 0.12 with native LSP, blink.cmp, Snacks, DAP debugging, and a Glove80 split keyboard layout to match. Take what you like.
I use AI as a daily collaborator, and I try to be deliberate about it:
- Claude Code in the terminal for exploring unfamiliar code, refactors, and migrations
- Parallel agents in separate git worktrees and tmux panes, so one task can't trample another
- In-editor assistance through CodeCompanion and inline completion
- My rule: AI drafts, I review. If I can't explain a change then is doesn't ship. Also no AI can touch my Engine. Hard rule to keep my skills from atrophy.
The Art of Computer Programming by Donald Knuth, Volumes 1 through 4A:
- Fundamental Algorithms
- Seminumerical Algorithms
- Sorting and Searching
- Combinatorial Algorithms, Part 1 (4A)
Slow reading with a pencil. It changes how I think about code more than any framework has.
- C++ Primer (5th Edition), Lippman, Lajoie, Moo
- Professional C++ (6th Edition), Marc Gregoire
- Effective C++ (3rd Edition), Scott Meyers
- The C++ Standard Library (2nd Edition), Nicolai Josuttis
- Game Engine Architecture (3rd Edition), Jason Gregory
- Design Patterns, the Gang of Four
- Algorithms, Panos Louridas
Got a recommendation, especially on graphics or compilers? I'm open to suggestions.
Always be a student.
"The most powerful tool a developer has is not their code, but their willingness to delete it."
Let's build something extraordinary together.





