Ultrai builds AI‑driven financial analysis and real‑time insights for financial institutions, focusing on secure, compliant solutions.
The backend team is small and close‑knit: 2 engineers + CTO (acting as software architect) + PO + CEO.
Location: Madrid city center, Spain — Hybrid (2–3 days/week in office)
Contract: Full‑time, permanent
Language: Spanish required (English optional)
What you’ll do:
Own and protect a simple, explicit architecture for our LLM orchestration platform (triage → route → execution), based on functional, typed patterns inspired by Gleam.
Implement and evolve Python backends (FastAPI) that call external LLM providers via APIs, focusing on clarity, testability, and predictable behavior.
Act as architecture guard for the orchestrator team: review designs and PRs, challenge shortcuts, and propose improvements to the CTO.
Maintain and monitor our self‑hosted staging/demo infrastructure (CI/CD already in place) to ensure reproducible deployments.
Gradually take over architectural decision‑making from the CTO, becoming the technical reference for the team.
How you’ll work:
Hybrid in central Madrid — 2–3 days per week in the office.
No on‑call: we focus on building and shipping, not firefighting.
You’ll work daily with the CTO, 2 backend engineers, a product owner, and the CEO.
Over time, you’ll take more ownership and veto power on technical decisions.
Stack & Practices:
Python, FastAPI, SQL with defined functions and transactions.
Architectural style: pure‑function‑leaning, typed, with clear boundaries (Gleam‑inspired).
Optional: Rust for core components via PyO3 when performance/safety demands it.
Infra: self‑hosted staging/demo, ready CI/CD; production managed by a partner (no AWS/Azure/GCP).
What we’re looking for:
Senior backend experience in Python. You design clean modules and boundaries.
Architectural discipline: you know when to say no and explain why.
Experience (or openness) with LLM workflows or API integrations.
Understands functional/typed concepts (Results, pure functions, immutability).
Able to deploy, monitor, and maintain services without a full DevOps burden.
What success looks like (6–12 months):
You fully own architectural decisions for the orchestrator team.
The team delivers faster, with accurate estimates and little rework.
Architecture remains consistent, respected, and well‑documented.
You’re on track toward Principal / Tech Lead for this area.
Offer & Benefits:
Competitive compensation for senior roles in Madrid.
Free food at the office, standard Spanish employment conditions.
No equity for this role.
Hiring process:
1️⃣ HR screen – intro, expectations, logistics.
2️⃣ Technical screen – Python, architecture, LLM integrations.
3️⃣ Practical test (remote) – take‑home architecture exercise.
4️⃣ Part two (in person) – pair programming in Python.
5️⃣ CEO & CTO chat – culture, long‑term fit, and growth.
6️⃣ Offer – if all goes well, we move fast.
If you want to help a small, high‑impact team move faster while keeping the architecture clean, we’d love to talk.