1. About
  2. 💡 Blog
  3. 2025
    1. Array Cast Episode
    2. Why UB is Good
    3. Try an SMT solver
    4. My Ideal Array Language
    5. 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. The Unreasonable Optimizability of Functional Array Languages
  10. Pay Me Now or Pay Me Later
  11. Compilers are like Fish
  12. Career Journey
  13. Monadic Operations on MLIR's FailureOr
  14. You can vectorize without a vector length?
  15. Why is functional programming such a great fit for Compilers?
  16. What Would It Take to Build an MLIR-Based OCaml Compiler?
  17. The Simplest Hindley-Milner Type Checker
  18. ☕️ Coffee
  19. 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