Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ The generator writes into **marked regions of the hand-authored root pages** (`<
| `adr-list`, `adr-count` | `platform.html` | `docs-src/adr/*.md` + `assets/data/adr-cards.js` |
| `platform-stats`, `library-cards`, `scorecards` | `platform.html` | ADR count, `platform-facts.js`, the four collection sizes, and the index lines in `docs-src/governance/*-ArchitectureScorecard.md` |
| `home-stats` | `index.html` | ADR count + `platform-facts.js` |
| `resume-platform-facts` | `resume.html` | ADR count + `platform-facts.js` |
| `resume-platform-facts`, `resume-package-facts` | `resume.html` | ADR count + `platform-facts.js` |

Generator behaviors worth knowing before touching it or the markdown:

Expand Down
2 changes: 1 addition & 1 deletion assets/data/platform-facts.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ window.PLATFORM_FACTS = {
{ name: "Metapackage", note: "MMCA.Common: one reference that bundles the six core packages (Shared, Domain, Application, Infrastructure, API, Aspire) so a standard app starts from a single PackageReference", items: ["MMCA.Common"] },
],
/* FACTS.md "Architecture fitness functions": test methods, not base classes */
fitnessTests: 138,
fitnessTests: 141,
/* Store, ADC, Helpdesk */
referenceApps: 3,
/* docs-src/governance/ArchitectureEvaluationCriteria.md */
Expand Down
2 changes: 1 addition & 1 deletion assets/data/search-index.json

Large diffs are not rendered by default.

Binary file modified assets/files/Ivan-Ball-llovera-Resume-2026.pdf
Binary file not shown.
8 changes: 4 additions & 4 deletions platform.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#0e151f" media="(prefers-color-scheme: dark)">
<title>The MMCA Platform · Ivan Ball-llovera</title>
<meta name="description" content="MMCA is an open-source .NET 10 platform: a 17-package framework (DDD, Clean Architecture, CQRS) plus reference apps that extract a modular monolith into microservices, proven in production on Azure.">
<meta name="description" content="MMCA is an open-source .NET 10 platform: a 22-package framework (DDD, Clean Architecture, CQRS) plus reference apps that extract a modular monolith into microservices, proven in production on Azure.">
<link rel="canonical" href="https://ivanball.github.io/platform.html">
<link rel="icon" href="assets/img/favicon.svg" type="image/svg+xml">
<link rel="alternate" type="application/rss+xml" title="Ivan Ball-llovera: deep dives on enterprise .NET" href="https://ivanball.github.io/feed.xml">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Ivan Ball-llovera">
<meta property="og:title" content="The MMCA Platform · Ivan Ball-llovera">
<meta property="og:description" content="An open-source .NET 10 framework (17 packages) plus reference apps that take a modular monolith to microservices, proven in production on Azure.">
<meta property="og:description" content="An open-source .NET 10 framework (22 packages) plus reference apps that take a modular monolith to microservices, proven in production on Azure.">
<meta property="og:url" content="https://ivanball.github.io/platform.html">
<meta property="og:image" content="https://ivanball.github.io/assets/img/og-image.png">
<meta property="og:image:alt" content="Ivan Ball-llovera, Senior Software Architect">
<meta property="og:locale" content="en_US">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="The MMCA Platform · Ivan Ball-llovera">
<meta name="twitter:description" content="An open-source .NET 10 framework (17 packages) plus reference apps that take a modular monolith to microservices, proven in production on Azure.">
<meta name="twitter:description" content="An open-source .NET 10 framework (22 packages) plus reference apps that take a modular monolith to microservices, proven in production on Azure.">
<meta name="twitter:image" content="https://ivanball.github.io/assets/img/og-image.png">
<!-- BEGIN head-assets -->
<script>(function(){try{var t=localStorage.getItem('mmca-theme');if(t==='light'||t==='dark')document.documentElement.setAttribute('data-theme',t);if(localStorage.getItem('mmca-rail')==='hidden')document.documentElement.setAttribute('data-rail','hidden');if(localStorage.getItem('mmca-cites')==='shown')document.documentElement.setAttribute('data-cites','shown');}catch(e){}})();</script>
Expand Down Expand Up @@ -121,7 +121,7 @@ <h1>The MMCA platform</h1>
<!-- BEGIN platform-stats -->
<div class="stat"><div class="num">22</div><div class="label">NuGet packages</div></div>
<div class="stat"><div class="num">131</div><div class="label">Architecture Decision Records</div></div>
<div class="stat"><div class="num">138</div><div class="label">Architecture fitness tests</div></div>
<div class="stat"><div class="num">141</div><div class="label">Architecture fitness tests</div></div>
<div class="stat"><div class="num">3</div><div class="label">Reference applications</div></div>
<!-- END platform-stats -->
</div>
Expand Down
6 changes: 4 additions & 2 deletions resume.html
Original file line number Diff line number Diff line change
Expand Up @@ -221,11 +221,13 @@ <h2>Featured project · MMCA platform</h2>
<p>A production-grade .NET 10 reference platform demonstrating modern enterprise architecture end-to-end. The conference application was deployed to Azure and powered the live 2026 Atlanta Cloud + AI Conference, and will also power the 2026 Atlanta Developers Conference.</p>
<ul>
<li>Designed a modular monolith that extracts cleanly into independent microservices behind a YARP gateway, with gRPC contracts and typed clients keeping transport reversible at the edge.</li>
<li>Authored a 17-package shared framework (DDD, Clean Architecture, CQRS) published to nuget.org and GitHub Packages and consumed by an e-commerce app (Stripe), a conference app, and a minimal reference app.</li>
<!-- BEGIN resume-package-facts -->
<li>Authored a 22-package shared framework (DDD, Clean Architecture, CQRS) published to nuget.org and GitHub Packages and consumed by an e-commerce app (Stripe), a conference app, and a minimal reference app.</li>
<!-- END resume-package-facts -->
<li>Implemented database-per-service with an at-least-once outbox plus dual dispatch, soft-delete, automatic audit stamping, and GDPR/CCPA anonymization.</li>
<li>Deployed to Azure with Bicep IaC, Service Bus, Container Apps, App Insights, and Log Analytics, using OIDC / managed-identity authentication; orchestrated locally with .NET Aspire.</li>
<!-- BEGIN resume-platform-facts -->
<li>Built Blazor (MudBlazor) and .NET MAUI clients; enforced quality with xUnit v3, Playwright E2E, 138 architecture-fitness tests, and automated accessibility testing (axe, WCAG 2.1 AA: zero violations).</li>
<li>Built Blazor (MudBlazor) and .NET MAUI clients; enforced quality with xUnit v3, Playwright E2E, 141 architecture-fitness tests, and automated accessibility testing (axe, WCAG 2.1 AA: zero violations).</li>
<li>Documented decisions with 131 ADRs and a 34-category architecture-review rubric; built Roslyn-based code-inventory tooling and AI/multi-agent development workflows.</li>
<!-- END resume-platform-facts -->
</ul>
Expand Down
3 changes: 3 additions & 0 deletions tools/build-docs.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1475,6 +1475,9 @@ ${tags ? ` <ul class="tags" style="margin-bottom:0.85rem">${tags}</
const file = "resume.html";
const abs = path.join(WEBSITE_ROOT, file);
let html = readFileSync(abs, "utf8");
html = replaceRegion(html, "resume-package-facts",
` <li>Authored a ${PLATFORM_FACTS.packages}-package shared framework (DDD, Clean Architecture, CQRS) published to nuget.org and GitHub Packages and consumed by an e-commerce app (Stripe), a conference app, and a minimal reference app.</li>`,
file);
html = replaceRegion(html, "resume-platform-facts",
` <li>Built Blazor (MudBlazor) and .NET MAUI clients; enforced quality with xUnit v3, Playwright E2E, ${PLATFORM_FACTS.fitnessTests} architecture-fitness tests, and automated accessibility testing (axe, WCAG 2.1 AA: zero violations).</li>
<li>Documented decisions with ${adrFiles.length} ADRs and a ${PLATFORM_FACTS.rubricCategories}-category architecture-review rubric; built Roslyn-based code-inventory tooling and AI/multi-agent development workflows.</li>`,
Expand Down
Loading