Portfolio

Selected projects and production work

Shipped work across web, tooling, and automation.

Budget Tracker

Budget Tracker

Personal budgeting app: import a bank's CSV, auto-categorize with rules, and track spending against monthly budgets. C#/.NET API on PostgreSQL where the database itself enforces per-user data isolation, with a small framework-free UI and Playwright browser tests. Log in as demo@example.com / budget-demo-2026.

C#.NETPostgreSQLOpenAPIxUnitPlaywrightDocker
NixOS Homelab

NixOS Homelab

Declarative configuration for five machines (desktops, laptops, a Raspberry Pi and a public VPS) built as a single flake. Secrets are encrypted with sops-nix, the VPS auto-deploys from Forgejo CI, and about 40 checks gate every commit, including NixOS VM tests. Self-hosts Forgejo, Immich, Paperless and Authelia, with monitoring and tested 3-2-1 restic backups.

NixNixOSLinuxCI/CDnginx
QA Automation Framework

QA Automation Framework

End-to-end browser test suite covering auth, repository and issue workflows across a self-hosted Git server and GitHub. Uses the Page Object Model so tests read as business scenarios, with automatic retries, screenshots on failure and a Nix-pinned browser for reproducible runs.

PlaywrightTypeScriptPage Object ModelNix
Personal Portfolio

Personal Portfolio

This site — a resume and project portfolio built with Astro. Statically generated, no frameworks, deployed via Forgejo Actions.

AstroTypeScriptNixOS
PEAK Health Nepal

PEAK Health Nepal

Website and social media presence for a nonprofit providing ICU nurse training in Nepal. Features a resource library, donation integration, and admin tooling.

ReactNode.jsPostgreSQLStripe