Skip to content
Bowen ChenOpen to junior roles

Bowen Chen

Web developer

I'm a first-year DAW student in Madrid, previously working in systems administration — Linux, Windows Server, virtualisation, scripting. That taught me to care about how things run, not just how they look. I'm currently building Prism, a dashboard that makes CDC and WHO epidemiological data queryable in plain language.

Work

2026-07

Prism

building

A dashboard that makes CDC and WHO epidemiological data queryable in plain language.

Problem
CDC and WHO publish authoritative epidemiological data across dozens of endpoints, in formats built for specialists. Answering something as simple as how flu activity in Spain compares to last year means knowing which endpoint holds it and how to parse it.
Approach
A FastAPI backend that ingests CDC and WHO data, chunks and embeds it into a pgvector store, and answers natural-language queries by retrieving relevant context and passing it to the Claude API. The backend runs; retrieval, ingestion and the dashboard are in progress.
Decision
Retrieval over fine-tuning

Epidemiological data changes weekly, so a fine-tuned model goes stale between updates and costs a retraining cycle to correct. Retrieval keeps the model fixed and the data live, and every answer can cite the dataset and fetch timestamp it came from.

Stack
  • Python
  • FastAPI
  • PostgreSQL + pgvector
  • Claude API
  • Next.js
  • Docker
Links
2026-07

bowenchen.dev

live

This site — a work register built from scratch.

Problem
My previous portfolio was an unmodified Bootstrap template with placeholder text and no real projects. It communicated nothing about how I work.
Approach
Rebuilt as a statically generated Next.js site with a single typed content file as the source of truth, so publishing a new project is one commit and the layout can never drift out of sync with the data.
Decision
A register layout instead of a card grid

A card grid advertises how much work you have; with three projects it reads as empty space. A dated register reads as a complete record at any length, so the layout stays honest as the site grows.

Stack
  • Next.js 16
  • TypeScript
  • Tailwind CSS v4
  • Vercel
Links

Contact

Best reached by email. I read everything.

hello@bowenchen.dev