Selected work

Crash Data Scorecard

A full-stack crash reporting and scorecard product that combines an Angular frontend with a Snowflake- and S3-backed .NET API for ETL processing, tracking, and operational visibility.

This system pairs an Angular 18 application with a .NET 9 Web API designed to ingest state crash datasets from AWS S3, validate and process large CSV and ZIP inputs, load Snowflake tables, and surface scorecard-style reporting workflows.

What this involved

The frontend is built with Angular 18, Angular Material, TypeScript, routing, forms, and RxJS, which gives the product a proper application structure rather than a static reporting shell.

The backend is a .NET 9 ASP.NET Core API that orchestrates ETL runs from S3 ZIP files into Snowflake, with file-level and folder-level tracking, duplicate detection, resumable processing, and health endpoints.

Supporting implementation details include CsvHelper for large CSV ingestion, ClosedXML for spreadsheet handling, Serilog for structured logging, Swagger for API visibility, and environment-driven deployment on an EC2-hosted runtime.

Capabilities shown

Operational scorecardsFull-stack deliveryETL orchestrationCloud data processingAnalytics workflows

Technology stack

Angular 18Angular MaterialTypeScriptRxJS.NET 9ASP.NET Core Web APIAWS S3SnowflakeCsvHelperClosedXMLSerilogSwagger