Civic Data Engineer · Atlanta, GA · ES · EN
Building systems that make power visible.
I turn messy public data into tested pipelines, dashboards, maps, and bilingual tools — used by organizers, coalitions, and voters across Georgia’s 159 counties. Built under real election timelines, not in a lab.
Built during real election conditions · 2024 · 2025 · 2026
Core Stack
Featured System
GA Watchdog — open civic data pipelines
A public civic data pipeline tracking Georgia election administration activity across counties, board meetings, and public records. Built in public as both production infrastructure and a teaching repo for engineers working with political data.
- Tracks every Georgia State Election Board meeting — decisions, compliance, sources.
- Ingests the statutorily-public voter file with confidential fields excluded by design.
- Shared DuckDB warehouse powers digests, alerts, and a public tracker.
What I Build
Three lanes I work in
Find the one that matches your team.
-
Data pipelines
Public data ingestion, cleaning, testing, and documentation — with format drift, source unreliability, and political stakes baked into the design.
Python · Prefect · dlt · dbt · DuckDB · BigQuery
-
Civic dashboards
Maps, trackers, and decision tools for coalitions and campaigns — designed for nontechnical decision-makers under real timelines.
TypeScript · Geospatial · Looker Studio · Supabase
-
Election tools
Bilingual lookup tools, voter protection infrastructure, and county-level monitoring — built to be usable on a phone, on election day, in 10 seconds.
Bilingual UX · ES/EN data models · field-tested
Case Studies
Selected civic data work
End-to-end systems from raw public data to real-time tools used by voters, organizers, and coalitions.
GA Watchdog — Open Civic Data Pipelines
Built a public pipeline system that monitors Georgia election activity in real time — Prefect + dlt + DuckDB turn scattered SEB records and voter file releases into a usable civic tracker, in public.
Metro Precinct Finder — Election Day Tool
10-second bilingual address-to-precinct lookup for Gwinnett, Fulton, and DeKalb — built so voters and roving poll monitors can answer one question in one tap, in either language.
Georgia Redistricting Dashboard
Coalition briefing tool replacing a static deck — interactive map of 14 congressional districts, plain-language explanation of state law, and post-Callais session scenarios.
GA County Risk Dashboard — Enforcement Data
Python ETL turning scattered enforcement records into a county-level decision dashboard — coalitions can pull it up in a call and prioritize rapid response by county.
Georgia 2026 Early Voting Map
Ingested and normalized early voting data from all 159 Georgia counties — one interactive map and zero manual lookups for the May 2026 primary.
Airtable Data Tracker CLI
One Python command scaffolds a typed Airtable tracker base with seed records — invisible infrastructure for organizing teams that live in Airtable but need data integrity.
About
Organizer turned engineer
I’m Maria del Rosario Palacios — a multilingual immigrant worker organizer who became a data engineer because I kept running into the same problem: the data that could prove what communities already knew was scattered, dirty, or locked away.
I bring 10+ years of organizing, training, and civic infrastructure experience into technical systems work. I have built tools for election protection, county monitoring, bilingual voter access, and coalition decision-making across Georgia.
I work where the data is messy, the timelines are real, and the users are nontechnical. My favorite kind of project is one where a spreadsheet becomes a pipeline, a pipeline becomes a tool, and a tool becomes a decision someone can defend in public.
Based in Atlanta, fluent in Spanish and English, and currently open to contract data engineering work — especially pipeline migration, testing, and documentation for civic and progressive organizations.
Data Engineering
Full-Stack & Frontend
Analytics & Visualization
Collaboration & Delivery
Working With Me
Three ways teams hire me
-
Pipeline cleanup
Messy spreadsheets, public records, Airtable bases, and county-level datasets — turned into typed, tested, documented pipelines.
-
Civic dashboard builds
Maps, trackers, and public-facing tools that nontechnical users can actually run a meeting from.
-
Documentation & handoff
Maintainable systems after launch — ADRs, runbooks, and the kind of docs your next hire can read on day one.
Hire Me
Need a civic data system built, cleaned up, migrated, or documented?
I’m available for short-term contracts, technical audits, pipeline builds, and civic-tech prototypes — especially when the data is political, bilingual, and on a deadline.
Based in Atlanta · Working across the U.S. South · ES · EN
GA Watchdog — Open Civic Data Pipelines
Open data pipelines watching Georgia elections in real time. SEB meetings tracker and voter file watcher built with Prefect orchestration, dlt loading, and DuckDB — designed as a public teaching repository for civic data engineering patterns.
The Problem
Georgia's State Election Board holds public meetings and publishes voter file updates with no automated tracking. Organizers and journalists have to check manually — or miss it entirely. Public data that should flow automatically sits siloed.
What I Built
- SEB meetings scraper and tracker with Prefect orchestration
- Voter file watcher pipeline using dlt for reliable incremental loading
- DuckDB as the analytical layer for fast local querying
- Full documentation and teaching notes for each pattern
Pipeline Architecture
The watchdog is structured around two independent pipelines that share a common orchestration layer. Prefect handles scheduling, retries, and failure alerting — the same patterns used in production data engineering environments. dlt manages the schema evolution and incremental loading so that new SEB meeting records merge cleanly without duplicates.
DuckDB sits at the analytical layer. Because Georgia's civic datasets are mid-scale (thousands to low millions of rows), DuckDB handles the analytical queries locally without spinning up cloud infrastructure — making the whole system runnable by a single organizer on a laptop.
Teaching Dimension
This repo was explicitly built to be readable. Every pipeline has inline comments explaining the "why," not just the "what." The goal is for a data analyst who has never used Prefect or dlt to follow the code and understand the engineering decisions — especially around schema handling, idempotency, and incremental loads.
You May Also Like
Metro Precinct Finder
Bilingual election-day polling lookup for 3 Georgia counties.
GA 2026 Early Voting Map
Python-ingested map of early voting across all 159 counties.
GA County Risk Dashboard
Enforcement risk pipeline and coalition dashboard.
Metro Precinct Finder — Election Day Tool
Bilingual address-to-polling-place lookup with map, directions, and voter-protection hotline serving Gwinnett, Fulton, and DeKalb counties. Built for organizers and voters by Common Cause Georgia.
The Problem
On Election Day, voters — especially first-time voters and Spanish-speakers — struggle to find their correct polling location. Gwinnett alone has 156 precincts. A single wrong precinct means a provisional ballot or no vote at all.
What I Built
- Address lookup across 156 Gwinnett + Fulton + DeKalb precincts
- Interactive map with directions to each polling location
- Bilingual UI (English and Spanish) throughout
- Voter-protection hotline prominently placed for organizers
Data Architecture
The core data challenge was normalizing precinct data from three separate county election websites — each with different formats, address standards, and update cadences. I wrote ingestion scripts to clean, normalize, and join the datasets into a single source of truth, then built lookup logic that handles partial address matches and fuzzy search so voters aren't penalized for minor typos.
Design for Real Use
This tool is used by Common Cause Georgia volunteers doing door-to-door and phone bank work. The design priorities were mobile-first, fast load time, and the voter-protection hotline always visible. The bilingual requirement shaped every UX decision — labels, error messages, and instructions all exist in both languages, not just a translate button at the top.
You May Also Like
GA Watchdog Pipelines
Prefect + dlt + DuckDB watching Georgia elections in real time.
Georgia Redistricting Dashboard
Interactive congressional district map + June 2026 session tracker.
GA 2026 Early Voting Map
Python-ingested map of early voting across all 159 counties.
Georgia Redistricting Dashboard
Interactive dashboard covering 14 congressional districts, how maps are drawn, what state law requires, and June 17, 2026 special session scenarios. Coalition briefing tool for Common Cause Georgia.
14 congressional districts · post-Callais scenarios
The Problem
The post-Callais redistricting process was moving faster than coalitions could track. Organizers needed a single place to see current district maps, legal requirements, special session scenarios, and what was at stake — without relying on a GIS specialist.
What I Built
- Interactive map of all 14 Georgia congressional districts
- Explainer sections on how maps are drawn and what state law requires
- June 17, 2026 special session scenario tracker
- Coalition-ready briefing format for rapid deployment
Structured Data Under Policy
The hardest part wasn't the mapping — it was structuring legislative timeline data so it stayed accurate as the special session dates and scenarios shifted. I built the dashboard so content sections could be updated by non-engineers, with the data layer separated from the presentation layer.
Audience: Steering Committees
This wasn't a public-facing voter tool — it was built for coalition steering committees who needed to brief organizational leadership quickly. The design prioritized clarity, printability, and information density over public-facing polish.
You May Also Like
GA Watchdog Pipelines
Prefect + dlt + DuckDB watching Georgia elections in real time.
Metro Precinct Finder
Bilingual election-day polling lookup for 3 Georgia counties.
GA County Risk Dashboard
Enforcement risk pipeline and coalition dashboard.
GA County Risk Dashboard — Enforcement Data
Python ETL pipeline ingesting public enforcement data, cleaning and joining county-level records, and delivering a coalition dashboard tracking immigration enforcement risk across Georgia's 159 counties.
159 Georgia counties · risk-scored from public records
The Problem
Immigration enforcement data is public but scattered across dozens of federal and state sources — ICE reports, arrest logs, detention records — with no county-level synthesis. Coalitions were making decisions without a unified picture.
What I Built
- Python ETL pipeline ingesting multiple public data sources
- County-level risk scoring from normalized enforcement records
- Looker Studio dashboard with 159-county breakdown
- Automated refresh so data stays current without manual pulls
The Data Engineering Challenge
The raw enforcement data came in multiple formats — PDFs, CSVs, API endpoints with inconsistent schemas. The pipeline had to handle format variability gracefully, flag anomalies, and produce a clean, joinable county-level table even when source data was late or malformed. I built schema validation checks into the pipeline so the dashboard would never show stale data silently.
Coalition Impact
The dashboard became a live tool in coalition meetings — organizers could pull it up in a call and point to specific counties, compare risk levels, and prioritize rapid-response deployment. Turning a chaotic data landscape into a single decision-making interface was the core design goal.
You May Also Like
GA Watchdog Pipelines
Prefect + dlt + DuckDB watching Georgia elections in real time.
Georgia Redistricting Dashboard
Interactive congressional district map + June 2026 session tracker.
Airtable Data Tracker CLI
Python CLI for scaffolding typed organizing data infrastructure.
Georgia 2026 Early Voting Map
Python-ingested interactive map of early voting locations and hours across Georgia's 159 counties for the May 2026 primary. Nonpartisan public information tool built for voter access.
The Problem
Georgia's 159 counties each post early voting schedules independently — in PDFs, on county websites, with varying formats. Voters, especially in rural counties, had no single source for all 159 locations and hours.
What I Built
- Python ingestion pipeline pulling and normalizing 159 county data sources
- Data quality checks flagging missing or inconsistent hours
- Interactive map with location + hours for every county
- Mobile-optimized for voters checking on their phones
Ingestion at Scale
The core challenge was handling 159 independent data sources — some well-structured, some scraped from PDFs, some requiring manual review. I built a tiered ingestion approach: automated pulls for counties with consistent formats, flagging logic for problematic records, and a simple review queue for edge cases. The final dataset was clean enough to power a public-facing map with zero manual intervention at query time.
You May Also Like
GA Watchdog Pipelines
Prefect + dlt + DuckDB watching Georgia elections in real time.
Metro Precinct Finder
Bilingual election-day polling lookup for 3 Georgia counties.
GA County Risk Dashboard
Enforcement risk pipeline and coalition dashboard.
Airtable Data Tracker CLI
Python CLI using pyAirtable to scaffold typed data tracker bases with seed records. A reusable infrastructure template for organizing data management workflows — purpose-built for teams that live in Airtable but need programmatic data integrity.
The Problem
Organizing teams often build Airtable bases manually for each campaign or program — inconsistent field types, missing validation, no seed data. Onboarding a new base takes hours and produces fragile data structures that break downstream analysis.
What I Built
- Python CLI that provisions a full Airtable base via API
- Typed field definitions — selects, dates, links, phone numbers
- Seed records so the base is immediately usable and testable
- Reusable template pattern for different organizing contexts
Engineering for Non-Engineers
The target user for the output of this tool — the Airtable base itself — is an organizing coordinator who has never touched code. That constraint shaped every decision: field types needed to enforce data integrity invisibly, seed records needed to model correct data entry, and the base structure needed to be intuitive to someone learning it for the first time.
The CLI itself is designed to be run once by a data engineer to set up the base, then never touched again by the technical team. Infrastructure that disappears into the background and just works.
You May Also Like
GA Watchdog Pipelines
Prefect + dlt + DuckDB watching Georgia elections in real time.
GA County Risk Dashboard
Enforcement risk pipeline and coalition dashboard.
GA 2026 Early Voting Map
Python-ingested map of early voting across all 159 counties.