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.

2024 Dec 4 ORMS Today Ops Researchers, It’s Time to Git with the Flow
Mar 26 πŸ–¨οΈ USPTO Fast computational generation of digital pickup and delivery plans describes algorithms for fast on-demand routing in pickup and delivery problems.
Oct 31 Nextmv Blog 5 things software teams should know about operations research and decision science
Oct 17 Nextmv Blog New integration: Bring your Hexaly decision model to Nextmv
Mar 7 Nextmv Blog Nextmv Gurobi integration: Build, test, deploy decision models using Gurobi and DecisionOps
Feb 13 Nextmv Blog CI/CD for decision science: What is it, how does it work, and why does it matter?
Feb 1 Nextmv Blog New decision apps, an open source decision model hub, and an individual plan
2023 Dec 26 πŸ–¨οΈ USPTO Prediction of travel time and determination of prediction interval describes technology for predicting travel times for on-demand delivery platforms.
Dec 19 Nextmv Blog Shift scheduling optimization: Generating shift types, planning for demand, and assigning workers
Jun 13 πŸ–¨οΈ USPTO Runners for optimization solvers and simulators describes technology for creating and executing Decision Diagram-based optimization solvers and state-based simulators in cloud environments.
2022 Apr 20 Nextmv Blog You need a solver. What is a solver?
2021 Mar 2 Nextmv Blog Binaries are beautiful
2020 Sep 11 πŸ–¨οΈ Operations Research Forum MIPLIBing: Seamless Benchmarking of Mathematical Optimization Problems and Metadata Extensions presents a Python library that automatically downloads queried subsets from the current versions of MIPLIB, MINLPLib, and QPLIB, provides a centralized local cache across projects, and tracks the best solution values and bounds on record for each problem.
Mar 2 Nextmv Blog How Hop Hops
2019 May πŸ–¨οΈ Operations Research Letters Decision diagrams for solving traveling salesman problems with pickup and delivery in real time explores the use of Multivalued Decision Diagrams and Assignment Problem inference duals for real-time optimization of TSPPDs.
2018 Oct 2 πŸ–¨οΈ Optimization Online Integer Models for the Asymmetric Traveling Salesman Problem with Pickup and Delivery proposes a new ATSPPD model, new valid inequalities for the Sarin-Sherali-Bhootra ATSPPD, and studies the impact of relaxing complicating constraints in these.
Sep 13 Grubhub Bytes Decisions are first class citizens: an introduction to Decision Engineering
Sep 2 πŸ–¨οΈ Optimization Online Exact Methods for Solving Traveling Salesman Problems with Pickup and Delivery in Real Time examines exact methods for solving TSPPDs with consolidation in real-time applications. It considers enumerative, Mixed Integer Programming, Constraint Programming, and hybrid optimization approaches under various time budgets.
Apr 10 πŸ–¨οΈ Optimization Online The Meal Delivery Routing Problem introduces the MDRP to formalize and study an important emerging class of dynamic delivery operations. It also develops optimization-based algorithms tailored to solve the courier assignment (dynamic vehicle routing) and capacity management (offline shift scheduling) problems encountered in meal delivery operations.
2015 Jan 5 The Yhat Blog Currency Portfolio Optimization Using ScienceOps
2014 Nov 10 The Yhat Blog How Yhat Does Cloud Balancing: A Case Study

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…

Iconography

  • πŸ“„ = abstract
  • πŸ§‘β€πŸ’»οΈ = code
  • πŸ–¨οΈ = pdf
  • 🎟 = registration
  • πŸ’» = slides
  • πŸŽ₯ = video