That's brave! I've thought about doing the same thing in Rust, and I saw someone else's (Andrei Karpathy?)'s implementation in... C, too, I think, but not sure about that. I think it's a great project, and you're bound to come out the other end with a ton of valuable knowledge.
Thx Nate, Rust will probably save you a ton of headache with things like index arithmetic on memory, just today I wrangled with my wrong accessing to weights and biases, but I guess to squeeze performance once would need to use some unsafe {}?