FCheck: Fehr's prefab-wall control engine
Took over an industrial CAD pipeline for a prefab-concrete-wall factory and turned it into a tested, easy-to-extend quality-control engine. Now moving it to an Azure container SaaS so it can open up to new clients.
.NET 8
C#
Azure
CAD / PXML
SaaS

Context. FCheck is a .NET pipeline for an industrial prefabricated-concrete-wall factory. Each PXML file describes one wall. The engine loads it into a Revit-style transactional CAD document, runs a multi-stage pipeline with about 24 families of business quality-controls, then produces the production drawings (PDF, DXF), machine files and logs. I took the product over from the Autodesk-platform integrator that first built it, as the Capcod consultant on the project.

#My role & hats

  • Dev and feature owner. I built and fixed the geometric checks end to end (rebar and splice intersections, cage coherence, thickness checks), each with unit and end-to-end tests, and refactored the worker orchestration.
  • Tech lead and architect. I wrote a full audit of the system's architecture and performance, with every point backed by a file and line.
  • DevOps and migration lead. I'm designing the move from an on-prem Windows app to a cloud SaaS on Azure.

#The piece I'm proudest of

A regression test tool I built from scratch. It runs the real pipeline and compares every output against a saved reference, with a comparison made for each format, because the pipeline's output is not identical between two runs:

  • PXML diff. Strip the fields that change between runs, sort everything the same way, then compare with a small tolerance on numbers.
  • PDF diff. Render each page to an image, compare it pixel by pixel, and produce a cropped image with the differences shown in red.
  • DXF diff. Count the lines grouped by length, instead of comparing coordinates that move between runs.

It is the safety net that proves the migration did not change the output.

#Now: containerizing

I'm moving the engine to one disposable container per wall-lot on Azure Container Instances: queue-triggered, Blob-first I/O, Entra ID and Key Vault, infrastructure as code. That is what opens it up to new clients.

#Stack

C# and .NET 8, PXML / DXF / machine files, PdfSharpCore, pdfium, MSTest with a custom snapshot framework, IIS / Kestrel, Azure DevOps. Target: Azure Container Instances, Service Bus, Blob Storage, Entra ID, Key Vault, Bicep.