Hello, I’m Nathan!
- Email: [email protected]
- GitHub: natecraddock
I work as a software engineer maintaining internal software written in JavaScript and PHP. For personal projects I enjoy writing code in Zig, Lua, C, and Python. I regularly contribute to open source. Outside of computery things I enjoy hiking, running, reading, and piano.
Below are things I have written and projects I have worked on.
Projects
Reckless Drivin
I’m working on a rewrite of the Macintosh game Reckless Drivin’. Jonas Echterhoff shared the original source code in 2019, and I have been working on my rewrite ever since. Despite starting with the original source code, the project has involved a lot of reversing to understand the binary format for the game assets. I occasionally write about what I have learned and share progress updates:
- Unpacking LZRW-compressed game assets from resource forks
- Rewriting Reckless Drivin’ in Zig
- Resource decryption and generating registration codes
- Deserializing resources with Zig comptime metaprogramming
- We have pixels! And some undefined behavior…
- Color lookup tables led me to realize I was using incomplete game data for several years
zf
zf is a fuzzy finder that is optimized for filtering filepaths.
Ziglua
Other projects
- workspaces.nvim and sessions.nvim: simple workspace and session plugins for neovim.
- projectile: a Blender addon to apply initial velocities to rigid body objects.
- Blender: I participated in the Google Summer of Code in 2019 and 2020 improving the outliner editor. My commit history shows other areas I contributed to.
Writing
- macOS doesn’t like polling /dev/tty
- Writing to the macOS clipboard the hard way
- Some thoughts on Zig testing
- My thoughts on Vim, terminals, and GUI editors
- Catching undefined behavior in Zig cc
- Exploring the inner-workings of custom Git commands
- Consistency and precision in Zig’s type system
- Zig naming conventions
- Running a Hugo server on local and public networks
- Funny variable names
- Light The World sheet music