Universidata, parte del gruppo Ingenium Education Group S.p.A., sviluppa prodotti EdTech innovativi con l'obiettivo di trasformare il modo di fare didattica e di gestire la scuola nei prossimi decenni. Vogliamo restituire a scuole e docenti il tempo e l'attenzione per ciò che conta davvero. Educazione è il nostro ambito di punta, affiancato da altri settori in cui applichiamo la nostra expertise in Data Science & AI. Il ruolo Backend Developer dual‑stack (Python + Node/TypeScript) con 3+ anni (mid) o 5+ anni (senior) di esperienza, solida mentalità architetturale e cura maniacale per la qualità del codice. Gli stack:
Un backend Python async (FastAPI + PostgreSQL + Neo4j) con pipeline RAG e generative basate su LLM, ingestion documentale e workflow asincroni Un monolite NestJS 11 (TypeScript + Prisma + PostgreSQL + Pino + Passport/JWT), multi‑tenant, con modello di permessi granulare e feature LLM integrate
Ci aspettiamo che tu sia a tuo agio a muoverti da un lato all'altro in base a dove sta la priorità. Un/una "Java developer" che ha visto Python di sfuggita non è il profilo. Un/una ingegnere/a che ha lavorato in produzione in entrambi i mondi, con la testa nel sistema e non nel linguaggio, sì. Cosa farai Lato Python
Progetterai e scriverai servizi async in FastAPI Lavorerai su pipeline RAG e generative con LLM (prompt design, structured output, grounding, caching) Modellerai il dominio su PostgreSQL (SQLAlchemy async) e Neo4j Svilupperai pipeline di ingestion documentale (estrazione testo, OCR, chunking, embeddings) Orchestrerai job in background e workflow asincroni a lunga durata
Lato NestJS / TypeScript
Svilupperai feature backend su un monolite con modello di permessi granulare Scriverai codice production‑grade: tipizzato, testato (unit + e2e), con contratti DTO/Swagger coerenti e migrazioni audited Parteciperai alle decisioni architetturali — boundary di modulo, strategie di autorizzazione, evoluzione dello schema, pattern di errore e logging Integrerai feature basate su LLM dove portano valore reale
Trasversale
Contribuirai alle evoluzione architetturale end‑to‑end — non solo implementazione Farai code review serie ai colleghi — qualità e manutenibilità sopra la velocità
Requisiti non negoziabili Backend Python
3+ anni di Python backend con pratica consolidata di async/await FastAPI e Pydantic SQLAlchemy (async) e PostgreSQL Neo4j o esperienza solida con database a grafo
Backend Node.js / TypeScript
Esperienza solida su NestJS (o framework strutturalmente equivalenti: Spring, Rails, Django strutturato) — DI, moduli, guard/interceptor, pipe di validazione Ottima padronanza di un ORM tipizzato (preferibile Prisma; TypeORM/Drizzle accettabili se sai come migrare)
LLM & architettura
Esperienza reale di integrazione di LLM in produzione — API (Anthropic, OpenAI o simili), tool use, structured output, prompt caching, gestione di contesto e costi. Non tutorial, non prototipi da hackathon. Confidenza con orchestrazione di job asincroni in background (task queue, worker pattern) Confidenza con pipeline di ingestion/parsing documentale (estrazione testo, OCR, chunking, embeddings) Solide basi di REST API design (versioning, contratti, error model, idempotenza) Docker e principali modelli di deployment (container orchestration, multi‑stage, rolling/blue‑green, config e secrets)
Trasversali
Testing non opzionale: unit e integration test, trade‑off tra mock e fixture reali, consapevolezza che un test che passa non vuol dire codice corretto Ciclo di vita del software end‑to‑end: user story → refinement → implementazione → deploy → monitoring Attenzione all'architettura: riconosci la latenza utile da quella prematura. Leggi il codice prima di aggiungere codice. Seniorità trasversale: genuinamente a tuo agio in entrambi gli stack Disponibile a lavorare in modalità ibrida su Roma
Claude Code (non negoziabile) Uso quotidiano di Claude Code come parte integrante del workflow: brainstorming, spec writing, TDD, refactoring, code review, debugging sistematico. Sai cosè una skill, un hook, un MCP server, un sub‑agent e l'ha già usato su progetti veri. Sai quando ti aiuta e quando no. Se non l'hai mai usato seriamente, questa non è la posizione giusta. Nice to have
Frontend React Sistemi multi‑tenant Modelli di autorizzazione non banali: Entity‑Scope‑Actions, ABAC, Casbin, policy engine custom Prisma avanzato: migrazioni sicure su tabelle grandi, backfill, strategie NOT NULL senza downtime Pipeline di import/parsing file (CSV, XLSX) con validazione multi‑step, gestione errori riga‑per‑riga, deduplica Domain‑driven design, CQRS light, event‑driven patterns dove servono davvero Agent SDK / costruzione di agenti custom con tool use non banale Pino + structured logging, OpenAPI/Swagger come contratto, CLS/AsyncLocalStorage Pub/sub e code di messaggi (Redis, RabbitMQ, Kafka) Osservabilità in produzione (metriche, tracing, alerting) Supabase / Postgres auth spaCy o NLP "classico", parsing documentale avanzato (PDF complessi, OCR, layout analysis) Esperienza in EdTech o SaaS B2B complessi (ERP, CRM, gestionali sanitari, fintech) Contributi open source, blog tecnico, talk a conferenze — segnale che ti importa della craft
RAL: 40k-50k, Contratto a tempo indeterminato, Ibrido (fino a 3 giorni di Smart Working a settimana), buoni pasto giornalieri e assicurazione sanitaria. 2 Uffici a Roma, con caffè a volontà tra i benefit aziendali #J-18808-Ljbffr