About Me
Catherine West - kyren@kyju.org
I usually go by "kyren" or "kyrenite" on the Internet. I am pretty shy, and I'm usually not on any social media, so good luck finding me!
You might have seen my RustConf 2018 Keynote speech, that's me, being very awkward on stage!
I used to be the tech lead at Chucklefish, and I was there when the company started and we were all just weirdos on IRC.
Before that I worked as an analyst for the US Department of Defense in a job that was way less exciting than it may have sounded at the beginning of this sentence.
Open Source - GitHub
I currently have a few interesting irons in the Open Source fire:
-
piccolo - A weird stackless Lua interpreter. Nearly 100% safe Rust,[1]If you ignore
gc-arena
surprisingly capable, stackless,[2]You can interrupt Lua and callbacks at any point because they don't use the C / Rust stack and did I mention weird?[3]Lua tasklets can have their own "race conditions" -
gc-arena - A safe (to use) Rust garbage collector. The collection part is not new, it's boring and respectable.[4]Proper incremental collection, supports finalization and ephemeron tables, a decent garbage collector for real, big girl projects. Uses generative typing[5]"Generative" refers to the way they generate anger. to achieve zero-cost
Gc<T>
pointers isolated to a single "arena". Used by Ruffle so it can't be that terrible! -
webrtc-unreliable - I hacked "webtransport" into browsers before there was webtransport.[6]I did steal the idea from someone else though.
-
turbulence - A networking library for games, takes an unreliable, unordered stream of datagrams and multiplexes it into many independent streams with optional reliability and ordering.
-
hashlink - What happens when a mommy[7]or daddy
HashMap
and a daddy[8]or mommyLinkedList
love each other very much. Inhereted from Gankra, who inherited it from the pre-1.0 Rust stdlib. last time I checked it was in the dependency tree of Firefox so I should probably pay attention to it.
Hire Me
I'm currently open for the right sort of work! I'm comfortable in a ton of languages and environments, and despite being a huge fan of Rust (and doing most of my open source work currently in Rust, and being a RustConf keynote speaker), I promise I'm not a a language zealot or anything.[9]Anything around programming is a pretty silly thing to be a zealot about. It matters much more to me what the work is than what language I might be working in.[10]Besides, I've never actually had a job where I've worked in only one language.
I'm a generalist who's kinda bad at selling herself. I've worked in games, scientific simulation, networking, print media... I've done app development, game development, backend web development, bad frontend web development... I've been the build engineer, the C++ expert, the infrastructure person, the networking expert... and I'm always wearing several of these hats at the same time. I like working in small teams / small companies / startups that need somebody that doesn't actually mind having five jobs at once.
I'm a good fit when you have tasks that cut across disciplines. I'm a good fit
when you just need somebody to make something work and the answer isn't going
to be found on Stack Overflow. I was (maybe?) the first person to get the Rust
compiler and stdlib working on the PS4, Switch, and XBox One, and I did it in
about two weeks. I was the lead programmer on a video game that sold 4 million
copies. I know how compilers and language runtimes work, I know how to use
strace
, I can do serviceable pixel art, I know how a rendering pipeline
works, I can write an okay 3d physics engine, I know how to read a scientific
paper, I can do public speaking. I like to think that I know what I'm good at, I
know what I'm not so good at, and I know what I can be okay at if you give me
a couple of weeks.
I'm a nice person and (I think?) easy to work with, and I try not to take technical things too seriously or have a big head about anything. I'm open to remote work or hybrid / on-site if you're in the Denver / Boulder area, so if you like me or like my writing, let's talk!
Here's a bunch of bubbles with technical keywords in them. This is not at all an exhaustive list of everything I've used / done in a professional context, I can provide a more detailed resume upon request.