Skip to content


Old blog (< 2022)

I used to maintain different variants of my blogs over the years (now defunct), and I try to restore old posts from the Wayback Machine when I see that they're still being visited. For now:

  • Xar (2018): a small post on how to use the Facebook XAR format for packaging Python projects
  • Terraform (2017): a post on Terraform best practices (outdated!)

New blog

Don't miss a post! Subscribe to my blog's RSS feeds! RSS Icon

Feed for created posts or for created or updated posts

Power of two random choices

Introducing this pragmatic load balancing algorithm and describing a real world use case

From Demucs to demucs.cpp

How I adapted the Demucs neural network PyTorch inference in C++ for WebAssembly, with a more complicated architecture than Open-Unmix

From Open-Unmix to umx.cpp

How I adapted the Open-Unmix neural network PyTorch inference in C++ for WebAssembly with a custom streaming LSTM, mixed-integer quantization, and Demucs waveform segmentation

Speed is the product

Exploring SIMD and auto-vectorization in WebAssembly to accelerate the C++ Eigen demucs.cpp code in Post 2 in the series

Ignorance is BLISs

Exploring different BLAS library backends (OpenBLAS, AOCL BLIS, Intel MKL) for C++ Eigen project demucs.cpp on my AMD Zen 3 5950X. Post 1 in the series

How I Python

Describing my Python dev setup (virtualenvs, etc.) as someone who has had to work with virtualenv/pip and conda side-by-side