Restate
Restate
Restate ofrece una plataforma de ejecución duradera para desarrolladores que crean agentes de IA, flujos de trabajo y servicios backend resilientes. Su runtime ligero conserva el progreso de las aplicaciones y reanuda las tareas interrumpidas tras los fallos, reduciendo la necesidad de desarrollar lógica de recuperación e infraestructura personalizada. Los equipos pueden definir pasos duraderos en TypeScript, Python, Go, Java/Kotlin o Rust, y ejecutarlos en entornos autogestionados o plataformas en la nube. Basado en un runtime de Rust de alto rendimiento, Restate está diseñado para aplicaciones de larga duración, impulsadas por eventos y distribuidas, incluida la orquestación de agentes de IA.

Ingeniero de Backend, Sistemas Distribuidos — Remoto en Estados Unidos

Construye el runtime de ejecución durable de Restate para aplicaciones confiables y escalables. Trabaja con sistemas distribuidos, almacenamiento, mensajería e infraestructura tolerante a fallos.

Descripción

  • Desarrollar componentes centrales de backend y sistemas distribuidos
  • Desarrollar capacidades de ejecución durable, gestión de estado, mensajería, almacenamiento, concurrencia y tolerancia a fallos
  • Crear sistemas confiables y de baja latencia que operen a gran escala
  • Mejorar el rendimiento, la escalabilidad y la resiliencia del runtime de Restate
  • Definir la arquitectura y el desarrollo continuo de la plataforma central de Restate
  • Diseñar sistemas para un funcionamiento confiable en entornos de producción reales
  • Investigar y resolver problemas complejos de sistemas distribuidos y producción
  • Avanzar en observabilidad, pruebas, recuperación ante fallos y fiabilidad operativa
  • Contribuir tanto al software de aplicaciones como a la infraestructura
  • Colaborar con equipos de ingeniería que desarrollan sistemas de producción sobre Restate
  • Convertir desafíos técnicos del mundo real en mejoras del producto
  • Crear implementaciones de referencia, integraciones y herramientas de apoyo según sea necesario
  • Participar en debates técnicos, revisiones de diseño y decisiones arquitectónicas
  • Transformar problemas técnicos recurrentes en sistemas, herramientas y documentación reutilizables
  • Ayudar a establecer prácticas de ingeniería a medida que crecen el equipo y el producto

Requisitos

  • Experiencia sólida en ingeniería de backend y desarrollo de sistemas de producción
  • Experiencia con sistemas distribuidos, arquitecturas orientadas a eventos o sistemas que involucren concurrencia, estado, mensajería y gestión de fallos
  • Dominio sólido de al menos un lenguaje de backend; Rust, Go, Java, C++ u otros lenguajes comparables son especialmente relevantes
  • Experiencia diseñando, desarrollando y operando software de producción a escala
  • Amplios conocimientos de fiabilidad, rendimiento y diseño de sistemas
  • Se valorará la experiencia con bases de datos distribuidas, motores de workflows, sistemas de mensajería o software de infraestructura
  • Se valorará la experiencia con Rust u otro lenguaje de programación de sistemas
  • Se valorará la experiencia con Kubernetes e infraestructura en la nube
  • Se valorará la experiencia con motores de almacenamiento, redes o sistemas de bajo nivel
  • Se valorará la experiencia rediseñando o migrando sistemas de producción
  • Se valorarán las contribuciones al código abierto o la experiencia desarrollando infraestructura para desarrolladores
  • Capacidad para comunicar ideas técnicas con claridad mediante documentos de diseño, debates de arquitectura y código
  • Gran sentido de la responsabilidad y capacidad para tener éxito en un entorno en fase inicial
  • Capacidad para trabajar directamente con ingenieros a fin de comprender y resolver problemas técnicos prácticos

Beneficios

  • Participación accionaria