My research focus is on modeling and solving large-scale optimization problems and on finding and exploiting structure in high dimensional data, with applications in marketing, finance, demographic modeling, and medical informatics.

This page collects papers, slides, talks, and high quality software implementations for a few of the projects I've worked on.

low rank models

Generalized low rank models (GLRMs) extend the idea behind principal components analysis (PCA) to embed tabular data sets with heterogeneous (numerical, Boolean, categorical, and ordinal) types into a low dimensional space, providing a coherent framework for compressing, denoising, and imputing missing entries.




  • julia (fully featured, serial or shared memory parallel)

  • H2O (fully featured, distributed memory parallel)

  • python (prototype, serial)

  • spark (prototype, distributed memory parallel)

talks and slides


Convex.jl is a Julia package for Disciplined Convex Programming (DCP). Convex.jl makes it easy to describe optimization problems in a natural, mathematical syntax, and to solve those problems using a variety of different (commercial and open-source) solvers. Convex.jl is one of the top ten packages in the Julia language for technical computing, and is a member of the JuliaOpt organization, which curates high quality optimization software.



talks and slides