Overview
Revisere is a personal backend project I built to explore how to design an AI-assisted service with production-minded architecture. Instead of treating the model as trusted business logic, I designed the system around validation, provider abstraction, and failure handling.
What I wanted to demonstrate
- System design around non-deterministic AI dependencies
- Clear modular boundaries across document parsing, provider resolution, extraction, risk analysis, summarisation, and comparison
- Backend-first engineering judgement, with more attention on reliability than presentation
Architecture and backend design
- NestJS service architecture with domain-oriented modules
- Config-driven provider selection through a provider factory
- Concurrent orchestration for extraction, risk analysis, and summarisation
- Explicit handling for parse failures, invalid inputs, and downstream provider issues
Reliability and operational thinking
- Schema validation with Zod for structured outputs
- JSON extraction and repair flow for malformed provider responses
- Rate limiting, request validation, logging, health checks, and environment-based configuration
- Budget and abuse guardrails for costly AI-backed endpoints
Technical highlights
- PDF and DOCX contract ingestion
- Structured legal information extraction
- Risk signal detection and plain-English summaries
- Contract version comparison
- Dockerised deployment setup and Render blueprint configuration
Why it fits in my portfolio
I included Revisere because it reflects how I think about systems and architecture: breaking a problem into clear modules, designing around unreliable dependencies, and making trade-offs explicit. It is a personal project, but it represents the kind of backend work I most enjoy.