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.