Merge branch 'main' into demo/reactable

This commit is contained in:
Andrew Stryker
2026-03-25 09:57:54 -07:00
5 changed files with 806 additions and 111 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
---
title: About Me
date: 2023-11-08T10:22:23-08:00
date: 2026-03-24T22:22:23-08:00
draft: false
---
+799
View File
@@ -0,0 +1,799 @@
---
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 2049May 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 Whartons 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">Quadrant 4</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-date">Apr 2025 present</span> <span class="resume-position-title">Head of Data and Signals</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 wasnt 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 companys 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 Apples 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 companys 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 companys 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 companys 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>
</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">Orange, CA</span></div>
<div class="resume-main-col">
</div><div class="resume-margin-note resume-margin-note--location"><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 regions 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">Technical Skills</h2>
<hr>
<dl class="resume-dl resume-skills-dl"><dt>Languages</dt><dd>Python, R, SQL</dd>
<dt>Frameworks</dt><dd>FastAPI, Dagster, dbt, Quarto, Drools</dd>
<dt>Infrastructure</dt><dd>GCE, GKE, Docker, PostgreSQL, BigQuery, CI/CD</dd>
<dt>Methods</dt><dd>Data Warehousing, A/B Testing, Cohort Analysis, Forecasting, NLP, Bayesian Statistics, User Acquisition</dd>
<dt>Platforms</dt><dd>Amplitude, Statsig, Meta Ads</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>. &ldquo;Tangled: Isolating SEM Savings.&rdquo; <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>. &ldquo;Why the Light Bulb is No Longer a Textbook Example for Price Elasticity: Results from Choice Experiments and Demand Modeling Research.&rdquo; <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>. &ldquo;Traveler Response to System Change, Chapter 17: Transit-Oriented Development.&rdquo; <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>. &ldquo;The Ohio Long Distance Travel Model.&rdquo; <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>. &ldquo;A Practical Evaluation of Alternative Methods to Trip Distribution.&rdquo; <em class="resume-pub-venue">Transportation Research Board Planning Applications Conference</em>, 2005.</div>
</section>
-108
View File
@@ -1,108 +0,0 @@
---
title: Résumé
date: 2023-11-08T10:22:23-08:00
draft: false
data:
jobs:
EA:
name: Electronic Arts
url: 'https://ea.com'
Glu:
name: Glu Mobile
url: 'https://glu.com'
---
<!--
Consider placing data in the YAML block. Then insert this in a way that makes
sense, given the output format. The advantage is that it makes parsing easier
and more robust. The trade-off is the distance between data and text.
-->
<!-- revise with text from resume writer -->
Business leader with strong analytics, data, and marketing expertise. I have
applied data analytics and programming to deliver results across a wide range
of industries, including mobile game marketing, web publishing, the electrical
grid, and transportation. As a manager, I uncover opportunities, remove
impediments, and guide team members toward professional growth. I am known for
developing a strong network within an organization, driving innovative
technical solutions, and effectively coaching a diverse set of team members.
## Work Experience
### [Electronic Arts (EA)](https://ea.com)
_Senior Diector of Growth Analytics and Data Science (2020--2023), including
[Glu Mobile](https://glu.com)_
Building and leading teams with a focus on growth marketing, including
a cross-functional business intelligence team (in partnership with
engineering), marking analysts (embedded with the Marketing team), and data
science with a focus on user acquisition. I define the vision for growth
marketing analytics and the execution the plan. As a member of EA Mobiles
Growth Team senior leadership team, I collaborate across teams to more
effectively measure the health of players and games, identify differences in
our players, and discover new opportunities to grow revenue revenue.
{{< rawhtml >}}
<details open="open">
<summary>
Accomplishments include:
</summary>
{{< /rawhtml >}}
- *Saving the company \$100 million in marketing expenses when launching a
new game.* I surfaced and demonstrated that the incumbent forecasting
methodology would lead to bad business decisions prior to game launch. I
then convened a cross-functional team to tackle the problem. Additionally,
I implemented a transition state model for forecasting cohort growth as an
\texttt{R} package. In addition to reducing wasteful spend, the approach I
drove enabled informed, constructive conversations between the game
development and marketing teams.
- *Cutting the effort required for analyzing marketing campaigns in half.*
Prior to me joining Glu, we stored player activities in terms game events
and did not completely track our marketing activities. Furthermore, the
tools we were using (Hive and Hadoop) required specialized computing
skills. I assembled a cross-functional team effort to modernize our
business intelligence practice. We now use a scalable, cloud-based
relational data warehouse with analytics friendly tables of key business
processes. We are adopting this approach across the entire EA Mobile
portfolio.
{{< rawhtml >}}
</details>
{{< /rawhtml >}}
<!--
\item \emph{Cutting the effort required for analyzing marketing campaigns in
half.} Prior to me joining Glu, we stored player activities in terms game
events and did not completely track our marketing activities.
Furthermore, the tools we were using (Hive and Hadoop) required
specialized computing skills. I assembled a cross-functional team effort
to modernize our business intelligence practice. We now use a scalable,
cloud-based relational data warehouse with analytics friendly tables of
key business processes. We are adopting this approach across the entire EA
Mobile portfolio.
\item \emph{Navigating Apples App Tracking Transparency initiative to
maintain acquisition budgets.} Apples
\href{https://developer.apple.com/documentation/storekit/skadnetwork}{SKAdNetwork}
initiative is a threat to businesses that have relied on performance
marketing and use attribution data to manage user acquisition campaigns.
I lead our business intelligence and data science teams through our
response to this challenge. We built new pipelines and analytical
strategies that let us continue advertising budget on iOS while
competitors drastically reduced budgets.
\item \emph{Increasing the returns from product marketing.} Building an
embedded marketing analysts team. Our Marketing team had operated without
dedicated analytical support prior to my arrival. As a result, the team
was limited in its ability to design experiments that would result in
unbiased measurements. Our move to an embedded model means that analysts
now have the full context of marketing initiatives, the authority to
design experiments, and responsibility for interpreting results. We set
the combined marketing and marketing analysts team on a path of continuous
improvement cycles with clear ties between marketing activities and
incremental revenue.
\end{itemize}
-->
+5 -1
View File
@@ -8,6 +8,10 @@ enableRobotsTXT: true
params:
description: Just a great personal website
author:
name: Andrew Stryker
email: andrewjstryker@proton.me
# PaperMod settings
ShowReadingTime: true
ShowCodeCopyButtons: true
@@ -114,7 +118,7 @@ markup:
unsafe: true
renderhooks:
link:
enableDefault: true
useEmbedded: "fallback"
extensions:
passthrough:
enable: true