Software Engineer
TechDigital Group
Mountain View, United States of America
2 days ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
English Experience level
IntermediateJob location
Mountain View, United States of America
Tech stack
Unity
Agile Methodologies
User Authentication
Automation of Tests
Bash
C++
Linux
Device Drivers
Linux on Embedded Systems
Perl
Embedded Software
Firmware
Python
PCI Express
Performance Tuning
Software Engineering
System Software
Systems Integration
Universal Asynchronous Receiver/Transmitter
USB
Serial Peripheral Interface
Audio Codec
Build Management
Yocto
Integration Tests
Information Technology
Hardware Infrastructure
Job description
Role Responsibilities:
- Embedded System Development
- Design, develop, test, release and maintain Embedded software for Infotainment.
- Own software features end-to-end and deliver high quality, testable, and peer reviewed software components.
- Identify bottlenecks and optimize system performance through tuning of priorities, code complexity reduction, and system-level optimizations.
- Conduct system-critical design reviews with the teams, providing valuable insights and guidance.
- System Integration
- Integrating the developed software with the rest of infotainment software.
- Collaborating with other software teams members and partners to ensure seamless integration between software and hardware components.
- Conducting integration testing to ensure compatibility and performance.
- Compliance and Standards
- Ensuring the software complies with automotive industry standards and regulations (eg, ISO 26262).
- Collaboration and Communication
- Collaborate effectively with cross-functional teams including software, hardware, and quality assurance teams.
Requirements
- Proficiency in C/C+ programming languages.
- Knowledge in Rust programming and Scripting languages like Python, Bash, or Perl.
- Experience using test automation in a Test-Driven Development (TDD) process is a plus.
- Experience developing software products using Agile process.
Desired Skills:
One or more of these specialized skills are desired:
- Experience implementing device drivers for standard I/O and high-speed interfaces on a complex SoC (UART, SPI, I2C, USB, I2S, PCIe).
- Desired specialized skills based on expertise:
- Video/audio codec implementation.
- Strong image processing knowledge.
- Picture quality improvement for Embedded devices.
- Firmware development for DSP.
- Test automation in TDD process.
- Device driver implementation for HDMI, DP, DSI, SER/DES interfaces.
- Performance optimization for GPU/DPU drivers.
- Porting 3D gaming engines (Unreal, Unity3D) to Linux for Embedded products.
- In-depth knowledge of Linux display and audio pipelines.
- TA development with ARM TrustZone.
- Implementation of cryptographic algorithms for encryption, decryption, authentication.
- Yocto Linux software build expertise.
Years of Relevant Experience:
- 8+ years in developing Embedded software.
- 3+ years in Embedded Linux drivers or system software.
Required Education:
- Bachelor's degree in computer/electrical engineering, Computer Science, or related field.