Skip to content
View jc-macdonald's full-sized avatar

Block or report jc-macdonald

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jc-macdonald/README.md

Decision support and principled inference for scientific systems under partial observability.

Hi, I'm Josh — postdoc at the Bloomberg School of Public Health, Johns Hopkins.

I determine what actions to take, what experiments to run, and what measurements are worth collecting in systems where interventions are costly and uncertainty is unavoidable. To do this, I build open scientific computing infrastructure — declarative modeling, simulation, and generative decision support — for partially observed systems across health, environmental, and earth sciences, integrating generative modeling (mechanistic, statistical, and hybrid), Bayesian inference, numerical solver design, and model evaluation. Prediction alone is not enough; the structural assumptions in every model must be tested and defended before anyone acts on the output.

Applications include infectious disease forecasting and intervention timing, surveillance design, marine and terrestrial ecology, and cultural transmission dynamics. The infectious disease tools are developed for CDC-funded scenario modeling contributions that feed into the process used to set influenza vaccination policy; other applications include wildlife disease surveillance design in sub-Saharan Africa and cross-scale ecological modeling.

Domains → Tools: Infectious disease (op_engine, flepimop2, Flu Hub) · Wildlife & zoonotic disease (op_engine, trade-study) · Cultural evolution & genomics (VBPCApy, pp-eigentest) · Marine ecology (op_system, trade-study) · Cross-domain methods (trade-study, pp-eigentest)

🌐 jcmacdonald.dev · Publications · CV · @jcm-sci


Software — Primary Architect

Status: Released on PyPI · JOSS submission in preparation

Recovers hidden population structure from datasets with substantial missing entries — applied to cultural, genetic, and survey data where complete records are rare. Used in Macdonald et al. (2024, Evolutionary Human Sciences). Variational Bayesian PCA for incomplete data with native per-entry missingness handling, full posterior uncertainty quantification, automatic component pruning, built-in model selection, C++-accelerated kernels, and scikit-learn-compatible API. Currently preparing convergence characterization and JOSS submission.

Status: Active development · Developed for CDC-funded flu scenario modeling

Simulation engine for CDC-funded influenza scenario modeling and wildlife disease modeling. Operator-partitioned ODE/PDE solver core that splits the right-hand side into explicit and implicit parts, advancing them jointly via nine methods (explicit, IMEX, fully implicit) with adaptive step-size control, zero per-step allocation, and cached implicit solves with dense/sparse autodispatch.

Status: Active development

Declarative specification language and compiler for structured dynamical systems. Researchers define models via two pathways — explicit governing equations or transition diagrams — with multi-axis stratification, automatic template expansion, and chain synthesis for staged compartments. Specifications are AST-validated and compiled to safe bytecode closures; structured metadata passes through to downstream solvers like op_engine.

Trade Study — multi-objective design, evaluation, and decision support · CI

Status: Active development

Answers the question: which configuration should you trust before acting? Users define simulators — protocol-conformant objects that generate (truth, observations) pairs — then score competing configurations (model formulations, solver choices, measurement strategies, or any design decision) against known ground truth via proper scoring rules, multi-objective Pareto optimization, and Bayesian stacking. Evaluation proceeds through hierarchical phases (discovery → refinement → benchmark).

  • trade-study (Python) — wraps scoringrules, pymoo, arviz, SALib, optuna.
  • TradeStudy.jl (Julia) — wraps Metaheuristics.jl, ParetoSmooth.jl, QuasiMonteCarlo.jl, GlobalSensitivity.jl. Native scoring rules.

Status: Pre-release · Companion to arXiv:2409.12129 · Public release planned with paper

Determines how many meaningful patterns exist in a dataset, separating signal from noise. Posterior predictive eigenvalue testing with INID bootstrap over Gram spectra, three-layer consensus architecture (dimensionality heuristics, adaptive thresholding, multiple testing correction with FWER and FDR control). NumPy and JAX backends. Applied in Macdonald et al. (2024, Evolutionary Human Sciences).

Software — Contributor

