Programming Languages

I began my analytical work in Stata before quickly moving to R, where I spent many years building a suite of packages for structural estimation and Bayesian modeling. More recently, I’ve shifted primarily to Python to take advantage of its rich ecosystem of tools like JAX and scikit-learn.

  • Python — Primary language; JAX, scikit-learn, NumPy/SciPy
  • R — Extensive experience; authored numerous packages for statistical modeling
  • C / C++ — High-performance computing, custom samplers
  • Stata — Econometric analysis
  • Stan — Probabilistic programming for Bayesian inference
  • SQL — Data management and querying

Statistical & Quantitative Methods

  • Bayesian Hierarchical Modeling
  • Markov Chain Monte Carlo (MCMC) simulation
  • Structural estimation of economic models
  • Maximum Likelihood & Maximum Simulated Likelihood estimation
  • Experimental design and analysis
  • Risk preference elicitation and estimation
  • Nonparametric and semiparametric methods

Computing & Infrastructure

  • Massively parallel computing (GPU & multi-core)
  • Linux systems administration
  • Git version control
  • Reproducible research workflows

Computational Tools

bamcmc — Massively Parallel Adaptive MCMC Sampler

A high-performance Bayesian sampler that adaptively selects proposal distributions based on the current state of many simultaneous MCMC chains. Designed for massively parallel implementations, enabling thousands of chains to be run and sampled from in parallel. Achieves several orders of magnitude speedup over popular alternatives when estimating complex hierarchical models.

rcocl — GPU-Accelerated MCMC Sampling for R

An R package that leverages OpenCL to run MCMC sampling on GPUs, bringing significant performance gains to computationally intensive Bayesian estimation problems.

halton — Halton Sequence Generator

A C++ implementation of Halton sequence generation for quasi-random sampling, useful in simulation-based estimation methods.

repres — Reproducible Research in R

A framework for managing reproducible research workflows in R, providing local package libraries and repositories to ensure consistent, version-controlled computational environments across projects and collaborators.


R Package Suite

A family of R packages for structural estimation of risk and time preferences, belief elicitation, and related econometric tasks.

Package Description
rcest Structural model estimation framework with pluggable optimizers and delta method inference
rcguts C++ backend — likelihood functions for risk and time preference estimation
rcbelief Recover subjective beliefs from QSR tasks accounting for risk preferences
rcgen Simulate choices from experimental economics instruments
rcstan Stan integration for structural models
mopt Collection of optimizers for rcest
mdists Uncommon and reparameterized probability distributions

oTree Experiment Applications

A suite of oTree applications for running incentivized economic experiments.

App Description
risk_task Risk preference elicitation via binary lottery pairs
beliefs_task Belief elicitation via QSR token allocation
hora_task Lottery choice with histogram-displayed probability distributions
ca_task Correlation aversion elicitation with lottery pairs
insturance_task Lottery choices framed as insurance decisions
trust_game Trust/send game
ultimatum_game Ultimatum game
time_task Discount rate elicitation via intertemporal MPLs
survey_task YAML-configured questionnaires with JSON response storage
intro_task Session setup, consent, welcome, and final payment display
logic_sub JS library for dynamic survey response generation