Restate
Restate
Restate offre una piattaforma di esecuzione durevole per gli sviluppatori che realizzano agenti IA, flussi di lavoro e servizi backend resilienti. Il suo runtime leggero conserva i progressi delle applicazioni e riprende le attività interrotte dopo un errore, riducendo la necessità di creare logica di ripristino e codice infrastrutturale personalizzati. I team possono definire passaggi durevoli in TypeScript, Python, Go, Java/Kotlin o Rust ed eseguirli in ambienti autogestiti o su piattaforme cloud. Basata su un runtime Rust ad alte prestazioni, Restate è progettata per applicazioni di lunga durata, distribuite e basate sugli eventi, inclusa l’orchestrazione di agenti IA.

Ingegnere Backend, Sistemi Distribuiti — Lavoro da remoto negli Stati Uniti

Costruisci il runtime di esecuzione durevole di Restate per applicazioni affidabili e scalabili. Lavora su sistemi distribuiti, storage, messaggistica e infrastrutture tolleranti ai guasti.

Descrizione

  • Sviluppare i componenti fondamentali del backend e dei sistemi distribuiti
  • Sviluppare funzionalità di esecuzione durevole, gestione dello stato, messaggistica, storage, concorrenza e tolleranza ai guasti
  • Creare sistemi affidabili e a bassa latenza che operino su larga scala
  • Rafforzare le prestazioni, la scalabilità e la resilienza del runtime di Restate
  • Definire l’architettura e lo sviluppo continuo della piattaforma principale di Restate
  • Progettare sistemi per un funzionamento affidabile in ambienti di produzione reali
  • Analizzare e risolvere problemi complessi relativi ai sistemi distribuiti e alla produzione
  • Far progredire l’osservabilità, i test, il recupero dagli errori e l’affidabilità operativa
  • Contribuire sia al software applicativo sia all’infrastruttura
  • Collaborare con i team di ingegneria che sviluppano sistemi di produzione su Restate
  • Trasformare le sfide tecniche del mondo reale in miglioramenti del prodotto
  • Creare implementazioni di riferimento, integrazioni e strumenti di supporto secondo necessità
  • Partecipare a discussioni tecniche, revisioni dei progetti e decisioni architetturali
  • Trasformare i problemi tecnici ricorrenti in sistemi, strumenti e documentazione riutilizzabili
  • Contribuire a definire le pratiche di ingegneria man mano che il team e il prodotto crescono

Requisiti

  • Solida esperienza nell’ingegneria backend e nello sviluppo di sistemi di produzione
  • Esperienza con sistemi distribuiti, architetture basate su eventi o sistemi che coinvolgono concorrenza, stato, messaggistica e gestione degli errori
  • Ottima conoscenza di almeno un linguaggio backend; Rust, Go, Java, C++ o linguaggi comparabili sono particolarmente pertinenti
  • Esperienza nella progettazione, nello sviluppo e nella gestione di software di produzione su larga scala
  • Solida conoscenza dell’affidabilità del software, delle prestazioni e della progettazione dei sistemi
  • L’esperienza con database distribuiti, motori di workflow, sistemi di messaggistica o software per infrastrutture costituisce un plus
  • L’esperienza con Rust o un altro linguaggio di programmazione di sistema costituisce un plus
  • L’esperienza con Kubernetes e infrastrutture cloud costituisce un plus
  • L’esperienza con motori di storage, networking o sistemi a basso livello costituisce un plus
  • L’esperienza nella riprogettazione o migrazione di sistemi di produzione costituisce un plus
  • Contributi open source o esperienza nella creazione di infrastrutture per sviluppatori costituiscono un plus
  • Capacità di comunicare chiaramente le idee tecniche attraverso documenti di progettazione, discussioni architetturali e codice
  • Forte senso di responsabilità e capacità di avere successo in un ambiente in fase iniziale
  • Capacità di lavorare direttamente con gli ingegneri per comprendere e risolvere problemi tecnici pratici

Benefit

  • Partecipazione azionaria