{"id":92130,"url":"https://alion.io/job/causaly-senior-software-engineer-2","title":"Senior Software Engineer - Agentic Workflows","company":{"id":6962,"name":"Causaly","domain":"causaly.com","url":"https://alion.io/company/causaly","size_band":"51-200","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"Ashby","truth_index":null},"role":"Backend","role_family":"Backend","seniority":"senior","employment_type":"full_time","work_mode":"hybrid","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["London, United Kingdom"],"countries":["GB"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":{"min_usd":107000,"max_usd":203000,"period":"year","method":"role_seniority_country_remote_cell","sample_n":125},"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"Azure","optional":false},{"name":"GCP","optional":false},{"name":"Knowledge Graph","optional":false},{"name":"LLM","optional":false},{"name":"LLM Guardrails","optional":false},{"name":"Node JS","optional":false},{"name":"PostgreSQL","optional":false},{"name":"Structured Outputs","optional":false},{"name":"TypeScript","optional":false},{"name":"ArgoCD","optional":true},{"name":"Datadog","optional":true},{"name":"Docker","optional":true},{"name":"ElasticSearch","optional":true},{"name":"FastAPI","optional":true},{"name":"Fine-tuning","optional":true},{"name":"Git","optional":true},{"name":"GitHub Actions","optional":true},{"name":"GraphQL","optional":true},{"name":"JavaScript","optional":true},{"name":"Kubernetes","optional":true},{"name":"LangChain","optional":true},{"name":"Langfuse","optional":true},{"name":"LangGraph","optional":true},{"name":"Machine Learning","optional":true},{"name":"OpenAI","optional":true},{"name":"OpenTelemetry","optional":true},{"name":"Python","optional":true},{"name":"React.js","optional":true},{"name":"Redis","optional":true},{"name":"Terraform","optional":true},{"name":"Zod","optional":true}],"status":"live","first_seen_at":"2026-07-06T16:15:33Z","employer_posted_date":"2026-07-06","last_verified_at":"2026-10-17T05:37:46Z","board_verified":true,"closed_at":null,"days_open":102,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":102},"description":"About us:\nCausaly is redefining how humans acquire knowledge and develop insights in biomedicine. Our AI-powered platform enables researchers and decision-makers to discover and interpret evidence from millions of scientific publications, clinical trials, regulatory documents, and other complex data sources in minutes.\nWe are building the world’s most advanced biomedical knowledge platform, powered by a high-precision Knowledge Graph and GenAI capabilities. Our technology is already used by leading biopharmaceutical organizations to accelerate drug discovery, improve safety, and drive better decision-making.\nBacked by top-tier investors including ICONIQ, Index Ventures, Pentech, and Marathon, we are scaling rapidly and expanding our product suite and market presence.\nAt a Glance\n◆ What you'll build. The platform that runs our long-running orchestrated workflows in production. A single run can last hours, fan out across dozens of subagents, and has to produce evidence a scientist can audit.\n◆ What you'll work in. Full-stack engineering, weighted towards backend and platform. TypeScript and Node.js, Restate for durable execution, PostgreSQL, Google Cloud and Azure.\n◆ What we need from you. Significant backend depth in TypeScript, experience designing and operating distributed systems, and LLM-backed systems you have run in production.\nWhat You'll Do\n◆ Workflow orchestration. Design and evolve the workflow definition model: control flow, fan-out, conditional execution and data passing between steps, plus the static validation that rejects an invalid workflow before it runs.\n◆ Durable execution. Build the engine that runs workflows, including checkpointing and resumption after failure, retry and abandonment policies, and idempotency guarantees.\n◆ Monitoring, tracing and cost attribution. Instrument runs that cross several services and two languages, so that latency and token spend can be attributed to individual steps. These figures feed pricing decisions.\n◆ LLM integration. Structured outputs, guardrails and retries, citation integrity across steps, and deciding where deterministic code should replace a model call.\n◆ Architecture and technical leadership. Write the design proposal, break a large change into shippable increments, implement the hardest parts and own the result in production.\nWhat We're Looking For\n◆ Significant backend engineering experience in TypeScript and Node.js.\n◆ Experience building LLM-backed systems that run in production, with informed views on how they fail.\n◆ Experience designing and operating distributed systems.\n◆ Practical experience of correctness under partial failure: idempotency, at-least-once delivery, safe retries, and backwards compatibility between services that deploy independently.\n◆ Solid understanding of relational databases, including schema design and safe migration.\n◆ Clear technical writing - you can produce a design document that a reviewer can act on.\n◆ A product mindset. You are motivated by the outcome for the user, not only by the system.\n◆ You measure before you optimise, and you revert a change that does not hold up.\nPreferred Qualifications\n◆ Durable execution or workflow engines (Restate, Temporal, Inngest), or a comparable system you have built yourself.\n◆ Python and LLM application frameworks (FastAPI, LangChain, LangGraph). Our GenAI service is written in Python and you will work in it.\n◆ Observability and LLM instrumentation (OpenTelemetry, Langfuse).\n◆ Multi-tenant SaaS where tenant isolation is a design constraint.\n◆ Infrastructure as code (Terraform, Kubernetes).\n◆ Search and retrieval at scale (Elasticsearch, vector search, knowledge graphs).\n◆ Functional programming, either in TypeScript (fp-ts) or in a functional language.\nNot Required for This Role\n◆ Machine learning research. This is a systems role built around models rather than a modelling role. No model training, fine-tuning or publication record is expected.\n◆ Frontend specialism. You will work in React, but the role is weighted towards backend and platform and we are not looking for a frontend specialist.\nTechnology Stack\nThe list below is indicative and not exhaustive of the technologies we use at Causaly. We do not expect experience with all of it, but you should be comfortable learning the parts you have not used.\nLanguages: TypeScript, Node.js, Python\nBackend: Apollo GraphQL, Zod, fp-ts, FastAPI\nFrontend: React\nWorkflow & messaging: Restate, Redis Streams, Cloud Tasks\nData: PostgreSQL, Elasticsearch, Redis, MongoDB\nGenAI: LangGraph, OpenAI\nObservability: OpenTelemetry, Langfuse, Datadog\nCloud & infrastructure: Google Cloud, Azure, Kubernetes, Terraform, ArgoCD, Docker\nTooling: Git, GitHub Actions\nBenefits\nCompetitive compensation package\nPrivate medical & dental insurance\nLife insurance (4 x salary)\nPersonal development budget\nIndividual wellbeing budget\n25 days holiday plus bank holidays\nYour birthday off!\nPotential to have real impact and accelerated career growth as a member of an international team that's building a transformative AI product.\nWe are on a mission to accelerate scientific breakthroughs for ALL humankind, and we are proud to be an equal opportunity employer. We welcome applications from all backgrounds and fairly consider qualified candidates without regard to race, ethnic or national origin, gender, gender identity or expression, sexual orientation, disability, neurodiversity, genetics, age, religion or belief, marital/civil partnership status, domestic / family status, veteran status or any other difference.","description_format":"text","description_chars":5553,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[]},"benefits":["Dental insurance","Life insurance"],"hiring_locations":[{"name":"United Kingdom","iso":"GB","kind":"country"}],"hiring_excludes":[],"relocation_offered":false,"industries":["Bioinformatics","Knowledge Graphs","Drug Discovery AI"],"lifecycle":[{"event":"open","at":"2026-07-06T16:15:33Z"}],"visa":[{"country":"GB","licensed_sponsor":true,"evidence":"Licensed UK visa sponsor (Senior or Specialist Worker, Skilled Worker)","filings_12m":null,"filings_prev_12m":null,"green_card_filings_12m":null,"median_offered_wage_usd":null,"route":"Global Business Mobility: Senior or Specialist Worker; Skilled Worker","cap_exempt":false,"checked_at":"2026-10-17T06:21:15+00:00","sources":["UK Home Office: register of licensed sponsors (workers)"],"filings_for_role_12m":0}],"liveness":{"score":21,"band":"cold","label":"Long shot","p_open":1,"p_active":0.597,"p_room":0.36,"age_days":102,"expected_fill_days":53,"reasons":["conf:0","win:tail","crowd:"],"computed_at":"2026-10-17T05:46:00Z"},"pay":null,"html_url":"https://alion.io/job/causaly-senior-software-engineer-2","json_url":"https://alion.io/job/causaly-senior-software-engineer-2.json","meta":{"generated_at":"2026-10-17T06:24:01Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":8626,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-10-18T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":6962},"rest":"https://alion.io/mcp/rest/get_company?id=6962"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fcausaly-senior-software-engineer-2"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Fcausaly-senior-software-engineer-2"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Fcausaly-senior-software-engineer-2"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/causaly-senior-software-engineer-2\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fcausaly-senior-software-engineer-2"}]}