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
Intermediate

Job 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:

  1. 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.
  1. 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.
  1. Compliance and Standards
  • Ensuring the software complies with automotive industry standards and regulations (eg, ISO 26262).
  1. Collaboration and Communication
  • Collaborate effectively with cross-functional teams including software, hardware, and quality assurance teams.

Requirements

  1. Proficiency in C/C+ programming languages.
  2. Knowledge in Rust programming and Scripting languages like Python, Bash, or Perl.
  3. Experience using test automation in a Test-Driven Development (TDD) process is a plus.
  4. Experience developing software products using Agile process.

Desired Skills:

One or more of these specialized skills are desired:

  1. Experience implementing device drivers for standard I/O and high-speed interfaces on a complex SoC (UART, SPI, I2C, USB, I2S, PCIe).
  2. 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:

  1. 8+ years in developing Embedded software.
  2. 3+ years in Embedded Linux drivers or system software.

Required Education:

  1. Bachelor's degree in computer/electrical engineering, Computer Science, or related field.

Apply for this position