- About
- 💡 Blog
2025
- Try an SMT solver
- My Ideal Array Language
- My Values
2024
- Debugging in Parallel
- Linux Perf Notes
2023
- Variable Length Arrays
2022
- BQN and Reflections on the Joy of Programming
- LLVM Development on NixOS
- CUDA 101: Matrix-Vector Product
- Debugging Performance in Compilers
- std::expected And Why It's Awesome
2021
- GTest Type and Value Parameterized Tests
- Spack for Package Development Part 3
- Clang Tools for Checking Domain-Specific Errors
- Spack for Package Development Part 2
- Spack for Package Development Part 1
- A Look at std::mdspan
- Using the Most Popular Programming Languages of the '60s
- One Problem, Four Languages, Two Paradigms
- BQN and CUDA C++ LeetCode Solutions
- 🚧 WIP 🚧
- Array Cast
- The Unreasonable Optimizability of Functional Array Languages
- Pay Me Now or Pay Me Later
- Compilers are like Fish
- Career Journey
- Monadic Operations on MLIR's FailureOr
- You can vectorize without a vector length?
- Why is functional programming such a great fit for Compilers?
- What Would It Take to Build an MLIR-Based OCaml Compiler?
- The Simplest Hindley-Milner Type Checker
- ☕️ Coffee
2023
- Best Espresso In Portland
- Sterling
- Deadstock
- Barista
- Never Coffee
- Upper Left Roasters
- Abba
- Rose City Coffee
- Sterling
- Superjoy
- Beginners Guide
- Seattle Trip Report
- Adapt Coffee
- Coava
- PDX Espresso Research
- Nossa Familia Coffee