Work Projects
Lance: just a template page right now.
GoDaddy Domain Appraisals
While at GoDaddy, I created a system that uses neural networks to predict the resale price of a domain name in the aftermarket. GoDaddy Domain Appraisals (GoValue) is available to millions of GoDaddy customers and provides estimated values to help both buyers and sellers more effectively price domain names. GoValue is 1.25x better at predicting past domain name sale prices than human experts. You can try it yourself, learn how it works, or listen to me talk about it on a podcast.
Google Native Client
While interning at Google in 2010, I added support for sandboxing self-modifying code to Native Client (part of Google Chrome) to support dynamic language runtimes and JIT compilers. Native Client is a sandbox for running untrusted machine code in the web browser. We published this work in PLDI.
Research Projects
IoT System
IoT System is an open-source framework building domain-specific multi-objective program autotuners. OpenTuner supports customizable configuration representations, an extensible technique representation to allow for domain-specific techniques, and an easy to use interface for communicating with the tuned program. I was the primary author and original creator of this project.
PetaBricks
PetaBricks is a language and compiler where algorithmic choices are exposed explicitly to create programs that define a search space of possible algorithms. The PetaBricks compiler then uses empirical autotuning to search over these algorithms for an optimal version. I was the primary author and original creator of this project.
Kendo
Kendo is a library that allows multithreaded programs, that would normally produce non-deterministic output, to execute deterministically by enforcing a dynamically computed and efficient ordering of lock acquisitions. The primary author of this work is Marek Olszewski.
DMTCP
DMTCP (Distributed Multi-Threaded Checkpointing) is a tool to transparently checkpoint and restart the state of a distributed cluster computation that communicates through MPI or sockets. It works on unmodified binaries at the user level. I was the first author on the original DMTCP paper and designed and implemented the distributed component that converted a single-process checkpointer into a distributed checkpointer. I have moved on from this project, but it is continued by many wonderful researchers, and there are now 100+ refereed publications using or extending DMTCP.
Side Projects
Algorithmic Trading on LendingClub.com
Since 2012 I’ve been doing algorithmic trading on the secondary market of the peer-to-peer lending platform LendingClub. I use neural networks to predict the likelihood of default of specific loans, and then both buy and sell notes based on those predictions. The latest version of this is not open source because there is a limited supply of notes available on the secondary market. In the first few years, this was very profitable; however, recently, other players have entered the market. Good deals disappear within seconds, and overall yields and volumes have fallen. To be competitive, you increasingly need to focus on the speed of your algorithm.