My personal blog where I delve into whatever seems interesting! You can find a history of my posts here.

Solving Soma

Posted on February 1, 2026

Years ago in New York City’s Bryant park I came across a pop up store that sold puzzles, one of which was this wooden cube. I didn’t know what it was back then, but simplicity of the puzzle and the feel of the wooden blocks was attractive to me and so I bought it.

Matrix Profiles

Posted on March 26, 2025

Lately I’ve been thinking about time series analysis to aid in Reflect’s insights features. Towards this end, I’ve had a Hacker News thread about anomaly detection bookmarked in Later. I finally got to looking at it and there was a comment that mentioned the article left out matrix profiles, which I had never heard of, so I decided to look into them.

Exploring Dataflow Analysis in the Rust Compiler

Posted on June 12, 2023

Recently I’ve been working in static analysis land and as a part of that have been familiarizing myself with data flow analysis. I look at a fair amount of MIR and so decided to delve into the rustc_mir_dataflow crate to see how these things are handled in the rust compiler. There is a helpful introduction to this topic in the rustc dev guide, and this post fleshes things out a bit.

Generic Recursion Applied to Algebraic Graphs

Posted on July 31, 2022

It would be such a shame if I couldn’t combine Rust, recursion schemes, and graphs into one blog post (with the added bonus of leaving out C++). So here we go!

Discovering I've Shot Myself in the Foot with std::async

Posted on March 4, 2022

I was recently looking into implementing some speculative execution functionality using std::async; based on some seed data, the goal was to asynchronously run a compute-intensive calculation where the result may or may not be needed at a later time. When new seed data became available, it was an indication that any in-progress computation should be terminated early and that its result be considered defunct.

Tensor Chain Contraction with Refolds

Posted on August 9, 2020

In a previous post we utilized recursion schemes in prototyping a genetic algorithms library. I wanted to look more into their use cases and was happy to discover that they could even be leveraged for dynamic programming.

Prototyping a Small Genetic Algorithms Library in Haskell

Posted on November 15, 2019

This post assumes a basic understanding of genetic algorithms and the terminology associated with them, as well as a cursory understanding of recursion schemes; resources for both may be found scattered within the post. All source code can be found here.