Skip to content
View marcelgood's full-sized avatar

Organizations

@IdeaBlade

Block or report marcelgood

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
marcelgood/README.md

Hi, I'm Marcel Good

I'm a software architect and hands-on technical lead, and a partner at IdeaBlade. For the past 16 years I've been designing, building and modernizing business-critical applications for clients. Over 25 years in software overall, including leading a 20+ person technology organization.

  • What I work in: C# and .NET (ASP.NET Core), TypeScript and Angular, SQL Server and PostgreSQL, Microsoft Azure, CI/CD with GitHub Actions and Azure DevOps.
  • Angular from the start: I was part of the IdeaBlade team Google engaged during the Angular 2 beta for enterprise-development feedback; IdeaBlade wrote Angular's original documentation, and we validated it by building real applications on the beta.
  • Modernization: moving established .NET Framework, desktop and client-server applications onto modern .NET and Angular, one step at a time, with automated tests in CI.
  • AI in business applications: we're proving out AI with clients at IdeaBlade, and I build in public to try ideas and measure what works.

Modernization showcase: TempHire

I wrote IdeaBlade's Punch framework for data-driven XAML apps (Caliburn.Micro + DevForce + Entity Framework). Its TempHire reference app started out in Silverlight and WPF. I've rewritten it, with the help of AI, as a modern line-of-business web app: Angular 22 (standalone, zoneless, signals) with Optimus UI (the open-source fork of PrimeNG), Breeze 3, ASP.NET Core 10 and EF Core 10. Every ported file names the file it came from, and the conversion notes map the old architecture onto the new one, so it doubles as a guide for migrating legacy .NET desktop apps to the web.

It also goes beyond the original. It's multi-tenant: EF Core global query filters, with the tenant carried in the JWT. And it has Quinn, an AI assistant that answers questions about the staffing data. Quinn is built in .NET with Microsoft.Extensions.AI and an MCP server built with the MCP C# SDK, and runs on a local Ollama model or Claude. The agent calls its tools as the signed-in user, so it only ever sees that user's company's data. Its answers stream as the model writes. With the same prompt and tools, Claude used the tools right away, while a small local model (qwen3:4b) needed explicit prompt rules and still missed about one time in four.

AI showcase: rag-example

A step-by-step reference implementation in TypeScript/Node.js, where every change is measured by evals:

  1. RAG over documents, with cited answers
  2. Questions over a relational database (text-to-SQL)
  3. Evals: graded test questions to compare each change
  4. The database tools as an MCP server
  5. The tool loop with the Vercel AI SDK
  6. Sign-in and per-company data isolation
  7. Hybrid search and re-ranking with LangChain retrievers

One result: re-ranking raised first-place retrieval accuracy from 60% to 88%, while hybrid search didn't beat plain keyword search. The measurements decided what stayed.

Open source

I'm part of the IdeaBlade team behind the Breeze data management libraries, BreezeJS for JavaScript/TypeScript and BreezeSharp for .NET, used by companies around the world, including Breeze 3, the ESM rewrite for modern TypeScript released in 2026.

Connect

LinkedIn

Pinned Loading

  1. Breeze/temphire.angular Breeze/temphire.angular Public

    Reference line-of-business app on Angular 22, Breeze 3 and .NET 10: generated entities, sandboxed editing, model-driven validation and multi-tenancy, plus Quinn, an AI assistant that answers questi…

    TypeScript 31 18

  2. rag-example rag-example Public

    A step-by-step RAG learning project in Node.js and TypeScript: document search (vector, hybrid, re-ranking), text-to-SQL, evals, MCP servers, the Vercel AI SDK and LangChain, plus sign-in and multi…

    TypeScript

  3. Breeze/breeze-client-v3 Breeze/breeze-client-v3 Public

    Breeze 3: rich data management for JavaScript and TypeScript apps. Querying, caching, change tracking, validation and batch save of object graphs over HTTP and JSON. The 2.x API, rewritten as a dep…

    TypeScript 1

  4. IdeaBlade/Punch IdeaBlade/Punch Public

    Punch (formerly Cocktail), no longer maintained: XAML app framework for Silverlight and WPF, blending Caliburn.Micro, DevForce and Entity Framework. Home of the original TempHire; its modern web su…

    C# 20 12