Site notes
How this site is built.
A short technical note for engineers who want to know what is behind the portfolio itself. It is a small Astro static site on Cloudflare Pages, with no client-side framework on the public pages.
Stack
What runs underneath.
-
Astro
The site is an Astro 6 static build. Pages are
.astrofiles, content lives in content collections undersrc/content/, and case studies pull source code at build time fromsrc/case-studies/using Vite's?rawimport. -
TypeScript
The approval workflow case study evaluates its scenarios at build time against the same domain module that the public companion repository uses. Request and response shapes on the page are real outputs, not handwritten samples.
-
Hosting
Cloudflare Pages serves the static build. Deployment runs on push to
mainthrough GitHub Actions, withnpm testandnpm run buildgating the deploy. -
Type system
Strict TypeScript, with content collection schemas in
src/content.config.ts. Astro'sastro checkruns as part of the build. -
Typography
Fraunces for display (with swash letterforms disabled), Inter for body and UI, JetBrains Mono for labels and code. Self-hosted under
/fonts/to avoid third-party requests on every visit.
What this is not
Boundaries the site keeps on purpose.
-
Not a public mirror of client work
Case studies are generalized examples modeled on real engineering patterns, not copies of employer or client implementations. The portfolio repository itself stays private.
-
Not a feature catalog
The site is meant to connect the resume to concrete examples. New case studies appear when there is enough code, tests, and context to make the work useful to evaluate. Empty placeholders are intentionally avoided.
-
Not a JavaScript app
The public pages render statically. The case-study scenario tabs work without JavaScript, and no client-side framework is required for the main reading path.
Source
Public companion repositories.
This list comes from the same case-study registry that powers the examples page, so a new repository link only needs to be added in one place.
-
approval-workflow-api
Companion repository for Approval workflow API walkthrough. Workflow scenarios where validation, authorization, state changes, responses, and tests stay connected across C#/.NET and TypeScript paths.
-
serverless-workflow-cdk
Companion repository for CDK construct library for durable serverless workflows. A before-and-after CDK case study about repeated serverless wiring and the point where reusable constructs start to pay for themselves.
-
event-driven-observability-workflow
Companion repository for Operating an event-driven workflow under failure. An async workflow operations case where idempotent intake, retries, DLQ movement, telemetry, alarms, and runbook output stay connected across C#, TypeScript, and CDK.
-
redis-elasticache-platform-patterns
Companion repository for Redis/ElastiCache platform caching across serverless apps. A sanitized platform caching case study about shared ElastiCache Serverless infrastructure, per-service Redis users, generated secrets, Lambda access, and downstream app migrations.
-
delivery-modernization-gates
Companion repository for Trunk-based delivery modernization. A delivery case study about moving release risk earlier with mainline delivery gates that make the policy real.