I'm moving deeper into AI automation and data analysis. I like taking work that is repetitive, messy, or easy to get wrong and turning it into something clearer and genuinely useful.
A lot of my earlier work grew out of maps and interactive visualization. I still enjoy that side of things, but these days I am just as interested in what happens behind the interface: where the data came from, what the automation can actually be trusted to do, and how to keep a useful record of the result.
中文:我现在主要在做 AI 自动化和数据分析。比起堆概念,我更喜欢把麻烦、重复、容易出错的流程做成真正能用的工具。
AI Automation · Data Analysis · Product Engineering
|
AI automation · Python · SQLite · Playwright This is the project I am spending the most time on right now. It brings job discovery, fit analysis, application materials, browser assistance, and status tracking into one local workspace. It is still growing. I am especially interested in making the automation more capable without pretending uncertainty, privacy, or human decisions have disappeared. It is an independent continuation of the inactive upstream project. |
JavaScript · Python · Geospatial tooling This started from a fairly specific wish: I wanted a better way to edit political maps and build alternate-history scenarios in the browser. It has since grown into a much larger map and storytelling workbench. |
|
Data analysis · MapLibre GL JS · Chart.js · Turf A bilingual project for exploring Philadelphia crime data and spatial patterns, plus a Route Safety Diary prototype. It also pushed me to think more carefully about what public data can and cannot honestly tell us. |
TypeScript · React · Vite · Canvas 2D A side project for making custom card faces in the browser. I used it to explore Canvas rendering, local files, visual comparison, and the small interaction details that make a creative tool pleasant to use. |
I also enjoy analysis work where the source, cleaning decisions, and limits are part of the result rather than footnotes added at the end.
- NYPD Temporal Analysis — a reproducible audit, conservative cleaning pipeline, and temporal exploration of an official public dataset.
- Nightlight Disaster Observatory — an aggregate-only research portfolio exploring disaster recovery, nighttime lights, and recorded electricity outages.
- Automation: Python, Typer, SQLite, Playwright, local-first workflows, and human review where it actually matters.
- Analysis: pandas, Jupyter, source audits, careful cleaning, reproducible pipelines, and validation.
- Interfaces and visualization: JavaScript, TypeScript, React, Vue, Vite, MapLibre GL JS, Chart.js, Turf, and Canvas 2D.
- Keeping things dependable: tests, GitHub Actions, release checks, and clear boundaries between a demo and something ready for real use.
- Giving ApplyPilot Local a more useful analytical workbench and more capable, honest automation.
- Doing more analysis projects where the full path from source data to conclusion can be reproduced.
- Keeping maps and interactive visualization in the mix whenever they make the data easier to understand.



