01 / About

Building tools
for Chicago

Howdy, my name is Andrew Nguyen, and welcome to my website! This website is where I share the projects I build, the ideas I'm exploring, and the lessons I pick up along the way. Some projects are polished, some are experiments, and some are simply excuses to learn a new technology. Together, they document my journey through data engineering, analytics, software development, automation, and AI, while reflecting a simple philosophy: the best way to learn is to build something real.

Although my projects cover a wide range of topics, they all share the same goal: making complicated information easier to understand and more enjoyable to explore. I like combining data engineering, software development, analytics, and AI to build tools that solve real problems, whether that's generating personalized festival schedules, analyzing election trends, improving fantasy football decisions, visualizing transit systems, or creating interactive games. For me, every project starts with curiosity and ends with a deeper understanding of both the technology behind it and the people who use it.

This website is meant to be explored. Every project has its own corner of the workshop, complete with its goals, technical challenges, and the ideas that shaped it. Some projects are polished, others are still evolving, but each represents a step in my journey as a builder. If something catches your eye, dive in and take a look around. You might even find inspiration for your own next project!

0

Projects in the family

each at its own an9.dev subdomain

0

In active build

live or shipping now

0

Public data APIs wired

real sources, not mock data

0

Tools in the stack

languages, data, web, and AI

What I keep coming back to

Transit & cities

How a city moves. CTA coverage, route design, and the case for transit that just works.

Architecture

How places are built and why some blocks feel alive. The structure under the streetscape.

Cooking & food

Trying things I've never eaten, then figuring out why the groceries cost what they cost.

Politics & sports

I follow both mostly for the statistics — funding flows, polls, box scores, and trends.

Building with AI

Learning to code, using AI to get ideas out of my head and onto a screen faster.

What I build with

38 tools

Languages I Write

PythonETL pipelines, data enrichment, and forecasting across every project.SQLPostgres + DuckDB queries — the bronze→silver→gold transforms behind the data.TypeScriptStrict typing for every Next.js and Astro frontend in the family.JavaScriptThe runtime under it all: browser glue, scripting, and build tooling.MATLABNumerical work carried over from my mechanical-engineering background.

Data & Public APIs

SupabasePostgres + auto-REST + RLS — the cached data store for Soundcheck, BlitzBoard, and Parlor.PostGISSpatial queries for MetroTrack's route and coverage mapping.DuckDBIn-process analytics engine under the dbt transform layer.dbtTested bronze→silver→gold models that shape data before it reaches the app.BigQueryWarehouse-scale SQL for larger analytical slices.Spotify APILineup and streaming stats for Soundcheck; the now-playing signal here.Deezer APITrack previews and artist metadata for Soundcheck and Parlor's jukebox.Sleeper APILive league and draft state for BlitzBoard.nflverseHistorical NFL play-by-play and projections for BlitzBoard.TMDB APIFilm and TV posters and facts for Parlor's gallery round.Wikipedia APIThe raw fact source Parlor's nightly question bank is forged from.FEC APICampaign-finance and Super PAC filings for Behind the Ballot.Census APIDistrict demographics for Behind the Ballot.FRED APIFederal economic indicators underneath the political and grocery data.BLS APILabor and price data — the CPI numbers behind the cost stories.GTFSTransit schedules and stops feeding MetroTrack's coverage maps.Chicago Data PortalOpen civic datasets powering the Chicago transit work.

Web & Build

Next.jsApp Router frontends for the portfolio, Soundcheck, BlitzBoard, and Parlor.AstroStatic-first islands powering Behind the Ballot and MetroTrack.ReactThe component layer across every interactive frontend.TailwindUtility CSS plus design tokens — the shared styling system.Framer MotionReveal and transition motion, always reduce-motion guarded.D3.jsCustom data viz for finance flows and transit charts.MapLibreVector basemaps and route overlays for MetroTrack.deck.glGPU map layers for dense transit and coverage data.EChartsFunding and time-series charts across the civic projects.Tone.jsSynthesized audio for the cooking-music experiments.VercelHosting and preview deploys for the Next.js apps.GitHub ActionsScheduled cron ETL that refreshes each project's data nightly.

Learning With AI

Claude APIAI-generated festival insights in Soundcheck — and building with Claude Code.AI-Assisted CodingGetting ideas from head to screen faster with LLM pair-programming.Prompt-Driven PrototypingSpec → working slice loops when shaping a new feature.Vercel AI SDKThe agent and tool-call layer for the planned Data Concierge.

Outside the projects

Public TransitUrban PlanningArchitectureCookingTrying New RestaurantsChicagoConcertsVinyl RecordsBikingSwimmingTravelingTrivia NightsHouseplants

02 / Projects

Things I'm building

Music
Sports
Civic
Games
Food
Data

03 / Contact

Let's talk

Open to interesting collaborations, data engineering roles, and side-project conversations. Drop a note and I'll get back within a day.