The Software Engineer designs, develops, and maintains software applications and system software for embedded platforms. The engineer collaborates with cross-functional teams to define and implement new features, write clean and efficient code, troubleshoot and debug issues, and ensure software is up to date with the latest visual, spatial computing, and display technology standards. Strong problem-solving skills, proficiency in C/C++ programming, and excellent communication abilities are essential for this role, which includes supporting customer projects and regional market needs across the America region.
Responsibilities:
- Independently handle software development and maintenance of assigned customer projects for standard, single tasks. Optimize spatial rendering pipelines, motion-to-photon latency, and sensor fusion algorithms to ensure smooth, low-jitter immersive experiences on XR wearable hardware.
- Independently support customers in developing SW features, debug bugs reported by customers and test teams on software releases, maintain the software stack, and enhance demo applications.
- Implement and optimize low-level hardware drivers, firmware, spatial sensors or display interfaces, and communication protocols (including the LTE modem/Wi-Fi software protocol stack) under occasional supervision.
- Conduct unit testing and integration testing to verify software functionality and performance. Analyze and troubleshoot camera, IMU, depth/ToF sensors, MIPI displays, and audio codec bring-up issues, providing timely solutions to debug and upgrade existing software.
- Collaborate closely with the team leader, cross-functional teams, and the FAE team to complete assigned tasks, seeking support from seniors or team leaders for more complex issues.
- Participate in code reviews to ensure quality standards are met, with the support of a senior or team leader. Perform other tasks as required by the chain of reporting and business needs based on a similar task level.
- Maintain, create, and update software documentation, high-level and low-level design specifications, technical analysis reports, and knowledge articles under occasional supervision.
Educational and Skill Requirements
- Bachelor’s degree in computer engineering, Electrical Engineering, Computer Science, or a related field.
- 3 to 5+ years of experience in embedded software development or similar technical positions.
- Proficiency in C & C++ programming, as well as Java or system scripting languages.
- Experience with microcontroller/microprocessor architecture, firmware programming, Linux OS internals, system programming, and RTOS environments.
- Hands-on experience with hardware/software integration, configuring hardware peripherals (GPIOs, UART, I2C), and peripheral bring-up including MIPI LCD/OLED, sensors, cameras, and audio/video codecs.
- Hands-on experience with 6DOF pose tracking, Visual-Inertial Odometry (VIO), SLAM (Simultaneous Localization and Mapping), and IMU/sensor fusion.
- Some working experience with OpenXR, Android HAL/NDK, and graphics APIs (OpenGL ES, Vulkan) for real-time 3D spatial rendering.
- Experience with camera/display timestamping, sensor synchronization, motion-to-photon latency reduction, and frame reprojection techniques.
- Familiarity with dedicated XR system-on-chip (SoC) architectures (e.g., Qualcomm Snapdragon XR platforms or custom microcontrollers).