814 lines
33 KiB
HTML
814 lines
33 KiB
HTML
---
|
||
title: "Resume"
|
||
layout: "single"
|
||
url: /about/resume/
|
||
---
|
||
|
||
<style>
|
||
/* resume.css — Classicthesis-inspired résumé stylesheet
|
||
*
|
||
* Web-native translation of the LaTeX classicthesis aesthetic:
|
||
* Palatino serif, maroon accents, spaced small caps headings,
|
||
* margin-note grid layout for employer/institution names.
|
||
*
|
||
* Aligned with resume.sty — geometry, spacing constants, and
|
||
* typographic commands mirror the LaTeX counterparts.
|
||
*/
|
||
|
||
/* Font Awesome — loaded for contact service icons (fa-envelope, fa-github, etc.)
|
||
Mirrors \RequirePackage{fontawesome5} in resume.sty */
|
||
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css");
|
||
|
||
/* ====================================================================
|
||
Custom properties
|
||
(mirrors \resumeSectionSkip, \resumeEntrySkip, \resumeBlockSkip,
|
||
\resumeDescriptionSkip, \resumePositionSkip, \datebox widths, and
|
||
the geometry: marginparwidth=4cm, marginparsep=0.75cm → ~15em / 1.4em
|
||
at 10pt base. Numbers scaled to a 16px/1rem web base.)
|
||
==================================================================== */
|
||
|
||
:root {
|
||
/* Colors — aligned with PaperMod theme-vars.css for light mode */
|
||
--resume-accent: var(--primary, rgb(30, 30, 30));
|
||
--resume-halfgray: var(--secondary, rgb(108, 108, 108));
|
||
--resume-text: var(--content, rgb(31, 31, 31));
|
||
--resume-text-heading: var(--primary, rgb(30, 30, 30));
|
||
--resume-bg: var(--theme, rgb(255, 255, 255));
|
||
--resume-border: var(--border, rgb(238, 238, 238));
|
||
--resume-muted: var(--secondary, rgb(108, 108, 108));
|
||
|
||
/* Font stack — TeX Gyre Pagella / Palatino family */
|
||
--resume-font: "TeX Gyre Pagella", "Palatino Linotype", Palatino,
|
||
"Book Antiqua", Georgia, serif;
|
||
|
||
/* Layout — mirrors LaTeX geometry left=5.5cm, marginparwidth=4cm,
|
||
marginparsep=0.75cm at ~10pt. Converted to em at 16px base. */
|
||
--resume-margin-width: 10em; /* ~4 cm at 10pt */
|
||
--resume-margin-gap: 1.2em; /* ~0.75 cm */
|
||
/* Left page margin — body text indented this far from the content edge.
|
||
Margin note + gap live within this space (mirrors left=5.5cm in LaTeX). */
|
||
--resume-left-margin: calc(var(--resume-margin-width) + var(--resume-margin-gap));
|
||
|
||
/* \datebox: wide enough for "Sep 2049–May 2049" at \small */
|
||
--resume-date-width: 8.5em;
|
||
|
||
/* Vertical rhythm — mirrors spacing options (normal, not compact) */
|
||
--resume-section-skip: 1.0em; /* \resumeSectionSkip */
|
||
--resume-entry-skip: 0.5em; /* \resumeEntrySkip */
|
||
--resume-block-skip: 1.0em; /* \resumeBlockSkip */
|
||
--resume-description-skip: 0.8em; /* \resumeDescriptionSkip */
|
||
--resume-position-skip: 0.35em;/* \resumePositionSkip */
|
||
|
||
/* Body */
|
||
--resume-line-height: 1.05; /* \linespread{1.05} */
|
||
--resume-max-width: 860px;
|
||
}
|
||
|
||
/* ====================================================================
|
||
Base
|
||
==================================================================== */
|
||
|
||
html { font-size: 100%; }
|
||
|
||
body {
|
||
font-family: var(--resume-font);
|
||
line-height: var(--resume-line-height);
|
||
color: var(--resume-text);
|
||
background: var(--resume-bg);
|
||
max-width: var(--resume-max-width);
|
||
margin: 2em auto;
|
||
padding: 0 1.5em;
|
||
}
|
||
|
||
/* ====================================================================
|
||
Title — \spacedallcaps → uppercase + letter-spacing, Maroon, LARGE
|
||
(\resumeTitle uses \LARGE\color{Maroon}\spacedallcaps)
|
||
==================================================================== */
|
||
|
||
header h1,
|
||
h1.title {
|
||
text-align: center;
|
||
color: var(--resume-accent);
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.16em; /* \textls[160] ≈ 0.16 em */
|
||
font-weight: normal;
|
||
font-size: 1.75em; /* \LARGE at 10pt ≈ 14.4pt; 1.75em ≈ 28px */
|
||
margin-bottom: var(--resume-entry-skip);
|
||
}
|
||
|
||
/* Hide Pandoc subtitle/author/date if present */
|
||
header .subtitle,
|
||
header .author,
|
||
header .date { display: none; }
|
||
|
||
/* ====================================================================
|
||
Section headings — \spacedlowsmallcaps + \small + halfgray rule
|
||
(\resumeGenericSection: \small\spacedlowsmallcaps + 0.4pt gray rule)
|
||
==================================================================== */
|
||
|
||
.resume-section-heading {
|
||
font-variant: small-caps;
|
||
text-transform: lowercase; /* \MakeTextLowercase for small-caps */
|
||
letter-spacing: 0.08em; /* \textls[80] ≈ 0.08 em */
|
||
font-weight: normal;
|
||
font-size: 0.95em; /* \small inside body text */
|
||
color: var(--resume-text-heading);
|
||
margin-top: var(--resume-section-skip);
|
||
margin-bottom: 0.2em; /* 0.2em gap before rule (was 0.15→0.2 per CHANGE 1) */
|
||
}
|
||
|
||
/* Ensure spacing between consecutive sections doesn't collapse with
|
||
bullet-list margins at the end of the previous section. */
|
||
section + section { padding-top: var(--resume-section-skip); }
|
||
|
||
section > hr {
|
||
border: none;
|
||
border-bottom: 0.4pt solid var(--resume-border); /* \color{halfgray}\rule{...}{0.4pt} */
|
||
margin: 0 0 var(--resume-entry-skip);
|
||
}
|
||
|
||
/* ====================================================================
|
||
Margin-note grid
|
||
(mirrors \MarginText / \MarginName in the left-margin column)
|
||
==================================================================== */
|
||
|
||
/* Margin-note grid — pulls the entire block left so the margin note
|
||
occupies the body's left padding, and the main column aligns with
|
||
all other body text. Mirrors \reversemarginpar + left=5.5cm layout.
|
||
Multiple grid rows are allowed; each .resume-margin-note and
|
||
.resume-main-col pair occupies one implicit row. */
|
||
.resume-employer,
|
||
.resume-institution {
|
||
display: grid;
|
||
grid-template-columns: var(--resume-margin-width) 1fr;
|
||
gap: 0 var(--resume-margin-gap);
|
||
margin-left: calc(-1 * var(--resume-left-margin));
|
||
margin-bottom: var(--resume-block-skip);
|
||
align-items: start;
|
||
}
|
||
|
||
/* Location-only margin note row — left column only, right column empty */
|
||
.resume-margin-note--location {
|
||
grid-column: 1;
|
||
margin-top: 0.4em;
|
||
padding-top: 0;
|
||
}
|
||
|
||
.resume-margin-note {
|
||
text-align: right;
|
||
font-style: italic;
|
||
font-size: 0.9em;
|
||
padding-top: 0.15em;
|
||
color: var(--resume-muted);
|
||
}
|
||
|
||
.resume-margin-note a {
|
||
color: var(--resume-text-heading);
|
||
}
|
||
|
||
/* Location line inside the margin note — below employer name.
|
||
Mirrors \footnotesize\upshape in the LaTeX margin text. */
|
||
.resume-margin-location {
|
||
display: block;
|
||
font-style: normal; /* \upshape — cancel the italic of the note */
|
||
font-size: 0.8em; /* \footnotesize */
|
||
color: var(--resume-muted);
|
||
margin-top: 0.25em;
|
||
}
|
||
|
||
/* When a position overrides the employer location, a sibling div appears
|
||
just before .resume-position inside .resume-main-col. It uses negative
|
||
margin to pull its content visually back into the left column. */
|
||
.resume-margin-location-override {
|
||
margin-left: calc(-1 * (var(--resume-margin-width) + var(--resume-margin-gap)));
|
||
width: var(--resume-margin-width);
|
||
text-align: right;
|
||
margin-bottom: 0.15em;
|
||
}
|
||
|
||
.resume-main-col { min-width: 0; }
|
||
|
||
/* ====================================================================
|
||
Employment / position entries
|
||
(\resumePosition: \parbox{\datebox}{\small\textit{#2--#3}} + \textbf{#1})
|
||
CHANGE 2: position title is now bold (\textbf added in .sty)
|
||
==================================================================== */
|
||
|
||
.resume-entry-header {
|
||
margin-bottom: 0.25em;
|
||
}
|
||
|
||
.resume-date {
|
||
display: inline-block;
|
||
min-width: var(--resume-date-width);
|
||
font-style: italic;
|
||
font-size: 0.9em; /* \small in LaTeX */
|
||
}
|
||
|
||
/* CHANGE 2: bold title (was font-weight: normal) */
|
||
.resume-position-title {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.resume-position {
|
||
margin-bottom: var(--resume-position-skip);
|
||
}
|
||
|
||
/* ====================================================================
|
||
Education entries
|
||
(\resumeEducation: margin note = institution; \textbf{degree} CHANGE 3)
|
||
==================================================================== */
|
||
|
||
.resume-institution {
|
||
margin-bottom: var(--resume-entry-skip);
|
||
}
|
||
|
||
/* CHANGE 3: degree/program title bold (mirrors \textbf added in .sty) */
|
||
.resume-degree-title {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.resume-edu-detail {
|
||
font-size: 0.9em; /* \small for the detail line */
|
||
margin-top: 0.15em;
|
||
padding-left: calc(var(--resume-date-width) + 1.5em); /* aligns with title */
|
||
}
|
||
|
||
/* ====================================================================
|
||
Links — Maroon
|
||
==================================================================== */
|
||
|
||
a {
|
||
color: var(--resume-text-heading);
|
||
text-decoration: none;
|
||
}
|
||
a:hover { text-decoration: underline; }
|
||
|
||
/* ====================================================================
|
||
Contact section
|
||
(\resumeContactLineOne/Two; \faMapMarker, \faPhone*, icon + separator)
|
||
==================================================================== */
|
||
|
||
.resume-contact address {
|
||
font-style: normal;
|
||
margin-bottom: 0.5em;
|
||
}
|
||
|
||
/* Inline contact items separated by halfgray · (mirrors \cdot) */
|
||
.resume-contact-list {
|
||
list-style: none;
|
||
padding: 0;
|
||
margin: 0 0 0.5em;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 0 0;
|
||
}
|
||
|
||
.resume-contact-item {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
/* · separator between items (mirrors \enspace{\color{halfgray}$\cdot$}\enspace) */
|
||
.resume-contact-item + .resume-contact-item::before {
|
||
content: "·";
|
||
color: var(--resume-halfgray);
|
||
margin: 0 0.45em;
|
||
}
|
||
|
||
.resume-contact-icon {
|
||
color: var(--resume-halfgray); /* \color{halfgray} on icons */
|
||
font-size: 0.85em;
|
||
display: inline-block;
|
||
width: 1.2em;
|
||
text-align: center;
|
||
margin-right: 0.35em;
|
||
}
|
||
|
||
/* FA icons in contact items — halfgray, matching \large\color{halfgray} */
|
||
.resume-contact-item i {
|
||
color: var(--resume-halfgray);
|
||
font-size: 0.9em;
|
||
width: 1.2em;
|
||
text-align: center;
|
||
margin-right: 0.2em;
|
||
}
|
||
|
||
/* Service icons — line 2 (\resumeService: \large\color{halfgray} icon + \quad) */
|
||
.resume-contact-services {
|
||
display: flex;
|
||
gap: 0.9em; /* mirrors \quad between service entries */
|
||
margin-bottom: var(--resume-entry-skip);
|
||
align-items: center;
|
||
}
|
||
|
||
.resume-contact-services a {
|
||
color: var(--resume-halfgray); /* \large\color{halfgray} icon */
|
||
font-size: 1.1em; /* \large */
|
||
}
|
||
|
||
.resume-contact-services a:hover {
|
||
color: var(--resume-text-heading);
|
||
}
|
||
|
||
/* ====================================================================
|
||
Publications
|
||
(\resumePublication: author. ``Title.'' \textit{Venue}, Year.)
|
||
==================================================================== */
|
||
|
||
.resume-publication {
|
||
margin-bottom: var(--resume-description-skip);
|
||
padding-left: 2em;
|
||
text-indent: -2em; /* \hangindent=2em\hangafter=0 */
|
||
}
|
||
|
||
.resume-pub-authors { font-variant: normal; }
|
||
.resume-pub-venue { font-style: italic; }
|
||
|
||
/* ====================================================================
|
||
Projects, Certifications, Awards, Volunteer
|
||
(\resumeProject etc.: \parbox{\datebox} + \textbf{title} + italic role)
|
||
==================================================================== */
|
||
|
||
.resume-project,
|
||
.resume-certification,
|
||
.resume-award,
|
||
.resume-volunteer-entry {
|
||
margin-bottom: var(--resume-entry-skip);
|
||
padding-left: 2em;
|
||
text-indent: -2em; /* \hangindent=2em */
|
||
}
|
||
|
||
/* Bold name mirrors \textbf{#1} in all misc entry commands */
|
||
.resume-project-title,
|
||
.resume-certification-title,
|
||
.resume-award-title,
|
||
.resume-volunteer-title {
|
||
font-weight: bold;
|
||
}
|
||
|
||
/* Italic role/issuer mirrors ~--- \textit{#2} */
|
||
.resume-project-role,
|
||
.resume-certification-issuer,
|
||
.resume-award-source,
|
||
.resume-volunteer-org {
|
||
font-style: italic;
|
||
}
|
||
|
||
.resume-award-desc {
|
||
margin: 0.15em 0 0.3em;
|
||
font-size: 0.95em;
|
||
text-indent: 0;
|
||
}
|
||
|
||
/* ====================================================================
|
||
Description lists (Skills, Languages)
|
||
(\resumeLanguage / \resumeSkillCategory with \MarginText for category)
|
||
==================================================================== */
|
||
|
||
.resume-dl {
|
||
display: grid;
|
||
grid-template-columns: max-content 1fr;
|
||
gap: 0.15em 1em;
|
||
margin: 0.3em 0;
|
||
}
|
||
|
||
.resume-dl dt {
|
||
font-weight: bold;
|
||
font-size: 0.9em;
|
||
}
|
||
|
||
.resume-dl dd { margin: 0; }
|
||
|
||
/* ====================================================================
|
||
Prose lists (bullet points under positions, etc.)
|
||
(\labelitemi → \textbullet, \labelitemii → \textendash; nosep list)
|
||
==================================================================== */
|
||
|
||
section ul,
|
||
.resume-main-col ul {
|
||
list-style-type: disc; /* \textbullet */
|
||
margin: 0.25em 0 0.4em; /* topsep=0.25em */
|
||
padding-left: 2em; /* leftmargin=2em */
|
||
}
|
||
|
||
section ul ul,
|
||
.resume-main-col ul ul {
|
||
list-style-type: "\2013\00a0"; /* \textendash for level 2 */
|
||
}
|
||
|
||
section li,
|
||
.resume-main-col li {
|
||
margin-bottom: 0.1em; /* itemsep=0.1em */
|
||
line-height: var(--resume-line-height);
|
||
}
|
||
|
||
/* ====================================================================
|
||
Responsive — collapse margin grid below 48em
|
||
==================================================================== */
|
||
|
||
@media (max-width: 48em) {
|
||
body {
|
||
padding-left: 1.5em;
|
||
}
|
||
|
||
.resume-employer,
|
||
.resume-institution,
|
||
.resume-dl {
|
||
display: block;
|
||
margin-left: 0;
|
||
}
|
||
|
||
.resume-margin-note {
|
||
text-align: left;
|
||
font-size: 1em;
|
||
font-weight: bold;
|
||
margin-bottom: 0.15em;
|
||
}
|
||
|
||
.resume-dl dt {
|
||
margin-top: 0.3em;
|
||
}
|
||
|
||
.resume-dl dd { margin-left: 1em; }
|
||
|
||
.resume-entry-header,
|
||
.resume-project,
|
||
.resume-certification,
|
||
.resume-award,
|
||
.resume-volunteer-entry,
|
||
.resume-publication {
|
||
padding-left: 0;
|
||
text-indent: 0;
|
||
}
|
||
|
||
.resume-edu-detail { padding-left: 0; }
|
||
|
||
.resume-contact-list { flex-direction: column; }
|
||
.resume-contact-item + .resume-contact-item::before { display: none; }
|
||
}
|
||
|
||
/* ====================================================================
|
||
Print
|
||
(\pagestyle{empty}; avoid breaks; link URLs after text)
|
||
==================================================================== */
|
||
|
||
@media print {
|
||
body {
|
||
max-width: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
font-size: 10pt;
|
||
color: #000;
|
||
background: #fff;
|
||
}
|
||
|
||
a {
|
||
color: #000;
|
||
text-decoration: none;
|
||
}
|
||
|
||
/* Show link URLs (mirrors hyperref behaviour in PDF) */
|
||
a[href^="http"]::after {
|
||
content: " (" attr(href) ")";
|
||
font-size: 0.8em;
|
||
color: #555;
|
||
}
|
||
|
||
/* \break-inside avoid on all entry types */
|
||
section { break-inside: avoid; }
|
||
.resume-employer,
|
||
.resume-institution,
|
||
.resume-position,
|
||
.resume-project,
|
||
.resume-certification,
|
||
.resume-award,
|
||
.resume-volunteer-entry,
|
||
.resume-publication { break-inside: avoid; }
|
||
}
|
||
</style>
|
||
|
||
<section class="resume-introduction">
|
||
<h2 class="resume-section-heading">Profile</h2>
|
||
<hr>
|
||
<p>Data and analytics leader who builds measurement capabilities from
|
||
the ground up — and then builds the teams to run them. Across gaming,
|
||
energy, financial services, and media, the pattern is the same: inherit
|
||
“we have no data,” and leave behind production pipelines, statistical
|
||
models, and analytical teams that make better decisions at scale.
|
||
Promoted four levels in three years at EA managing cross-functional
|
||
analytics organizations. Since leaving EA, completed Wharton’s CTO
|
||
Program and took on founding-team roles at early-stage companies to stay
|
||
close to the technical work. Ready to bring that combination of
|
||
organizational leadership and hands-on depth back to a team that takes
|
||
measurement seriously.</p>
|
||
</section>
|
||
<section class="resume-employment">
|
||
<h2 class="resume-section-heading">Work Experience</h2>
|
||
<hr>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://quadrant4.com">Quadrant4, Inc.</a><span class="resume-margin-location">Walnut Creek, CA</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-position-title"></span></div>
|
||
<p>Joined as employee number one at a startup whose core product
|
||
<em>is</em> measurement — permissioned intent signals from engaged users
|
||
that outperform the lagging behavioral data dominating ad targeting
|
||
today. Built the entire technical and analytical foundation needed to
|
||
prove and deliver that value proposition.</p>
|
||
<ul>
|
||
<li><em>Built the full backend and analytics stack solo.</em> Backend
|
||
services platform, analytics infrastructure, dbt/DuckDB data warehouse,
|
||
Quarto dashboards, and GKE/GCE cloud deployment with CI/CD — all from
|
||
scratch.</li>
|
||
<li><em>Rooted company strategy in measurable lifecycle economics.</em>
|
||
Applied CLV frameworks before founding to turn an abstract thesis into a
|
||
concrete, testable claim — and defined the metrics needed to prove
|
||
it.</li>
|
||
<li><em>Architected a platform that made new services trivial to
|
||
build.</em> A transport-agnostic FaaS framework with 13+ reusable
|
||
modules (async PostgreSQL, circuit-breaking, HTTP clients) reduced new
|
||
service build time to under a day — proven by an SKAN postback ingestion
|
||
service and an MCP server.</li>
|
||
<li><em>Delivered early unit economics visibility.</em> Dagster
|
||
orchestration over a warehouse covering costs, user behavior, and
|
||
acquisition performance, plus an MCP server giving business users
|
||
natural-language access to metrics without SQL.</li>
|
||
<li><em>Prototyped AI conversation guidance via soft state
|
||
machines.</em> Replaced rigid scripted flows with probabilistic state
|
||
transitions, producing more realistic conversations and measurably
|
||
higher engagement.</li>
|
||
<li><em>Ran Meta user acquisition end-to-end.</em> Expanded into new
|
||
Comscore geographies, hit industry benchmark CPRs within weeks through
|
||
systematic creative testing, and fixed upper-funnel conversion
|
||
leaks.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://www.idenza.ai">Idenza</a><span class="resume-margin-location">Bay Area, CA</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">Oct 2024 – May 2025</span> <span class="resume-position-title">Founding Engineer</span></div>
|
||
<p>Joined a fintech startup as a founding engineer to build core fraud
|
||
detection infrastructure — delivering a production-ready rules engine
|
||
and API layer before determining the role wasn’t aligned with my
|
||
trajectory as a data and analytics leader.</p>
|
||
<ul>
|
||
<li><em>Built a policy-driven fraud detection engine for enterprise
|
||
scale.</em> A service that generates Drools DRL rules dynamically from
|
||
JSON definitions lets financial institutions encode their own policies
|
||
without engineering involvement; a companion classification service
|
||
evaluates complex multi-rule transactions in under 10 milliseconds.</li>
|
||
<li><em>Delivered the backend API gateway and integration layer.</em>
|
||
Built in Python with PostgreSQL, connecting the front end to the rules
|
||
engine and leaving the system ready for client onboarding.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://www.astrocade.com">Astrocade</a><span class="resume-margin-location">Los Altos, CA</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">Feb 2024 – Oct 2024</span> <span class="resume-position-title">Data Scientist</span></div>
|
||
<p>Sole data scientist at a 20-person AI gaming startup — brought in as
|
||
a contractor and converted to full-time based on results — responsible
|
||
for building the company’s measurement capability from zero and
|
||
translating data into product decisions for the CEO.</p>
|
||
<ul>
|
||
<li><em>Built the measurement foundation where none existed.</em>
|
||
Defined telemetry specifications, selected and onboarded analytics
|
||
vendors (Amplitude, Statsig), and built the pipelines that gave the
|
||
company its first visibility into user behavior and product
|
||
performance.</li>
|
||
<li><em>Improved first-user experience through systematic
|
||
experimentation.</em> A/B and bandit-style tests on onboarding and game
|
||
design led to a simplified FUE flow with materially better completion
|
||
and engagement rates.</li>
|
||
<li><em>Identified and activated the core user base.</em> Behavioral
|
||
analysis surfaced the highest-value users; a user council channeled
|
||
their feedback directly into the product roadmap.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://ea.com">Glu Mobile / Electronic Arts</a><span class="resume-margin-location">San Francisco, CA</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">Mar 2022 – May 2023</span> <span class="resume-position-title">Senior Director of Growth Analytics and Data Science</span></div>
|
||
<p>Promoted four levels in three years (Manager → Senior Director),
|
||
ultimately leading business intelligence, marketing analytics, and data
|
||
science while on the leadership team of a 250-person organization —
|
||
responsible for the measurement systems that shaped product and
|
||
marketing decisions at EA Mobile scale.</p>
|
||
<ul>
|
||
<li><em>Saved $100M in marketing spend at a major game launch.</em>
|
||
Identified and demonstrated that the incumbent forecasting methodology
|
||
would produce bad decisions, convened a cross-functional team, and
|
||
implemented a transition state model for cohort growth forecasting as an
|
||
R package.</li>
|
||
<li><em>Turned re-engagement marketing from a cost center into a profit
|
||
driver.</em> An embedded analytics team transformed campaigns from
|
||
money-losing giveaways into programs generating 200% ROI through
|
||
continuous measurement and improvement cycles.</li>
|
||
<li><em>Grew revenue by 5%+ through portfolio-level budget
|
||
optimization.</em> Analysis revealed reallocation opportunities across
|
||
acquisition channels — a significant impact on a budget in the tens of
|
||
millions.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">May 2020 – Mar 2022</span> <span class="resume-position-title">Director of Analytics and Data Science</span></div>
|
||
<ul>
|
||
<li><em>Cut marketing analysis effort in half.</em> Led a
|
||
cross-functional modernization of the BI practice, migrating from
|
||
Hive/Hadoop to a scalable cloud data warehouse with analytics-friendly
|
||
schemas.</li>
|
||
<li><em>Navigated Apple’s ATT initiative to protect acquisition
|
||
budgets.</em> Built new SKAdNetwork pipelines and analytical strategies
|
||
that maintained iOS advertising budgets while competitors pulled
|
||
back.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">Mar 2020 – May 2020</span> <span class="resume-position-title">Manager, Analytics</span></div>
|
||
<ul>
|
||
<li><em>Transformed analysts from order-takers into strategic
|
||
partners.</em> Created space for analysts to explore beyond PM requests
|
||
— leading to techniques like fixed-effects models that surfaced insights
|
||
PMs would never have thought to request.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://askmediagroup.com">Ask Media Group</a><span class="resume-margin-location">Oakland, CA</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">2019 – 2020</span> <span class="resume-position-title">Director, Data Science</span></div>
|
||
<p>Led cross-functional data science teams across product and
|
||
engineering, steering through written technical leadership — defining
|
||
scope, acceptance criteria, and strategic direction in prose while
|
||
delivering measurable improvements to search and content systems.</p>
|
||
<ul>
|
||
<li><em>Rescued a broken related search project.</em> Inherited a system
|
||
returning “iPhone 4” for “iPhone” queries after six months of
|
||
development. Two months after redefining acceptance criteria, automating
|
||
the build, and purging stale data, the system was ready for deployment
|
||
on a product targeted at $500K+ annual revenue.</li>
|
||
<li><em>Reduced vertical search site build time from three months to
|
||
three days.</em> Directed development of a tool automating index
|
||
construction for narrow-topic search sites.</li>
|
||
<li><em>Introduced Bayesian A/B testing where no testing capability
|
||
existed.</em> Built the company’s first mechanism for measuring product
|
||
improvements.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">Oct 2018 – Dec 2019</span> <span class="resume-position-title">Data Science Manager</span></div>
|
||
</div>
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">Aug 2018 – Oct 2018</span> <span class="resume-position-title">Data Evaluation Manager</span></div>
|
||
<ul>
|
||
<li><em>Transformed an analytics team into a delivery-oriented data
|
||
science team.</em> Adopted Scrum and built GitLab CI/CD pipelines to
|
||
increase delivery cadence.</li>
|
||
<li><em>Opened digital marketing to data science.</em> Championed a
|
||
keyword bidding project that produced automated auction data extraction
|
||
and bid adjustment within two months.</li>
|
||
<li><em>Built content moderation tooling at scale.</em> A word-vector
|
||
classifier for out-of-policy text let editors focus attention where it
|
||
was most needed.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://dnv.com">DNV</a><span class="resume-margin-location">Oakland, CA</span><span class="resume-margin-location">Høvik, Norway</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">2016 – 2017</span> <span class="resume-position-title">Senior Data Scientist</span></div>
|
||
<p>Selected for the Analytics Innovation Centre — a small group
|
||
assembled for rapid iteration on the company’s digital transformation
|
||
agenda — and worked directly with the executive committee to shape
|
||
strategy.</p>
|
||
<ul>
|
||
<li><em>Defined requirements and built initial prototypes for
|
||
Veracity,</em> the company’s marquee data platform connecting business
|
||
consumers and suppliers.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">2011 – 2016</span> <span class="resume-position-title">Head of Section for Analytics and Senior Consultant</span></div>
|
||
<p>Led the west coast analytics group in a first management role,
|
||
combining technical leadership on large-scale energy data problems with
|
||
business development and direct client delivery for major utilities and
|
||
grid operators.</p>
|
||
<ul>
|
||
<li><em>Estimated peak savings for a CPUC energy efficiency program</em>
|
||
across 40,000+ utility customers using years of hourly interval data
|
||
distributed across a Hadoop cluster.</li>
|
||
<li><em>Built a short-term renewable generation forecasting model</em>
|
||
operating at five-minute intervals to reduce grid reliance on
|
||
fast-response reserves.</li>
|
||
<li><em>Developed a discrete choice model for light bulb market
|
||
shares</em> to estimate counter-factual baselines for residential
|
||
lighting programs — producing rigorous net-to-gross ratios.</li>
|
||
<li><em>Led EV adopter identification for CenterPoint Energy,</em>
|
||
combining early adopter characteristics with travel survey data to
|
||
target geographic concentrations. </li>
|
||
<li><em>Built a proof-of-concept load forecasting algorithm</em> for a
|
||
major US utility’s demand response program, demonstrating the viability
|
||
of daily short-term forecasts from AMI data across 40,000
|
||
customers.</li>
|
||
<li><em>Developed load profiles and forecast errors for photovoltaic and
|
||
electric vehicles</em> for the California Independent System Operator,
|
||
assessing the benefits of additional visibility into distributed energy
|
||
resources.</li>
|
||
<li><em>Managed a propensity-to-act model</em> that combined customer
|
||
attributes, consumption, and program history into participation
|
||
likelihood scores — creating a new service offering and a rigorous
|
||
measure of how program actions influence participation.</li>
|
||
<li><em>Piloted Apache Spark and Hadoop for large-scale energy data
|
||
problems.</em> Supported business development through direct sales and
|
||
proposal strategy.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note"><a href="https://www.wsp.com">Parsons Brinckerhoff</a><span class="resume-margin-location">Chicago, IL</span><span class="resume-margin-location">San Francisco, CA</span><span class="resume-margin-location">Portland, OR</span><span class="resume-margin-location">Orange, CA</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">2001 – 2011</span> <span class="resume-position-title">Senior Consultant</span></div>
|
||
<p>Built simulation software and estimated behavioral models for
|
||
regional and statewide transportation planning projects across the US,
|
||
with several supporting successful federal New Starts funding
|
||
applications.</p>
|
||
<ul>
|
||
<li><em>Developed one of the first discrete choice trip distribution
|
||
models</em> for the Salt Lake City regional travel demand model,
|
||
replacing the gravity-based approach and supporting a successful New
|
||
Starts application.</li>
|
||
<li><em>Lead programmer on the Ohio statewide travel demand model,</em>
|
||
simulating long-distance travel for over 20 million persons using
|
||
distributed computing.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-employer">
|
||
<div class="resume-margin-note">Chicago Area Transportation Study<span class="resume-margin-location">Chicago, IL</span></div>
|
||
<div class="resume-main-col">
|
||
<div class="resume-position">
|
||
<div class="resume-entry-header"><span class="resume-date">1998 – 2000</span> <span class="resume-position-title">Engineer</span></div>
|
||
<p>Supported development of the Chicago region’s 20-year long-range
|
||
transportation plan through database design, GIS visualization, and
|
||
travel demand model interpretation — an early foundation in the
|
||
analytical and computational methods that have defined the rest of the
|
||
career.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="resume-education">
|
||
<h2 class="resume-section-heading">Education</h2>
|
||
<hr>
|
||
<div class="resume-institution">
|
||
<div class="resume-margin-note">CTO Program</div>
|
||
<div class="resume-main-col"><div class="resume-entry-header"><span class="resume-date">2023 – 2024</span> <a href="https://wharton.upenn.edu">The Wharton School, University of Pennsylvania</a></div><div class="resume-education-detail">Executive education; completed in 9 months</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-institution">
|
||
<div class="resume-margin-note">Master of Science</div>
|
||
<div class="resume-main-col"><div class="resume-entry-header"><span class="resume-date">1999 – 2001</span> <a href="https://uic.edu">The University of Illinois, Chicago</a></div><div class="resume-education-detail">Civil and Materials Engineering, emphasis on Travel demand forecasting and simulation</div>
|
||
</div>
|
||
</div>
|
||
<div class="resume-institution">
|
||
<div class="resume-margin-note">Bachelor of Science</div>
|
||
<div class="resume-main-col"><div class="resume-entry-header"><span class="resume-date">1993 – 1998</span> <a href="https://marquette.edu">Marquette University</a></div><div class="resume-education-detail">Civil and Environmental Engineering, emphasis on Transportation engineering and planning</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="resume-skills">
|
||
<h2 class="resume-section-heading">Skills</h2>
|
||
<hr>
|
||
<dl class="resume-dl resume-skills-dl"><dt>Frameworks</dt><dd>Apache Spark, Dask, Drools, Flask</dd>
|
||
<dt>Infrastructure</dt><dd>BigQuery, Docker, GitLab CI, Hadoop, PostgreSQL, Snowflake</dd>
|
||
<dt>Languages</dt><dd>Java, Python, R, SQL</dd>
|
||
<dt>Methods</dt><dd>A/B Testing, Bandit Testing, Bayesian Statistics, Behavioral Modeling, Cohort Analysis, Database Design, Discrete Choice Models, Forecasting, Funnel Analysis, GIS, Monte Carlo Simulation, NLP, Scrum, Simulation, Snowflake, Travel Demand Forecasting, Travel Demand Modeling</dd>
|
||
<dt>Platforms</dt><dd>Amplitude, Statsig</dd></dl>
|
||
</section>
|
||
<section class="resume-publications">
|
||
<h2 class="resume-section-heading">Publications</h2>
|
||
<hr>
|
||
<div class="resume-publication"><span class="resume-pub-authors">Siyu Wu, Andrew Stryker, Julia Vetromile</span>. “Tangled: Isolating SEM Savings.” <em class="resume-pub-venue">2015 ACEEE Summer Study on Energy Efficiency in Industry</em>, 2015.</div>
|
||
<div class="resume-publication"><span class="resume-pub-authors">Andrew Stryker, Kathleen Gaffney</span>. “Why the Light Bulb is No Longer a Textbook Example for Price Elasticity: Results from Choice Experiments and Demand Modeling Research.” <em class="resume-pub-venue">International Energy Program Evaluation Conference</em>, 2013.</div>
|
||
<div class="resume-publication"><span class="resume-pub-authors">Jay Evans, Andrew Stryker, Richard Pratt</span>. “Traveler Response to System Change, Chapter 17: Transit-Oriented Development.” <em class="resume-pub-venue">Transit Cooperative Research Program, Transportation Research Board</em>, 2007.</div>
|
||
<div class="resume-publication"><span class="resume-pub-authors">G.D. Erhardt, J. Freedman, A. Stryker, H. Fujioka, R. Anderson</span>. “The Ohio Long Distance Travel Model.” <em class="resume-pub-venue">Transportation Research Record</em>, 2007.</div>
|
||
<div class="resume-publication"><span class="resume-pub-authors">Andrew Stryker, Joel Freedman, John Britting</span>. “A Practical Evaluation of Alternative Methods to Trip Distribution.” <em class="resume-pub-venue">Transportation Research Board Planning Applications Conference</em>, 2005.</div>
|
||
</section>
|