I build and maintain production business systems — leading a Blazor-to-React migration, validating API contracts, reviewing code with merge authority, and troubleshooting CI/CD and integration issues across a four-person team. I also design and ship independent full-stack products, including a browser-based tool with 3,000+ users sustained over two years.
I'm Marlo Mayberry, a full-stack developer leading a Blazor-to-React migration in production, with code review authority and end-to-end ownership from architecture through delivery.
Leading a Blazor-to-React migration as the sole frontend developer on a four-person team, rebuilding a production logistics platform used for 4PL shipping quote, tracking, and document workflows
Review pull requests with merge authority across the team, validating API contracts, flagging dependency and architecture risks, and using AI-assisted code review to raise the quality bar on production changes
Architecting reusable React component systems and migrating state-heavy Blazor workflows to React with full API integration and form validation
Troubleshoot CI/CD pipeline failures, deployment issues, and environment and service connectivity problems across the migration
Built and maintained multi-step operational workflows in Blazor including rate quoting, multi-stop shipment handling, document management, and shipment history
Supported secure session handling through Redis-backed persistence, cookie lifecycle updates, and authentication gate enforcement across protected routes
Contributed to MVP planning and application structure while expanding release reliability through automated frontend testing
DBMG
Oct 2022 – Aug 2023
Developer, QA Automation
Built QA systems and automated build verification testing to support reliable release pipelines
Wrote automated regression tests using Selenium WebDriver (C#) and GREP-based log verification
Reduced manual QA bottlenecks, improving release confidence across the team
Technical Expertise
The core tools and frameworks I use to build production web applications.
.NET / Blazor Systems
.NET 8, Blazor Server, and C# powering production business systems — quoting, tracking, and document workflows for a 4PL logistics platform.
React + TypeScript
React, TypeScript, and Vite for component-driven UIs. I build fast, type-safe front-ends for web applications and side projects.
API Integration & Contracts
REST API integration, contract validation, and frontend/backend coordination — plus client-side state management and persistence across Blazor and React.
Testing / QA Automation
Automated build verification and regression testing using Selenium WebDriver (C#). I've owned QA pipelines that ship code with confidence.
UI/UX
Responsive layouts, accessibility basics, and form-heavy workflow design. HTML, CSS, Tailwind, and Bootstrap — I embrace the front-end.
DevOps / Delivery
GitHub Actions for CI/CD, Netlify and Azure deploys, and hands-on troubleshooting of pipeline failures, deployment issues, and environment and service connectivity problems.
Systems I Work With
The technical environments and architectural concerns I navigate day-to-day in production development.
Cross-System Integration
Coordinating work across Blazor and React front ends, .NET APIs, and shared business logic — keeping quoting, tracking, and document workflows consistent as the platform migrates piece by piece.
Contract Integrity
Validating API contracts between frontend and backend, catching breaking changes before they ship, and keeping request/response shapes honest as endpoints evolve.
Technical Investigation
Tracing CI failures, deployment issues, environment misconfiguration, and service connectivity problems back to root cause — not just the frontend symptom.
Automated Testing & Release Reliability
Push-based automated front-end testing, regression coverage, and QA pipelines designed to keep production deployments stable.
Azure & GitHub-Based Delivery
CI/CD workflows using GitHub Actions, Azure hosting, and Netlify deploys for consistent, repeatable release pipelines.
Modular UI Architecture
Reusable Razor component systems, client-side tool modules, and local-first persistence patterns built for long-term feature expansion.
Code Review & Quality Ownership
Reviewing pull requests with merge authority, flagging architectural concerns and dependency risks before they land, and using AI-assisted review to raise the quality bar on production changes.
Architecture & Dependency Analysis
Evaluating new dependencies and architectural tradeoffs, weighing long-term maintainability against short-term velocity for a platform in active migration.
Things I've Built
These are the products I actively maintain today, spanning production UI architecture, client-side tooling, and full-stack application design.
Multi-tenant, permission-aware campaign encyclopedia and continuity manager for tabletop RPGs — full-stack SaaS with field-level authorization, wiki-linked entities, and audit history.
Worldbinder
Permission-aware campaign continuity platform for TTRPGs — multi-tenant SaaS with entity relationships, revision history, and campaign-scoped authorization. Live on Railway.
Full-stack financial planning platform with clean layered architecture, debt projection, scenario comparison, budgeting, exports, and production deployment on Railway.
Ledgerly
Privacy-first financial planning platform with debt payoff simulation, scenario comparison, budgeting, exports, and credit projection — shipped as a full-stack product on Railway.
Browser-based tabletop RPG suite: initiative tracking, a lightweight battle map VTT, character management, encounter building, and a Notion-style campaign journal — all local-first and offline-capable.
The DM's Toolbox
Modular browser-based tabletop toolkit — initiative tracking, battle map VTT, and campaign journaling with local-first persistence.
Client-side PDF toolkit: view, merge, split, edit pages, convert images, compress, and sign — no file uploads. Eight independently-scoped tools sharing a modular client-side architecture.
PDF Workbench
Privacy-first PDF toolkit: view, merge, split, sign, convert, and compress — entirely client-side, no uploads, no backend.
Experiments
Smaller experiments and UI prototypes. Older work; included for completeness.
Open to full-stack and frontend-focused engineering roles involving React, TypeScript, .NET, enterprise software, and technical ownership.
The DM's Toolbox
The DM's Toolbox v2.3.4
Built for personal use and grown organically to 3,000+ users at launch with 200–300 weekly active users across 2+ years of versioned releases. A full browser-based suite for tabletop RPG Game Masters: initiative tracking with combat automation, a lightweight battle map VTT, guided character creation, encounter building, a Notion-style campaign journal, a mid-session compendium, and improvisation generators — all offline-capable, no login, no tracking.
Focus areas include modular architecture, local-first persistence, feature expansion, and SRD-safe content handling.
Architecture:
Modular tool system — Initiative Tracker, Battle Map, Character Manager, Encounter Builder, Compendium, Journal, and Generators each independently scoped with a shared persistence layer
Battle Map: canvas-based lightweight VTT with grid calibration, token HP/conditions/auras/vision cones, paintable fog-of-war, and persistent measurements
Journal: TipTap-based rich text editor with slash commands, [[wikilinks]] with a backlinks panel, and multi-format export (TXT/MD/DOCX/PDF)
Local-first design: LocalStorage/IndexedDB-backed state with import/export pipelines for portability
SRD-safe content pack system for extensible data without licensing conflicts
Technical Challenges:
Maintaining data stability across versioned feature additions without breaking existing saves
Designing a fast, low-friction UI that holds up under real table-play conditions
Why I Built It:
Needed a reliable, offline-capable DM tool that didn't depend on a subscription or slow network
Became a platform for practicing sustained product iteration, versioning, and real user feedback
Tech Stack:
PDF Workbench
PDF Workbench v0.9.0
A complete client-side PDF toolkit: view, merge, split, reorder/rotate pages, convert images to PDF, compress, add signatures, and export pages as images — without uploading files to a server. Built around a modular client-side tool architecture to support feature expansion without backend dependency.
Privacy-first by design. All processing happens in the browser using pdf.js for rendering and pdf-lib for manipulation. No backend required.
Architecture:
Eight independently-scoped tools — Viewer, Merge, Split, Page Editor, Images→PDF, Compression, Signatures, and PDF→Images — sharing a common file-handling layer
pdf.js for rendering, pdf-lib for manipulation, JSZip for bundled multi-file exports — no backend or server-side processing
Zustand for lightweight global UI state; Tailwind CSS with a custom dual-theme design system
Modular structure designed for ongoing feature addition without architectural rework
Technical Challenges:
Managing large file operations entirely in-browser without memory or performance degradation
Canvas rasterization + JPEG re-encoding for compression quality presets without visible artifacting
Maintaining test coverage across eight independent client-side PDF workflows with Vitest and Playwright
Why I Built It:
Most PDF tools require file uploads — a privacy concern for sensitive documents
Became a platform for practicing modular architecture and client-side system design
Tech Stack:
Ledgerly Shipped v1.0 — Live on Railway
Ledgerly
Ledgerly is a shipped full-stack financial planning platform built on a five-project clean architecture solution — Domain, Application, Infrastructure, API, and Web — with no EF Core references above the Infrastructure layer. Built with Blazor Server, ASP.NET Core, PostgreSQL, and EF Core, deployed on Railway with auto-applied migrations and 94 passing tests covering pure services, user data isolation, and auth flows end-to-end.
Architecture:
Clean layered architecture across Domain, Application, Infrastructure, API, and Web projects with no EF Core references in Domain or Application
Blazor Server frontend + ASP.NET Core API with PostgreSQL/EF Core persistence and user isolation enforced through global query filters
JWT authentication with rotating refresh tokens, ASP.NET Core Identity, and Google OAuth support
Production deployment on Railway with auto-applied migrations, health checks, structured logging, and environment-based configuration
Key Features:
Snowball and Avalanche debt payoff projections with month-by-month amortization tables
Side-by-side scenario comparison showing months saved and interest saved
Reality tracking with logged payments, drift indicators, and updated payoff timelines
Monthly budgeting, planned expenses, recurring expenses, income tracking, and savings goals
Range-based credit score projection with explicit assumption boundaries
CSV and JSON export, dashboard charts, overdue notifications, dark/light theme, and responsive UI
Security & Production:
Two-factor authentication via TOTP authenticator apps
Google OAuth and JWT + rotating refresh token auth flows
Rate limiting on auth endpoints and health check endpoint for uptime monitoring
Serilog structured logging and background overdue-notification email service
Why I Built It:
To demonstrate full-stack ownership — not just UI, but auth, persistence, deployment, and domain modeling
To build a real product with a real domain, not a tutorial clone
Tech Stack:
EF Core 8JWTRadzen BlazorRailwaySendGrid
Worldbinder Live — Active Development
Worldbinder
A multi-tenant, permission-aware knowledge-management platform built for complex campaign continuity in tabletop RPGs — not a notes app. Built as a proper modular-monolith SaaS with React 19, NestJS 11, PostgreSQL/Drizzle ORM, and Redis, deployed to production on Railway at a custom domain and developed through 30+ changelog-tracked milestone releases.
Architecture:
Modular monolith (NestJS API + separate worker process sharing one database for background jobs) rather than microservices, with React 19/Vite frontend and Drizzle ORM over PostgreSQL
Campaign-scoped multi-tenancy with a full role matrix (Owner/GM/Editor/Player/Viewer) enforced through a guard-plus-policy-service split, not a single roles guard
Field-level authorization: GM-only content and entities return a 404 rather than a 403 to unauthorized viewers, so their existence is never disclosed
Short-lived JWT access tokens kept in-memory on the frontend (never localStorage) plus rotating, HttpOnly-cookie refresh tokens with reuse detection that revokes the whole session family on replay
Campaign encyclopedia across 11 typed entity kinds with typed relationships, [[wikilink]] mentions, backlinks, revision history, audit logging, timeline/calendar, plot threads, sessions, and a presigned-upload attachment pipeline
Technical Challenges:
Enforcing field-level and entity-level visibility consistently across entities, relationships, backlinks, and search without ever leaking that hidden content exists
Integration tests run against real Postgres/Redis/Mailpit instances rather than mocks by design, plus Playwright end-to-end coverage driving a real browser — caught bugs (like a StrictMode double-invoke effect bug) that curl-only testing never would have
Optimistic concurrency (409 on stale writes) paired with offline-resilient autosave — failed saves persist to IndexedDB and restore on next visit instead of being lost
Why I Built It:
To ship a real multi-tenant SaaS product end-to-end — auth, authorization, background workers, and production infrastructure — not a tutorial clone
To practice sustained, milestone-based delivery: a scoped roadmap, an honest changelog, and real deployment to a domain I own