Exhibit F · Campaign systems
Campaign infrastructure: approval pipeline, donor CRM, social ETL, multilingual sites
An auditable post-approval pipeline, a donor CRM on Cloud SQL and BigQuery, a social ETL for eight candidates, and a six-language campaign site.
- Client
- a campaign consulting firm
- Role
- Lead engineer
- Dates
- January 2026 to present
- Cloud SQL Postgres
- BigQuery
- Pub/Sub
- Cloud Storage
- Cloud Scheduler
- Cloud Functions (Python 3.12)
- Looker Studio
- Next.js 15
- next-intl
- Firestore
- roles, 1 audit trail
- 3
- candidates
- 8
- locales
- 6
- token rotation
- 60-day
Approval pipeline
Media Creator drafts, Admin reviews, Candidate reviews, approved or killed; three roles with scoped permissions; one auditable trail replacing screenshots and text messages.
Donor CRM
Cloud SQL Postgres for operations, BigQuery for reporting, Pub/Sub for normalization, Cloud Storage for raw webhook archives, live donation intake from payment-processor webhooks, admin-generated short-lived candidate call-time access.
Hover or focus a node to trace its lineage.
- Payment-processor webhooks feeds Pub/Sub
- Payment-processor webhooks feeds Cloud Storage
- Pub/Sub feeds Cloud SQL Postgres
- Pub/Sub feeds BigQuery
- Cloud SQL Postgres feeds Call-time access
Social ETL
Cloud Scheduler to a Python 3.12 Cloud Function pulling ad, page, and account metrics from two social platforms into BigQuery with MERGE upserts, per-candidate Looker Studio dashboards, eight candidates, token rotation on a 60-day cycle.
Hover or focus a node to trace its lineage.
- Cloud Scheduler feeds Cloud Function
- 2 social platforms feeds Cloud Function
- Cloud Function feeds BigQuery
- BigQuery feeds Looker Studio
Looker Studio · per candidate
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
Multilingual campaign site
Next.js 15, next-intl, six locales (en, es, ko, vi, zh, hi), Firestore content, catalog-parity tests that fail the build on key drift, a binding language policy for every public string.
- en (English)
- es (Spanish)
- ko (Korean)
- vi (Vietnamese)
- zh (Chinese)
- hi (Hindi)