I’ve been involved in dozens of projects in many capacities, from lead scientist to software developer to visualization specialist. I have also managed many teams, though I find hands-on work more rewarding.

In terms of tools, I’ve worked a lot in Java, along with a bit of JS/HTML/CSS, though I spend most of my time now in Python or R, and using other tools like Bash or SQL when appropriate. I love learning new languages.

Some samples of my work are provided, with a few redactions to protect confidential client names and/or implementation details.

Simulation Models

Simulating Patient/Doctor/Insurer Populations

In this agent-based modeling example, developed for a leading Pharma company, I simulated decision making in a population-level model of doctors, patients and insurers in relation to the consumption and prescribing of migraine drugs.

In addition to the scientific work, I led a team to build a client-facing simulation tool wrapping the model 

Working in close coordination with subject-matter specialist MDs, I designed a system that combined customizable decision trees with detailed data about drug effectiveness and side effects, along with information about patient and doctor populations.

Decision trees were used to encode models of prescriber behavior, based on information about the patient and the drugs.

At the model’s core was a population of Migraineur agents, divided into segments. Each agent was initialized with Comorbidities, as well as demographic data like gender, age and income level, all of which, combined with drug costs data, influences migraineur and perhaps prescriber decisions.

Income was also used in an initial exploration of the influence of payers.

The main simulation metrics were presented as interactive charts, as seen at right.

In order to understand properties that are emergent at a population level, I find it’s often important to look under the hood, and understand dynamics at the level of the individual.

Using the Migraineur Microscope (left) we went beyond aggregates by looking at individual migraineur trajectories

Manpower Planning for the US Navy

This was a decision-support tool incorporating models of decision-making in relation to promotions within, and separations from the Navy.

We built a simulation of the Navy and individual sailors incorporating key factors that model sailor behavior within the context of Navy processes and operations. Agent behavior factors included:

  • Demographics
  • Effects of Unemployment
  • Monetary incentives

    Decision support tools use the Agent-Based Simulation engine to provide a platform for analyzing the effects and interactions of Navy policies and procedures.  Capabilities include:

    • Policy simulation environment
    • Demand planning
    • Incentive structures
    • Reconciliation of individual community plans with all Navy constraints
    • Scenario comparison

    This project was an opportunity to explore some visual concepts like ring-grids and timeline representations. Above we see summaries over time for 24 sailors, while at right we show ring-grids, showing, for 2D sets of billets, which fraction are at sea, on shore, or vacant.

    While trying to get to the bottom of confusing model dynamics, I developed a useful visual inspection tool I call polyseries, as in ‘many time-series’. 

    I built a polyseries explorer to help reveal emergent behaviors within the agent population

    Modeling of Sentiment at Population Level

    This was a project funded by the U.S. Navy; I worked with experts on Afghan inter-tribal dynamics to build a simulation tool of sentiment in the Afghan theater.

    The model consisted of modeling a population of ‘citizens’, impacted by the actions of two actors, operating on critical resources like access to water, medical facilities, crop and food security, as well as general safety levels.

    The simulation was grounded in the context of Afghan villages, and citizen awareness of actor actions was either through direct experience or via communication channels.

    We built a user-friendly UI to let analysts create and evaluate scenarios of impacts by either the allied forces (ISAF) or Taliban in specific locations and times.

    The scenario evaluation was grounded in data about populations and communications options defined in coordination with SMEs, based on things like the geographic spread of radio stations, or the degree of trust between members of various tribes.

    In addition to the impacts of localized actions, citizens were also impacted by communications efforts, for example via radio messaging, dropping of flyers, or in places of worship.

    We calibrated our model using Wikileaks data about improvised explosive device (IED) incidents during the Afghan war. We used the data, which provided incident locations and dates, as a proxy for localized sentiment. We assumed that an IED incident was often correlated with negative localized feeling towards ISAF and positive feelings towards the Taliban. More colloquially, we assumed that incidents were more likely given the tacit support of the local population.

    After the model’s free parameters were optimized for best fit to the Wikileaks data, we were then able to obtain predictive results from the model, shown in dashboard form at right.

    We built a user-friendly UI to let analysts create and evaluate scenarios of impacts by either the allied forces (ISAF) or Taliban in specific locations and times.

    The scenario evaluation was grounded in data about populations and communications options defined in coordination with SMEs, based on things like the geographic spread of radio stations, or the degree of trust between members of various tribes.

    Market Share Simulation

    This was a tool for exploring the impact of the design of Medicare Part B plans on regional market share. We worked closely with our client, a top insurer, to build a tool to better understand the dynamics of the Medicare market.

    Our model was built on a rich data set describing all the details of competing insurance plans, along with years of market share data that we used for calibration.

    At its core, the model was an agent-based simulation of a population of seniors choosing their Medicare plans during certain eligibility periods. We had available a lot of demographic and behavioral information about the population, and we worked with SMEs to develop seven archetypes of seniors, each with a different approach to decision making and plan selection.

    Given a well calibrated model, the client was then able to evaluate the impact of changes to their plans, or game-play the consequences of changes in their competitor’s plans.

    After defining all the plan changes and scenarios of interest, the result of simulating a year or two into the future would guide decision making.

    Here I used the polyseries explorer to look at how different segments of seniors have changed Medicare plans over a couple of simulated years.

    When visualizing data, being able to easily sort by important dimensions is vital to uncovering latent emergent behaviors.

    Located: Near Cambridge, MA.