I write software.
- Performance optimization -- cache friendliness, SIMD, GPU, and all that.
- Concurrency (and its close cousin parallelism) -- Moore's law, etc. Unfortunately, also Amdahl's law.
- Machine learning -- interesting in its own right, and also a target-rich environment for optimization.
- Security and crypto -- I'm especially keen on solving entire classes of bugs (e.g. replacing seemingly never-ending
bug fountains like OpenSSL with safer equivalents).
- Distributed systems -- NUMA but more so?
- Type systems -- specifically, compile-time checked ones.
- Privacy -- this page, for instance, does not track you, and is served over HTTPS so your ISP can't inject
You can contact me on Twitter.
I write OSS to solve problems I've encountered, to practice building tidy APIs, or just to provide the world with an
implementation of some under-appreciated spec.
For more, see the rest of my OSS on BitBucket and GitHub.
- Rust Base64. The de-facto base64 implementation for the
Rust community, and an opportunity to practice low level optimization. Do you need multiple GiB/s of
base64? Maybe not today...
- Rust implementation of StreamVByte. StreamVByte is an approach to integer compression that is
SIMD-friendly with a C reference implementation. The Rust implementation is a way to explore Rust's SIMD support
as well as the ability to expose zero-cost abstractions. And, of course, if you need to read or write billions
of ints per second, it can do that too.
- Rust library for accessing the ELF auxiliary vector.
libc arcana? Unsafe navigation of the process stack? This library has it all.
- Java URL builder. The URL building landscape in Java
is at best uneven. This library does it correctly.