Full-stack engineer at the City of Philadelphia — Streets Department, where I build and maintain the web platforms residents and regulated businesses actually use: waste & recycling compliance filings, street-sweeping and snow-plow maps, permit payments, and the GIS services behind them.
I'm a genuinely enthusiastic developer — the kind who keeps building after hours because the problems are interesting, not because anyone asked. What I care about most is architecture that survives contact with production: clean layer boundaries, event-driven designs, and deployment pipelines that don't keep secrets lying around.
🏛️ Civic platforms — .NET Clean Architecture APIs paired with Vue 3 + TypeScript front ends. Regulatory form workflows, payment integrations, and public-facing Esri/ArcGIS mapping applications used across Philadelphia.
🧱 Developer tooling — I built my department's dotnet new scaffolding template:
a .NET 10 + Vue 3 starter with configurable auth (JWT, Entra ID, or none), OIDC-based
keyless AWS deploys, and Terraform-provisioned infrastructure. New projects start from a
single command rather than days of setup.
📈 Algorithmic trading (personal project, built in my free hours) — a side project I build purely out of curiosity: a composable ASP.NET Core engine for opening-range-breakout futures trading. Strategies are pure signal generators; a single event handler owns the full trade lifecycle across live, paper, and backtest execution. Integrates four brokerage APIs over shared WebSocket feeds, with a SignalR real-time dashboard and Azure Bicep infrastructure.
It's where I get to try ideas the day job has no room for — event-driven architecture, real-time data pipelines, and infrastructure-as-code — and most of what I learn there ends up coming back to my professional work.
Modernizing legacy services onto .NET 10, and working out how AI coding agents can extend a codebase without quietly violating its architecture — writing Copilot instruction files, reusable agent skills, and architecture-diagram conventions so generated code respects layer boundaries.
Daily drivers: Visual Studio · Rider · VS Code · Claude Code · GitHub Copilot · Codex
Backend
Frontend
Cloud & DevOps
Data & Geo
Most of my day-to-day work lives in private municipal repositories, so this profile shows only a slice of it.




