Build production services using Python, FastAPI and Pydantic models.
Develop APIs and backend workflows that support AI-enabled document and contract intelligence.
Work with PostgreSQL, SQLAlchemy and Alembic to model, migrate and operate reliable data layers.
Build and maintain asynchronous job systems, including queue processing, retries, idempotency, dead-letter handling, cancellation, progress tracking and failure recovery.
Use Redis for caching, transient state, job status and coordination, with sensible reliability patterns such as timeouts, circuit breakers and graceful degradation.
Build React and TypeScript interfaces that consume backend services cleanly and provide users with transparent job states, useful error handling and polished interaction patterns.
Use TanStack Query for server state, including query key factories, cache invalidation, optimistic updates and polling patterns for long-running AI jobs.
Support document-heavy workflows, including ingestion, retrieval, structured extraction, redlining, rich text editing and AI-assisted review.
Build features that respect enterprise security expectations, including authentication, authorisation, secure data handling and auditability.
Operate within Azure-based environments, including services such as Blob Storage, Key Vault, managed databases, Redis and containerised deployments.
Instrument production systems using Application Insights or equivalent observability tooling.
Use AI coding tools to accelerate implementation, debugging, refactoring, testing and documentation, while maintaining high code quality.
Improve developer experience by reducing boilerplate, improving test coverage, simplifying local setup and documenting repeatable patterns.
Move fluidly between infrastructure and product delivery when needed.
Requirements
3-5 years of professional software engineering experience, or equivalent evidence of exceptional delivery.
Strong production experience with Python and FastAPI.
Strong working knowledge of Pydantic, PostgreSQL, SQLAlchemy and Alembic.
Experience building React and TypeScript applications that consume real backend services.
Demonstrable experience shipping production software, not only prototypes or internal scripts.
Comfort working with asynchronous jobs, background workers or queue-based systems.
Experience using Redis for caching, job status, state or coordination.
Practical experience with Docker and cloud-hosted deployments.
Strong ability to debug across backend, frontend, database, authentication and infrastructure layers.
High fluency with AI-assisted coding tools such as Codex, Cursor, Claude Code or similar.
Ability to work with ambiguity and make progress without waiting for perfect specifications.
Clear ownership mentality, including follow-through on edge cases, tests, production behaviour and user impact.
Legally eligible to work in the relevant location.