Website:
cosobuild.ai
Job details:
Python backend, at production depth. FastAPI or Django REST, async Python, PostgreSQL with real schema design, Redis, task queues (Celery or equivalent), Docker. Good looks like: has owned a service in production that other people depended on, has debugged it at 2am, can talk about connection pooling and N+1 queries without prompting.
Retrieval-augmented generation, built properly rather than demoed. Hybrid retrieval (dense plus sparse or BM25), reranking, query rewriting, chunking strategy chosen for a reason, metadata filtering. Vector stores: Qdrant, pgvector, Pinecone, FAISS or similar. Good looks like: can explain why their chunking strategy failed the first time and what they changed.
Evaluation of AI output — this is the strongest single filter. A labelled evaluation set, retrieval metrics (Recall@k, MRR, nDCG), faithfulness or groundedness scoring, and ideally those checks running in CI so a regression blocks a merge. Good looks like: has a story about the day the eval went red. Most candidates cannot tell that story; the ones who can are the ones to interview.
Multi-tenant data isolation. Row-level security, per-tenant or per-workspace scoping enforced at the database or query layer rather than in application code. Good looks like: understands why a filter that can be forgotten is different from a projection that cannot leak. This matters more here than in most products, because a contractor and a government client share one system and must never see each other's private layer.
Citation grounding and honest refusal. Answers that resolve to a source document, page or record; a designed "not enough information to answer" state rather than a plausible guess. Good looks like: has built a gate that blocks an uncited answer from being exported.
Document and unstructured data pipelines. OCR of scanned documents, PDF and drawing parsing, layout-aware extraction, ingestion pipelines that survive messy real-world input. Tesseract, docTR, Azure Document Intelligence, AWS Textract, DocLayout or similar.
Strongly wanted
- Agentic orchestration with human-in-the-loop gates — LangGraph, LangChain, Agno, AutoGen, CrewAI, or hand-rolled. The important part is not the framework, it is that the agent stages an action and a human commits it. We do not want anyone whose instinct is to let an agent write to the database unattended.
- Model routing and cost architecture — choosing the right model per task, open-source fallbacks, quantised self-hosted serving (vLLM, Ollama, int4/int8), per-request cost and latency tracking. We run models inside our own environment for data-sovereignty reasons, so comfort with self-hosting matters.
- Observability — structured logging, tracing, OpenTelemetry, latency and cost dashboards.
- Cloud — AWS or GCP. Bedrock, SageMaker, Vertex AI, ECS/EKS, Lambda, S3. Azure acceptable.
- Data engineering — ETL at volume, PySpark, Parquet, partitioning, CDC. Useful because project data arrives as large messy historical dumps that must be backfilled.
- Fine-tuning — LoRA or QLoRA on open models, and the judgement to know when not to bother.
- Three to six years of hands-on engineering, of which at least eighteen months on large language model systems in production rather than in prototypes. Someone at two years with unusually strong evidence is worth considering. Someone at eight years who has only ever integrated an API is not.
Click on Apply to know more.