I build decision science and optimization software.
By day, I am an optimization engineer, coder, and co-founder of Nextmv. I’m interested in hybrid optimization, decision diagrams, and mixed integer programming. My applications skew toward logistics for delivery platforms, with detours into cutting and packing. Lately I’ve been embedding a lot of trained machine learning models in optimization problems, and exploring applications of inverse optimization.
For the past several years, I’ve worked in real-time optimization for on-demand delivery, scheduling, forecasting, and simulation. I received a MS in Operations Research by night at George Mason University, then a PhD in the same department under the advisement of Karla Hoffman.
Appearances
This is a running list of talks I’ve given and am scheduled to give. It probably isn’t exhaustive. Some of them have slides or videos available.
2025 | May 13-15 | π | ODSC East 2025 | Predict & Prescribe: Combining forecasts with optimized plans |
Apr 8 | University of Luxembourg | Decision model, meet reality: Testing lessons from food logistics and delivery operations | ||
Mar 14-16 | πΒ π | INFORMS Computing Society Conference 2025 | Chair and organizer of the the solvers cluster | |
Mar 6 | π₯ | Nextmv Videos | Nextmv Hexaly Integration: How to run, test, and manage with DecisionOps workflows | |
2024 | Nov 7 | π₯ | Nextmv Videos | Nextmv ML/OR connectors: A price optimization example with Gurobipy, Gurobi ML, and Gurobipy Pandas |
Oct 21 | πΒ π» | INFORMS Annual Meeting 2024 | Solving the Weapon Target Assignment Problem with Decision Diagrams | |
Oct 3 | π₯ | Nextmv Videos | Uncertainty, ML + OR, and stochastic optimization: Demo and Q&A with Seeker creator | |
Jul 30 | π₯ | Nextmv Videos | Operationalizing HiGHS-based MIP models and Q&A with project developers | |
Jun 27 | π» | HiGHS Workshop 2024 | Symphonic HiGHS: Operationalizing next moves with DecisionOps | |
Jun 18 | π₯ | Nextmv Videos | Combining machine learning (ML) and operations research (OR) through horizontal computing | |
Jun 7 | πΒ π»Β π₯ | EURO Practitioners’ Forum | Three model problem: Combining machine learning (ML) and operations research (OR) through horizontal computing | |
Apr 14 | π | INFORMS Analytics Conference 2024 | The sushi is ready. How do I deliver it? Forecast, schedule, route with DecisionOps | |
Apr 10 | π₯ | Nextmv Videos | Getting started with DecisionOps for decision science models using Gurobi | |
2023 | Dec 6 | πΒ π§βπ»οΈΒ π»Β π₯ | PyData Global 2023 | Order up! How do I deliver it? Build on-demand logistics apps with Python, OR-Tools, and DecisionOps |
Nov 16 | π₯ | Nextmv Videos | Forecast, schedule, route: 3 starter models for on-demand logistics | |
Oct 17 | π | INFORMS Annual Meeting 2023 | Adapting to Change in On-Demand Delivery: Unpacking a Suite of Testing Methodologies | |
Sep 20 | πΒ π»Β π₯ | DecisionCAMP 2023 | Decision model, meet the real world: Testing optimization models for use in production environments | |
Aug 27 | π» | DPSOLVE 2023 | Implementing Decision Diagrams in Production Systems | |
May 11 | π₯ | Nextmv Videos | Several people are optimizing: Collaborative workflows for decision model operations | |
Apr 17 | π | INFORMS Analytics Conference 2023 | Decision Model, Meet Production: A Collaborative Workflow for Optimizing More Operations | |
Feb 16 | π₯ | Nextmv Videos | Decision diagrams in operations research, optimization, vehicle routing, and beyond | |
Jan 18 | π₯ | Nextmv Videos | In conversation with Karla Hoffman | |
2022 | Nov 16 | π₯ | Nextmv Videos | Decision model, meet production |
2020 | Oct 5 | π₯ | INFORMS Philadelphia Chapter | Real-Time Routing for On-Demand Delivery |
2019 | Oct 22 | π» | INFORMS Annual Meeting 2019 | Decision Diagrams for Real-Time Routing |
2017 | July 6 | πΒ π₯ | PyData Seattle 2017 | Practical Optimization for Stats Nerds |
Mar 5 | π» | Data Science DC | Practical Optimization for Stats Nerds | |
2015 | Dec 4 | π»Β π₯ | PyData NYC 2015 | Optimize your Docker Infrastructure with Python |
2014 | Jul 17 | πΒ π» | IFORS 2014 | A MIP-Based Dual Bounding Technique for the Irregular Nesting Problem |
2010 | Feb 19 | π₯ | PyCon 2010 | Optimal Resource Allocation using Python |
Articles, papers & patents
I’m an desultory blogger and intermittent academic. Most of my current and old posts live here. Some of my other content is below.
Software
Most of my work is proprietary, but some of it is open. Here are a few projects I’ve built or made significant contributions. I’ve also done some work on projects such as PuLP, MIPLIBing, and MDRPlib.
Active(ish) projects
- The Ruby Algebraic Modeling System is a simple modeling tool for formulating and solving MILPs in Ruby.
- ap.cpp is an incremental primal-dual assignment problem solver written in C++. It can vastly improve propagation in hybrid optimization models that use AP relaxations. I use it within custom propagators in Gecode and in Decision Diagrams for solving the Traveling Salesman Problem with side constraints.
- ap is a Go version of ap.cpp.
- TSPPD Hybrid Optimization Code and TSPPD Decision Diagram Code are both used in my dissertation. The former contains C++14 code for hybrid CP and MIP models for solving TSPPDs. The latter uses a hybridized Decision Diagram implementation with an Assignment Problem inference dual inside a branch-and-bound.
- TSPPDlib is a standard test set for TSPPDs. The instances are based on observed meal delivery data at Grubhub.
Defunct projects
- python-zibopt was a Python interface to the SCIP Optimization Suite. This was no longer necessary once PySCIPOpt emerged.
- Chute was a simple, lightweight tool for running discrete event simulations in Python.
- PyGEP was a simple library suitable for academic study of GEP (Gene Expression Programming) in Python 2.
Et al
In my spare time, I’m a cat and early music enthusiast, plus…
- a board member of Classical Uprising,
- a mentor of startup founders at the Roux Institute,
- chair of the INFORMS Membership Committee,
- and a cellist in the Southern Maine Symphony Orchestra.
Iconography
- π = abstract
- π§βπ»οΈ = code
- π¨οΈ = pdf
- π = registration
- π» = slides
- π₯ = video