Restate
Restate
A Restate oferece uma plataforma de execução durável para desenvolvedores que criam agentes de IA, fluxos de trabalho e serviços de backend resilientes. Seu runtime leve preserva o progresso das aplicações e retoma trabalhos interrompidos após falhas, reduzindo a necessidade de lógica de recuperação e código de infraestrutura personalizados. As equipes podem definir etapas duráveis em TypeScript, Python, Go, Java/Kotlin ou Rust e executá-las em ambientes autogerenciados ou plataformas de nuvem. Desenvolvida em torno de um runtime Rust de alto desempenho, a Restate foi projetada para aplicações de longa duração, orientadas por eventos e distribuídas, incluindo a orquestração de agentes de IA.

Engenheiro(a) de Backend, Sistemas Distribuídos — Remoto nos Estados Unidos

Desenvolva o runtime de execução durável da Restate para aplicações confiáveis e escaláveis. Trabalhe com sistemas distribuídos, armazenamento, mensageria e infraestrutura tolerante a falhas.

Descrição

  • Desenvolver componentes essenciais de backend e sistemas distribuídos
  • Desenvolver recursos de execução durável, gerenciamento de estado, mensageria, armazenamento, concorrência e tolerância a falhas
  • Criar sistemas confiáveis e de baixa latência que operem em grande escala
  • Aprimorar o desempenho, a escalabilidade e a resiliência do runtime da Restate
  • Definir a arquitetura e o desenvolvimento contínuo da plataforma central da Restate
  • Projetar sistemas para uma operação confiável em ambientes reais de produção
  • Investigar e resolver problemas complexos de sistemas distribuídos e produção
  • Aprimorar observabilidade, testes, recuperação de falhas e confiabilidade operacional
  • Contribuir tanto para o software de aplicações quanto para a infraestrutura
  • Colaborar com equipes de engenharia que desenvolvem sistemas de produção na Restate
  • Transformar desafios técnicos do mundo real em melhorias no produto
  • Criar implementações de referência, integrações e ferramentas de apoio conforme necessário
  • Participar de discussões técnicas, revisões de design e decisões arquiteturais
  • Transformar problemas técnicos recorrentes em sistemas, ferramentas e documentação reutilizáveis
  • Ajudar a estabelecer práticas de engenharia à medida que a equipe e o produto crescem

Requisitos

  • Experiência sólida em engenharia de backend e desenvolvimento de sistemas de produção
  • Experiência com sistemas distribuídos, arquiteturas orientadas a eventos ou sistemas que envolvam concorrência, estado, mensageria e tratamento de falhas
  • Proficiência sólida em pelo menos uma linguagem de backend; Rust, Go, Java, C++ ou linguagens comparáveis são especialmente relevantes
  • Experiência projetando, desenvolvendo e operando software de produção em escala
  • Conhecimento sólido de confiabilidade, desempenho e design de sistemas
  • Experiência com bancos de dados distribuídos, mecanismos de workflow, sistemas de mensageria ou software de infraestrutura será considerada um diferencial
  • Experiência com Rust ou outra linguagem de programação de sistemas será considerada um diferencial
  • Experiência com Kubernetes e infraestrutura em nuvem será considerada um diferencial
  • Experiência com mecanismos de armazenamento, redes ou sistemas de baixo nível será considerada um diferencial
  • Experiência reestruturando ou migrando sistemas de produção será considerada um diferencial
  • Contribuições para projetos de código aberto ou experiência desenvolvendo infraestrutura voltada para desenvolvedores serão consideradas um diferencial
  • Capacidade de comunicar ideias técnicas com clareza por meio de documentos de design, discussões de arquitetura e código
  • Forte senso de responsabilidade e capacidade de ter sucesso em um ambiente em estágio inicial
  • Capacidade de trabalhar diretamente com engenheiros para entender e resolver problemas técnicos práticos

Benefícios

  • Participação societária