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