Welcome!

I help people and companies solve difficult problems using Machine Learning and Optimization. Read about my services here.

I write about themes in ML:

  • Iterative algorithms are often given in papers in a form that is easy to understand and copy & paste into an implementation, but hard to maintain and reuse. I wrote some posts about implementing them in Rust via a streaming abstraction.
  • Sensitivity of algorithms to (even just a few) outliers is a common ML/statistics foot-gun. It hurts generalization, makes in-sample performance unstable (therefore harder to debug), and creates data-quality work. This is often caused by the very common squared error loss which is not easy to give up on, because it leads to such nice algorithms! we proposed an approach to reweight data (which is compatible with many algorithms) that enjoys (provably) good statistical and algorithmic properties.