UI/UX HMI Engineer

Resumen del puesto

EL PUESTO SOLO APLICA PARA CIUDADANOS MEXICANOS, CON POSIBILIDAD PARA APLICAR A VISA TN

Buscamos un ingeniero de software sénior con experiencia para trabajar con un equipo de diseñadores, investigadores y desarrolladores de software en la creación de soluciones integradas de software HMI (interfaz hombre-máquina).

Esta persona se enfocará principalmente en el desarrollo de software de UI/UX y gráficos 3D, pero también deberá contar con un conjunto amplio de habilidades para desarrollar sistemas de software centrales que den soporte al desarrollo de HMI.

Experiencia requerida

  • Más de 5 años de experiencia en desarrollo profesional de software.

Habilidades requeridas

  • Más de 5 años de experiencia con C++ como lenguaje de programación principal.
  • Experiencia en desarrollo de software UI/UX y conocimiento de patrones de diseño de interfaces de usuario (MVC, MVP, MVVM).
  • Experiencia en desarrollo de software de gráficos 3D con DirectX, OpenGL o Vulkan.
  • Experiencia en el desarrollo de software complejo con equipos multidisciplinarios de diseñadores, investigadores y desarrolladores de software.
  • Experiencia trabajando con metodologías ágiles basadas en sprints, con capacidad para gestionar y completar tareas.
  • Capacidad para trabajar de forma autónoma, con iniciativa para aprender e incorporar tecnologías de software nuevas y existentes.

Habilidades deseables

  • Experiencia en el desarrollo de motores de videojuegos propios o en el uso de motores conocidos, como Unreal Engine, Unity3D, Godot, entre otros.
  • Experiencia en la configuración de soluciones de compilación para proyectos complejos mediante sistemas conocidos, como CMake o equivalentes.
  • Experiencia en programación de redes y desarrollo de servicios utilizando los protocolos TCP, UDP y HTTP.
  • Excelentes habilidades de depuración, utilizando las herramientas disponibles para diagnosticar problemas en aplicaciones relacionados con la memoria, la concurrencia de hilos y las redes.
  • Experiencia en el desarrollo de bibliotecas internas reutilizables y bibliotecas de terceros.
  • Experiencia en el desarrollo de código C++ multiplataforma (Windows, Linux y Android).
  • Conocimiento de las características de C++ moderno (C++11/14/17).
  • Experiencia en el uso de aplicaciones de modelado 3D para crear y exportar recursos gráficos para el flujo de trabajo de motores de videojuegos (3ds Max, Maya, Blender).

Responsabilidades del puesto

Desarrollo de software HMI (80 %)
  • Desarrollar y mantener funcionalidades visuales para un motor HMI en evolución que dé soporte a múltiples proyectos.
  • Mantener, optimizar y corregir errores del motor HMI que se ejecuta en múltiples plataformas.
  • Trabajar estrechamente con diseñadores, investigadores y desarrolladores de software para implementar elementos visuales 2D y 3D que cumplan con los requisitos estéticos y funcionales establecidos.
  • Iterar sobre múltiples implementaciones de diseño en función de un entorno de diseño dinámico.
  • Colaborar con el equipo en el desarrollo de un flujo de trabajo integral para la integración de recursos de diseño, adquiriendo un conocimiento profundo del software pertinente.
  • Desarrollar herramientas y otras aplicaciones basadas en interfaces de usuario para dar soporte al desarrollo de software HMI.
  • Depurar y resolver errores y problemas en un entorno complejo, conectado en red y basado en datos.
  • Escribir código robusto y fácil de mantener.
Integración de software HMI (10 %)
  • Compilar, implementar y probar el software HMI en un vehículo prototipo.
  • Configurar el hardware del vehículo prototipo y probar su integración con el software.
  • Participar en actividades de desarrollo del vehículo prototipo en carretera.
Gestión de proyectos (10 %)
  • Trabajar en conjunto con ingenieros automotrices, desarrolladores de software, investigadores, diseñadores y gerentes de producto durante todas las etapas del ciclo de producción.
  • Colaborar con el equipo para planificar y organizar las tareas de desarrollo de software.

Flexibilidad laboral

  • Disponibilidad para viajar, tanto dentro del país como al extranjero.
  • Puesto de tiempo completo bajo la modalidad de contratista independiente.

Formación académica

  • Licenciatura o ingeniería en Ciencias de la Computación, o una formación equivalente