Job Position: Junior Software Engineer (.NET / Cloud)
Chi siamo
Siamo un team tecnico snello che sviluppa una piattaforma distribuita ad alte prestazioni su AWS. Cerchiamo persone curiose, che sappiano ragionare per sistemi, leggere codice con occhio critico e avere voglia di crescere su architetture complesse. Usiamo strumenti di sviluppo AI-assisted nel nostro workflow quotidiano per eliminare il lavoro meccanico e concentrarci su ciò che conta: design, qualità e affidabilità del sistema.
Lo stack
- .NET / C# con Clean Architecture (Domain → Core → Business → Infrastructure → Api)
- Microsoft Orleans — modello ad attori virtuali per computazione distribuita, clustering, streaming, persistenza stateful
- PostgreSQL con EF Core: modellazione dello schema, migrazioni, materialized views, bulk upsert ad alto throughput
- ClickHouse per analytics OLAP in tempo reale
- AWS: ECS Fargate, RDS, S3, Athena, Glue, SQS, ALB, CloudWatch, Secrets Manager
- AWS CDK v2 (TypeScript) per l’infrastruttura come codice
- Docker con build multi-stage, Docker Compose per sviluppo locale
- Pipeline CI/CD con federazione OIDC verso AWS
- OpenTelemetry per tracing distribuito, metriche e logging strutturato (Serilog)
Come lavoriamo
Ci interessa che tu sappia pensare, non solo scrivere codice. In concreto:
- Leggere codice prima di scriverlo. Gran parte del lavoro consiste nel comprendere codice esistente — nostro e di librerie terze. Ci aspettiamo la capacità (o la voglia di svilupparla) di orientarsi in una codebase estesa, isolare il contesto rilevante e identificare i punti di intervento prima di toccare una riga.
- Ragionare per flussi e sistemi. Capire come i componenti interagiscono, dove sono i punti di failure, come un cambiamento locale impatta il comportamento globale. Non serve che tu lo sappia già fare su scala distribuita — serve che tu voglia impararlo.
- Code review come processo centrale. Attenzione ai dettagli, alle scelte di design e ai trade-off, sia quando scrivi sia quando revisioni codice altrui. Accogliamo feedback e li diamo con la stessa apertura.
- AI-assisted development. Integriamo agenti di sviluppo (Claude Code e simili) nel workflow quotidiano. Deleghiamo agli agenti ciò che è ben definibile, mentre il lavoro cognitivo — design, review, decisioni — resta nostro. Ti insegneremo come orchestrare questo tipo di workflow se non lo conosci già.
- Ownership tecnica proporzionata. Partirai affiancato su task ben delimitati, con crescita graduale verso decisioni architetturali più ampie man mano che costruisci contesto sulla piattaforma.
Cosa cerchiamo
Requisiti
- Esperienza con .NET/C# (2-3 anni, anche tramite progetti personali significativi): async/await, dependency injection, EF Core o ORM equivalenti
- SQL e buona familiarità con database relazionali: progettazione di schemi semplici, scrittura di query non banali, comprensione di indici e piani di esecuzione
- Basi di modellazione del dato e capacità di scegliere strutture appropriate al problema
- Capacità (o forte propensione) a leggere codice altrui: attenzione alle convenzioni esistenti, pazienza nel ricostruire il contesto prima di intervenire
- Familiarità con almeno un cloud provider (AWS preferibile, ma GCP/Azure vanno bene come punto di partenza)
- Docker: saper scrivere un Dockerfile funzionante e lavorare con docker-compose
- Git: workflow branch-based, pull request, gestione di conflitti ordinari
- Testing: unit test e almeno un’esposizione a integration test
- Curiosità tecnica genuina e voglia di approfondire sistemi distribuiti, osservabilità e infrastruttura
Nice to have (ti insegneremo noi, ma se già li conosci è un plus)
- Microsoft Orleans o esperienza con il modello ad attori (Akka, Erlang/Elixir, Dapr Actors)
- PostgreSQL avanzato: materialized views, bulk operations, query optimization
- AWS CDK o altri strumenti di IaC (Terraform, Pulumi)
- Pipeline CI/CD e gestione credenziali via OIDC
- OpenTelemetry o altri stack di osservabilità
- ClickHouse o database OLAP in generale
- React / TypeScript con SPA moderne (Vite, TanStack Query, Tailwind CSS)
- Data engineering: pipeline ETL/ELT, schemi dimensionali, formati colonnari (Parquet)
- Esperienza con strumenti AI-assisted e workflow multi-agente (git worktree, deleghe parallele)
Cosa offriamo
- Un codebase maturo, ben documentato e con architettura pulita — non un legacy da riscrivere, ma un ambiente in cui imparare cosa vuol dire “fatto bene”
- Percorso di crescita reale: partirai su task delimitati e assumerai ownership crescente man mano che costruisci contesto
- Workflow di sviluppo potenziato da AI che riduce il lavoro meccanico e ti lascia concentrare sull’apprendimento
- Stack moderno e aggiornato, senza debito tecnico da smaltire
- Code review come momento formativo, non come filtro burocratico
Sede : remoto / ibrido
Tipo contratto : tempo indeterminato