Member for 1 year, 1 month
Last seen more than 1 year ago
I'm an inveterate nerd who is intensely interested in computers and computing. I've touched on everything from circuit design at the transistor level, up through low-level languages like z80 assembly and even bare opcodes1, to modern compiled and interpreted languages. I even know a few things about general hardware design. I won't claim to be an expert on all of it, though! (Certainly not all at once.)
Currently, I'm really enjoying modern Python and TypeScript for my day-to-day programming, though I've also worked with C17 and Java 8 recently and am keeping an interested eye on Rust. And still periodically trying to cram Haskell into my head. 🙄
When not programming, I enjoy playing video games (in fact, that's how I got started with programming2) and doing video-game-related data analysis and writing video-game-related code. Yeah, I know.
1 What? My graphing calculator didn't have any non-volatile storage, I forgot my data cable that day, and the program I was writing crashed the whole thing… but I really wanted to finish the text wrapping algorithm I was working on (and didn't really have anything better to do), so I pulled up the Zilog opcode reference and started typing them in. I think I still have the sheets of paper I took notes on somewhere around here…
2 I was really bad at the original Civilization and wanted to cheat. It turns out that your civ's cash reserves are stored as a signed 16-bit integer at a fixed offset in the save file. Of course, before I could take advantage of that information, I had to learn what hexadecimal was and how to use a hex editor. Oh, and also the fact that Civilization didn't have any overflow protection on that value, so if you set your money to 0x7fff while making a profit, the value wraps around to negative the next turn, and Bad Things happen. To this day, I remember that 0x7530 == 30,000.