Develop and maintain visual features for evolving HMI engine that supports multiple projects
Maintain, optimize, and fix bugs for HMI engine that runs on multiple platforms
Work closely with designers, researchers, and software developers to implement 2D and 3D visuals that meet targeted aesthetic and functional requirements
Iterate on multiple design implementations based on a dynamic design environment
Develop end-to-end workflows for integrating design assets by building thorough knowledge of relevant software
Develop tools and UI-based applications to support HMI software development
Debug and troubleshoot bugs and issues in complex, data-driven networked environments
Write robust, maintainable code
Build, deploy, and test HMI software in concept vehicles
Setup concept car hardware and test integration with software
Participate in on-road concept car development activities
Collaborate with automotive engineers, software developers, researchers, designers, and product managers throughout all stages of the production cycle
Plan and organize software development tasks alongside the team
Qualifications
Required
5+ years of professional software development experience
5+ years of C++ experience as primary language
UI/UX software development experience with knowledge of UI design patterns (MVC, MVP, MVVM)
3D graphics software development experience in DirectX, OpenGL, or Vulkan
Experience developing complex software with a multi-disciplinary team of designers, researchers, and software developers
Experience working in Agile-based sprint schedules with ability to manage and complete tasks
Self-sufficient and motivated approach to learning and incorporating new and existing software technologies
Preferred
Experience developing proprietary game engines or use of known engines (Unreal Engine, Unity3D, Godot, etc.)
Experience with setting up build solutions for complex projects using CMake or equivalent build systems
Network programming experience developing services using TCP/UDP/HTTP protocols
Excellent debugging experience using available tools to troubleshoot applications with memory, threading, and network issues
Experience developing reusable internal and third-party libraries
Experience developing multi-platform C++ code (Windows, Linux, Android)
Knowledge of Modern C++ features (C++11/14/17)
Experience using 3D modeling applications to create and export assets for game engine pipelines (3ds Max, Maya, Blender)