QA Engineering Assessment · Player API

Player API
Tests

ASP.NET Core 8 Web API built and tested solo in 3 days. Full NUnit suite covering unit and integration layers — 28 tests, all green.

ASP.NET Core 8 · C# 12 · NUnit 3 · WebApplicationFactory · Swagger · Railway

✓ 28 Tests Pass ☁️ Live on Railway 🔄 CI/CD Green 5 API Endpoints 12 Unit + 16 Integration 3-Day Sprint AI-First Delivery

About This Project

The Challenge

A QA Engineering Assessment requiring candidates to design and implement a production-ready REST API for player management from scratch — then write comprehensive test coverage for it.

The constraint: 3-day sprint, solo delivery, acting simultaneously as API developer, QA engineer, and delivery manager.

This project demonstrates that an experienced QA Engineer can own both the implementation and the verification — not just test what others build.

The Approach

AI-First Engineering: Claude Code was used as the primary accelerator — not a replacement for engineering judgment. Every decision is documented in architectural records and a specification file that served as the project's source of truth.

Two-layer test strategy:

  • 12 unit tests — PlayerStore in isolation, no HTTP
  • 16 integration tests — full API pipeline via WebApplicationFactory
  • 100% endpoint coverage, positive and negative paths
  • All 28 tests green on clean clone

Delivered on time with full documentation and live CI pipeline.

Project Documentation Library

Engineering artefacts authored during the sprint — architectural decisions, test plan, and security assessment.

Tech Stack

Every tool selected for a documented reason — see the ADR collection for full justification.

⚙️
ASP.NET Core 8
LTS Web API framework — minimal hosting model, built-in DI
🔮
C# 12
Primary constructors, records, pattern matching — clean models
🧰
NUnit 3
Unit + integration test framework — rich assertion model
🔌
WebApplicationFactory
In-process integration testing — no real ports, no deployment
🔒
JWT Bearer
Stateless auth — signature-only validation, 1-hour expiry
🚫
ConcurrentDictionary
Thread-safe in-memory store — zero I/O, deterministic resets
📄
Swagger (Swashbuckle)
Auto-generated API docs from XML comments — zero extra cost
GitHub Actions
Build → Test → TRX report → HTML report → Railway deploy
🚂
Railway
Free-tier Docker deployment — public API URL + Swagger UI
🤖
Claude Code
AI engineering accelerator — primary development tool
Evgenii Subbotin
QA/SDET Lead · QA Architect · SAFe RTE

20 years in software engineering. This project demonstrates full-cycle API delivery — design, implementation, testing, documentation, and CI/CD in a 3-day solo sprint.