Descripción
Ingeniero de Simulación Fundador (C\+\+)
Tipo: Tiempo completo · Equipo fundador Ubicación: Remoto desde el inicio, asincrónico desde el inicio Remuneración: Salario competitivo \+ participación accionarial para el equipo fundador
Acerca de Nonlimi
Nonlimi está construyendo una plataforma de simulación nativa en la nube para probar y validar agentes de IA destinados a sistemas autónomos: robots terrestres, drones y vehículos autónomos.
Estamos construyendo la infraestructura de simulación que las startups de robótica no pueden permitirse desarrollar por sí mismas. Nuestra base técnica: un puente ROS2 de código abierto (licencia Apache 2\.0\), física reproducible con versiones fijas mediante MuJoCo y anotaciones de proyección del estado físico para obtener una verdad fundamental exacta.
Actualmente nos encontramos en fase previa a los ingresos y con la arquitectura completada, habiendo ya entregado un núcleo determinista de simulación y validación —física determinista, ejecutor de escenarios/regresiones, puente ROS2 y canalización de anotaciones—, ahora en fase activa de definición conjunta con socios de diseño.
El puesto
Usted será responsable del núcleo de simulación: el motor físico, la simulación de sensores y el puente entre la física en C\+\+ y el resto de la plataforma. Este no es un rol dentro de un equipo centrado en funciones. El núcleo de simulación es el producto.
Sus responsabilidades incluyen:
* Física determinista \+ bucle de regresión/reproducción — MuJoCo en modo determinista (monohilo, versiones fijas, \-fno\-fast\-math), además del bucle de reproducción bit a bit y comparación con referencia que permite usar la simulación como parte de CI. Este bucle constituye el núcleo del producto.
* IPC basado en memoria compartida — búfer circular fuera de proceso que conecta la física en C\+\+ con la capa de plataforma
* Puente ROS2 en C\+\+ — integración nativa con ROS2 para que los clientes puedan utilizar herramientas estándar (rviz2, rosbag, ros2 topic)
* Simulación de sensores \+ modelos de ruido/degradación — lanzamiento de rayos LiDAR (actualmente con mj\_ray de MuJoCo; Intel Embree está en la hoja de ruta) y cámaras ya implementados; usted profundizará estos módulos y desarrollará los modelos de ruido sensorial y señales degradadas (LiDAR, cámara, ausencia de GNSS, IMU) necesarios para el trabajo de validación — generando anotaciones de proyección del estado físico para obtener una verdad fundamental exacta
* Nonlimi Core de código abierto — su trabajo se publicará bajo licencia Apache 2\.0
Durante el primer año, ampliará dicho núcleo: integración de DART para manipuladores articulados, canalización USD e incorporación de nuevos dominios físicos a medida que surjan nuevas verticales.
Lo que hará primero
El núcleo determinista ya existe — clone el repositorio y ejecute nonlimi test scenarios/examples/husky\_basic.yaml \-\-output\-dir ./artifacts para obtener un veredicto de aprobado/desaprobado y un paquete completo de artefactos en aproximadamente un segundo. Su tarea consiste en hacerse cargo de él y llevarlo desde la etapa de prototipo al producto final: robustecer el bucle determinista de regresión/reproducción y desarrollar los modelos de ruido sensorial y señales degradadas requeridos para la primera prueba de concepto con socios de diseño. Al principio, colaborará en obtener el primer resultado medido de correlación entre simulación y realidad —la evidencia de que la validación predice efectivamente el comportamiento del hardware.
Requisitos
Estos son requisitos obligatorios:
* Ingeniería de sistemas en C\+\+, 4–7 años — C\+\+ crítico en rendimiento donde la disposición de la memoria, el comportamiento de la caché y el comportamiento indefinido eran preocupaciones prioritarias
* Conocimientos internos de motores físicos — MuJoCo, Bullet3, PhysX, DART o Gazebo a nivel de integración: configuración del solucionador de restricciones, banderas de determinismo y gestión de formas de colisión
* IPC basado en memoria compartida en C\+\+ — SHM POSIX, búferes circulares sin bloqueo, std::atomic con ordenamiento explícito acquire/release/seq\_cst
* Depuración de no determinismo — ha identificado y corregido un caso en el que el estado físico divergió entre ejecuciones, entre máquinas o tras una actualización del compilador
Deseable
* API C de MuJoCo directamente (no solo wrappers como mujoco\-py o dm\_control)
* ROS2 en C\+\+ (rclcpp, transporte DDS, nodos compuestos, nodos con ciclo de vida)
* Experiencia con pybind11 u otra herramienta de vinculación C\+\+/Python
* Experiencia con Godot 4 o con gráficos de escena en tiempo real (Unity, Unreal a nivel de renderizador)
* Implementación de simulación a entorno real — haber llevado una política desde la simulación a un robot físico
Lo que ofrecemos
* Salario competitivo \+ participación accionarial para el equipo fundador — ajustado según experiencia y senioridad
* Propiedad arquitectónica completa — Nonlimi Core es suyo para diseñarlo, construirlo y evolucionarlo
* Impacto en código abierto — está construyendo infraestructura de simulación que usará toda la comunidad de robótica
* Acceso directo a clientes — hablará directamente con startups de autonomía y laboratorios de robótica
* Trabajo remoto desde el inicio y asincrónico desde el inicio — el trabajo profundo es la norma
Cómo aplicar
Envíenos algo que demuestre su experiencia en ingeniería de sistemas en C\+\+ — un proyecto en GitHub, una solicitud de extracción (PR) a un proyecto de código abierto, un complemento para Gazebo o una integración con un motor físico. Un currículum sólido sin artefacto de código es más difícil de evaluar; un currículum mediocre acompañado de un código convincente es más fácil de valorar.
Tras una llamada de selección de 30 minutos, le enviaremos un ejercicio para realizar en casa:
Construya un búfer circular mínimo en memoria compartida: productor en C\+\+, consumidor en Python. Duración estimada: 2–4 horas. Evaluaremos la corrección del ordenamiento de memoria y su análisis escrito sobre dónde colocó las semánticas acquire/release y por qué.
ops@nonlimi.com
Tipo de empleo: Tiempo completo
Remuneración: Desde 40.000,00€ anuales
Ubicación del trabajo: Presencial