Industry

Senior Data Scientist
at VideoAmp.

From 2021 to 2024 I worked on measurement and identity for cross-screen advertising — the statistics of knowing who saw what, and what it did, when your data is enormous, fragmented, and incomplete.

2021–2024Los Angeles, CA TV & digital measurement
Four projects

Bayesian modeling, at industrial scale.

Each of these took a research-grade statistical method and made it run reliably over hundreds of millions of records in production.

Bayesian imputation

Demographic imputation across 120M U.S. households

120M households · 10M points · ~1M params

Designed and implemented a Gibbs sampler for Bayesian non-parametric density estimation to fill missing demographics in a deeply nested household structure — tuned to run over 10 million data points and roughly a million parameters.

Demographic imputation across 120M U.S. households
Graph modeling

Identity graph construction

100M nodes · 1B edges

Built a probabilistic framework for the evolution of interconnected bipartite graphs, linking devices, identities and demographics from multiple sources over time, with an emphasis on geographical consistency.

Identity graph construction
Point processes

Behavioral modeling

100K+ time series · zero-inflated · autoregressive

Modeled purchase and TV-viewership as household-level Poisson point processes, separating the true event-generating rate from selection and masking effects with a zero-inflated, hierarchical model that shares information across households. Covariate link functions and autoregression let each household's intensity depend on its attributes, on time, and on its own recent history — across 100,000+ time series.

Behavioral modeling
Measurement

Survey-based lift methodology

N(X,Y) = Nₛ(X,Y) / p(S=1 | X,Y)

Built a projection framework for unbiased measurement of household–event pairs under incomplete observation. From an exchangeability argument it recovers any population quantity by dividing the observed count by its probability of being observed — inverse-probability weights set by identity-graph matchability and observability — while estimating the total universe intensity jointly. It turns a biased, partially observed panel into calibrated, unbiased ad-effectiveness estimates.

Stack

Tools I reached for

PythonPySpark · SparkSQL Stan · PyStanPyMCprophet NumPy · SciPy · Pandasscikit-learn Gibbs sampling · MCMCHierarchical Bayes Poisson point processesGNU/Linux