Research

To better understand the perspective I bring to research problems, it may be helpful to begin with a brief history.

I started under the great Sergey Denisov in approximation theory, particularly orthogonal polynomials. We generally applied techniques related to harmonic analysis (e.g. Steepest descent methods for Riemann-Hilbert problems, commutator estimates for singular integral operators, and classical martingale and probability theory as practiced in randomized Fourier analysis). My first three papers were in this area, and much more could be written with the work we did; my dissertation can be found here, though I would advise against reading it; Andreas Seeger once told me to never read your dissertation after you've defended it, advice I have followed to the letter.

I left pure mathematics with the intention of getting into machine learning, as I felt the mathematical lessons I had learned so well would be necessary but not sufficient to attack the major scientific problems of the 21st century. I was in graduate school as the major revolution in deep learning was gathering steam, leading me to covet the capabilities of deep learning systems which I could not see a path to replicate or understand mathematically. I began to believe that these techniques, simple and poorly-understood though they are, might allow us to begin operating in a fundamentally new scientific mode: synthesizing rather than analyzing. In other words, building faithful models of highly complex, real world phenomena, _without_ necessarily being able to break them down into constituent, loosely-coupled components.

In mathemtaical analysis, we often operate by breaking down objects into groupings via which we don't 'lose too much' when we comprehend these components independently, and then 're-stitching' them together (take, for example, summing the alternating harmonic series by grouping adjacent terms). We spend much effort and brainpower devising problems and methods by which this fundamental approach may be applied. It became interesting to me (something of a conjectured bitter lesson of mathematics), to consider the idea that analytical methods for real world problems may be best represented implicitly rather than explicitly--by augmenting a machine with the capacity to perform the task of breaking down and re-stitching, but without specifying either the manner in which these operations must be performed or indeed that they must be performed at all. To fully explore this idea, which I still anticipate will take a lifetime of work, I felt it was necessary for me to augment my skills with the capacity to truly engineer.

My first step on this path was a job with the Milwaukee Brewers, learning the basics of building and deploying ML systems in the real world. From there, I moved to Google as a software engineer (SWE), with a focus on federated learning and differential privacy, becoming a core developer of TensorFlow-Federated (TFF), particularly in the language, compilation, and runtime components. For this, I needed a crash-course in compilers and functional programming, which I acquired via the famous "Dragon Book" and Benjamin Pierce's Types and Programming Languages. At the same time, the common practice at Google of 'engineers researching and researchers engineering' brought me into contact with foundational ideas of machine learning that I had been unfamiliar with, allowing me to learn-by-doing methods like dual-based optimization, algebraic methods in machine learning, and traditional analysis of iterative optimization methods.

The brief history above is merely intended to reflect my belief in consistently expanding one's knowledge base and the desirability of always remaining a beginner at something--at least to stave off hubris. I will not attempt to keep the research section of this site up to date with my work; Google Scholar will probably be the best place for tracking my publications. I will rather focus on extracting key themes of my research, and potentially commenting on my rationale for taking certain approaches or focusing on certain problems, in addition to reserving the right to discuss my interpretation of broader trends or practices in the ML community.