CDA Assessment Tool screenshot 1
1 / 9
National Cyber Security CentreCSE Connect

Built a software prototype for the UK Government

A Python and FastAPI backend that helps government assessors grade university cyber-security degrees, with AI drafting each verdict and a human always confirming it.

Role

Backend Engineer

Organisation

CSE Connect, delivering for the National Cyber Security Centre (part of GCHQ)

Industry

Cyber Security · GovTech · Education

Focus

Backend · AI · API

/ Problem

Certifying a cyber-security degree means reading evidence spread across dozens of PDF, Word, and Excel files and judging it against 130+ fixed criteria. It is slow and easy to be inconsistent on, yet the decisions are high-stakes, so nothing can be left to a machine unchecked.

/ Solution

The async backend runs the whole workflow: submit an application, grade it section by section, reach panel consensus, and export a final PDF. Grading is hybrid, deterministic rules for the objective checks and an LLM for the interpretive criteria, each returning a schema-constrained verdict and reason. Every AI output is an editable draft, and nothing is final until an assessor saves it and the panel confirms it.

The hardest part was pulling the applicant's real answer out of a Word template while ignoring the form's own instructions. I keyed the extraction to the document's structure rather than its words, collecting only the paragraphs under a subsection's specific style and skipping the placeholder text. That clean, correctly scoped evidence mattered more to output quality than any prompt tweak: when you ground an AI in documents, your extraction sets the ceiling for everything downstream.

/ Skills demonstrated

Backend ArchitectureLLM IntegrationRetrieval (RAG)API DesignEvaluation & Testing

/ Built with

PythonFastAPIPostgreSQLSQLAlchemy (async)AlembicRedisOpenAI Responses APIVector Store (RAG)ReportLabPyMuPDFpython-docxopenpyxlOpikJWT + MFA
Source on GitHubLive site