Configuration-driven orchestration engine for CDC-supported infectious disease forecasting and scenario analysis. Plugin architecture decouples model specification, numerical integration, and output persistence.

Flexible Pipeline for Modeling Pathogens. Contributed 5×–20× runtime speedups to the simulation backend through profiling-driven optimization.

MIDAS Network coordination hub for CDC-funded influenza scenario modeling. Contributing team lead submissions and model evaluation infrastructure.


Operational Modeling

Influenza Scenario Modeling (JHU/UNC Flu Hub, Current)

Lead model developer for ACCIDDA's CDC-funded seasonal influenza scenario modeling across the 2024/25, 2025/26, and 2026/27 seasons. Set up the ACCIDDA flu model and operational pipeline (2024/25). Extensive work with external modeling packages drove contributions that led to FlepiMoP2 (2025/26). Supervising an undergraduate student in a scientific overhaul of the flu model (2026/27). These scenario contributions feed into the CDC Flu Scenario Modeling Hub, whose outputs are used in part to help set influenza vaccination policy.

Hib Vaccination Modeling (Navajo Nation, Current)

Technical lead supervising implementation of an age- and immune-status-structured Hib model for the Navajo Nation to evaluate the impact of long-running vaccination programs.


Research

Operator-Partitioned Simulation Stack (Current)

Benchmarking the FlepiMoP backend revealed architectural limitations that motivated a clean-sheet redesign. The result is the op_system + op_engine + flepimop2 stack: a declarative modeling and simulation platform where model specifications compile to validated bytecode consumed by an operator-partitioned solver, orchestrated by a configuration-driven campaign engine. Being deployed for CDC-funded scenario modeling.

VBPCApy Convergence Characterization (Current)

Developing formal convergence guarantees for variational Bayesian PCA (VBPCApy): closed-form ELBO monotonicity proofs, CAVI contraction rate bounds, and a systematic grid experiment (15 factors, ~80k configurations) characterizing posterior quality vs. wall time across missingness patterns, priors, and stopping criteria.


Expertise

These capabilities are deployed to design interventions, optimize surveillance strategies, and determine what experiments and measurements are worth their cost.

Modeling · Generative models (ODE/PDE/stochastic/hybrid), scientific AI/ML (physics-embedded surrogates), stability and bifurcation analysis, simulation-based inference, global sensitivity analysis (Sobol, PRCC, Morris)

Inference · Hierarchical Bayesian models, variational inference, profile likelihood, posterior predictive checks, identifiability analysis, uncertainty quantification

Computing · Python, Julia, C++; ODE/PDE solver design and benchmarking, operator splitting (IMEX), vectorization, CI/CD, type-checked codebases

Evaluation · Proper scoring rules, calibration diagnostics, Pareto front analysis, reduced-order forecasting models with scientific constraints by construction

Full details: jcmacdonald.dev/cv


Languages & Tools
PrimaryPython · C++ · Julia
SecondaryMATLAB/Octave · R · Bash
ScientificNumPy · SciPy · Cython · pybind11 · Numba
InfrastructureGitHub Actions · Docker · pytest · pre-commit

GitHub Stats

GitHub Streak

Pinned Loading

  1. ACCIDDA/op_engine ACCIDDA/op_engine Public

    Python 4

  2. ACCIDDA/flepimop2 ACCIDDA/flepimop2 Public

    Python 2 1

  3. ACCIDDA/op_system ACCIDDA/op_system Public

    Python 2 1

  4. yoavram-lab/VBPCApy yoavram-lab/VBPCApy Public

    Variational Bayesian PCA for incomplete data with native missingness handling, uncertainty outputs, and C++ accelerated kernels.

    Python 2

  5. jcm-sci/trade-study jcm-sci/trade-study Public

    Multi-objective trade-study orchestration with proper scoring rules, Pareto optimization, and Bayesian stacking for systematic model evaluation and design-space exploration.

    Python

  6. jcm-sci/TradeStudy.jl jcm-sci/TradeStudy.jl Public

    Multi-objective trade-study orchestration with proper scoring rules, Pareto optimization, and Bayesian stacking for systematic model evaluation and design-space exploration (Julia).

    Just