A .NET 9 Worker Service that monitors Azure Blob Storage for incoming XML order files, transforms them to JSON, and stores the output back to blob storage.
In this assessment you have tools:
- VS Code
- Claude Code
- Azure Storage Explorer
- Docker Desktop
- Terminal
Goal: Candidate reads the codebase and demonstrates understanding by drawing and explaining.
- Read the code — Start from
Program.csand trace the execution flow through the application - Draw the process — On the whiteboard, draw a diagram showing:
- How the application starts and what triggers processing
- The pipeline stages and what each service does
- How data flows from XML input to JSON output
- What happens to files after processing (success and failure paths)
- Explain the architecture — Walk through the diagram and explain:
- Why is each service behind an interface?
- Why are models defined as records with
initsetters? - How does the pipeline handle validation errors — does it stop or continue?
- What happens if one file fails — does it affect other files?
Goal: Candidate receives a new feature requirement, designs the solution, then implements it.
- Receive the requirement — Product Owner presents the new feature spec from
specs/features/ - Design first — Before writing any code:
- Read the existing code to find where the change belongs
- Draw the updated validation flow on the whiteboard
- Explain the approach: what changes, what stays the same
- Discuss edge cases and testing strategy
- Create the spec — Write or update the feature spec with design decisions
- Implement — Write the code:
- Follow existing patterns in the codebase
- Use AI tools (Copilot, Claude Code, etc.) — we want to see how you work with them
- Run tests incrementally, not just at the end
- Verify — Build, test, and run end-to-end with Docker
# Start infrastructure
docker compose up -d
# Verify seed data
docker compose logs azurite-init
# Run tests (should all pass)
dotnet test tests/OrderTransformer.Tests
# Run the app
dotnet run --project src/OrderTransformerdocker compose --profile app down -v