Job description
Full Stack Engineer Python / FastAPI Next.js TDD Remote friendlyAbout UsWe automate end to end candidate compliance for education recruitment agencies using deterministic, AI powered workflows. We collect and validate documents, execute compliance rules, and produce a fully auditable clearance outcome for every candidate. We are early, moving fast, and building something technically interesting. Agentic compliance pipelines, rules engines, and document processing AI on top of a clean FastAPIand Next.js stack.The RoleYou will own both sides of the stack. Backend heavy in practice, focused on compliance logic, agentic workflows, and third party integrations, but you will also ship the React and Next.js surfaces that compliance teams and candidates use every day. This is not a lite frontend, serious backend split. We care deeply about both. The admin dashboard and candidate portal need to be fast, clear, and polished.What You Will DoBackendBuild and maintain FastAPI services that power compliance checks, document validation, and third party integrationsDesign and implement durable, auditable workflow logic with a strong focus on traceabilityIntegrate external APIs including DBS providers, professional registers, and identity verification servicesWrite high coverage tests first. TDD is not optional here, it is how we workOwn database schema design and query performance on PostgresFrontendBuild the candidate portal and admin dashboard in Next.js with a component first approachImplement clean, accessible user interfaces using shadcn ui and Tailwind, with opinionated defaults rather than custom CSSKeep frontend data fetching patterns tight using React Query, typed API contracts, and clear state managementShip features end to end. You spec, build, test, and deployAI EngineeringBuild compliance agents that validate candidate data, cross reference records, and review documentation against regulatory requirementsImplement browser automation for access to external verification portals, including selector resilience, failure recovery, and evidence captureInstrument LLM workflows with observability tooling including traces, evaluations, prompt regression tests, and scoring pipelinesMaintain prompt quality through structured evaluation workflows.Broken prompts should fail CIHow We WorkTests are written before or alongside implementationBackend stack includes FastAPI, Postgres using Neon, and Temporal Cloud for durable workflowsFrontend stack includes Next.js, shadcn ui, and TailwindPull requests are small, reviewed quickly, and merged to main frequentlyWe are not looking for someone who ticks every box. If you are strong on backend, care about code quality, and can build a solid frontend, we would like to talk.RequirementsWhat We Are Looking ForMust haveStrong Python and FastAPI experience with a solid understanding of async and clean service designSolid React and Next.js skills. You can build a good looking, functional UI without hand holdingPractises TDD. Red, green, refactor is your default loopComfortable with relational databases including schema design, migrations, and query optimisationExperience with REST APIs and third party integrationsBrowser automation using Playwright or similar tools, including scripting, evidence capture, and reliable selectorsStrong Git hygiene including meaningful commits, small pull requests, and constructive code reviewsNice to haveExperience with workflow orchestration such as TemporalFamiliarity with regulated environments or compliance adjacent productsExperience with shadcn ui, Radix, or similar headless component librariesExposure to LLM powered document processing or agentic systems and frameworks such as LangChain or MastraExperience with LLM evaluation workflows including prompt regression testing, scoring pipelines, and observability tools such as Langfuse, Braintrust, or LangSmithAgentic engineering experience including declarative specs, skills, subagents, AGENTS.md, and ADRsExperience building B2B SaaS products including multi tenancy, tenant isolation, external APIs, webhooks, and data feeds