Built a LangGraphmulti-agent system over 54.7M AIS vessel position records in BigQuery with tool-use orchestration, letting analysts query multi-year maritime traffic in natural language instead of hand-written SQL.
Implemented grounding checks and fallback handling that validate vessel, port, and timestamp references against the underlying tables before an answer is returned, reducing hallucinated entities in agent output.
Wrote evaluation prompts and a scoring rubric covering factual grounding, response tone, and workflow alignment, used to compare agent versions before each release.
Engineered a multi-year AIS ingestion pipeline (2019–2024) for the Port of Los Angeles, loading daily compressed .csv.zst files into BigQuery via GCP compute and storage with automated cleaning and deduplication.
Computed vessel dwell time distributions, congestion indices, and seasonal arrival patterns, and applied Kruskal-Wallis hypothesis testing to identify statistically significant seasonal congestion shifts (p < 0.01).
Served the system through a FastAPI backend deployed on GCP with interactive Plotly dashboards for exploratory review of agent findings.
The bullets above are reported in the full source resume ↗. Repository findings and any differences are identified separately below.
01 / SYSTEM ARCHITECTURE
How it fits together.
The current team repository separates a FastAPI service, a live AIS microservice, and a React dashboard. A shared RiskState flows through weather, congestion, and vessel agents in sequence before a risk orchestrator combines their outputs and requests a Groq explanation. PortWatch history feeds the forecasting layer; PostgreSQL stores the application data.
Team report: train to a cutoff, forecast the next seven days, and compare with actuals at 19 ports.
Tier accuracy 57.1% → 67.7%; congestion-score MAE 16.6 → 13.0; portcall MAE 3.1 → 2.8. The single-window result is distinct from the walk-forward result.