Senior Embedded Software Engineer

Enin Systems
San Jose, CA, United States
2 days ago
Apply on www.dice.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
10 years minimum
Working hours
Regular working hours
Job source

Tech stack

C (Programming Language) Agile Methodology ARM Architecture Unit Testing AUTomotive Open System Architecture (AUTOSAR) Bluetooth Booting (BIOS) C++ (Programming Language) Code Review Communications Protocols Cyber Security Computer Programming
+31 more
Software Debugging Device Drivers Microprocessors Memory Management Embedded C Linux on Embedded Systems Embedded Software Ethernet Firmware FreeRTOS Hardware Interface Design Joint Test Action (IEEE Standards) Linux Kernel QNX (Software) Systems Development Life Cycle Real-Time Operating Systems Software Engineering System Programming Systems Integration Universal Asynchronous Receiver/Transmitter VxWorks Wi-Fi Technology Serial Peripheral Interface PIC Microcontroller Peripherals Git System-level Testing Integration Tests Information Technology Hardware Infrastructure Jenkins

Job description

We are looking for an experienced Senior Embedded Software Engineer to design, develop, test, and maintain embedded software for hardware-based products. The ideal candidate will have strong experience in C/C++, microcontrollers, RTOS, embedded Linux, device drivers, and hardware-software integration.

The candidate will work closely with hardware engineers, system architects, and cross-functional teams to develop reliable, high-performance embedded systems., * Design, develop, and maintain embedded software using C and C++.

  • Develop firmware for microcontrollers and microprocessors.
  • Work with RTOS platforms such as FreeRTOS, QNX, and VxWorks.
  • Develop and debug device drivers and low-level software.
  • Work with embedded Linux and Linux kernel modules.
  • Integrate software with hardware components and peripherals.
  • Perform debugging using JTAG, oscilloscopes, and logic analyzers.
  • Optimize software for memory usage, performance, and power consumption.
  • Develop communication protocols such as UART, SPI, I2C, CAN, and Ethernet.
  • Conduct unit testing, integration testing, and system-level testing.
  • Troubleshoot complex hardware and software issues.
  • Participate in code reviews, design discussions, and technical documentation.

Requirements

  • Strong programming experience in C, C++, and Embedded C.
  • Experience with ARM, ARM Cortex-M, and other microcontroller architectures.
  • Knowledge of Embedded Linux, Linux kernel, and device drivers.
  • Hands-on experience with RTOS (FreeRTOS, QNX, VxWorks).
  • Understanding of hardware interfaces: SPI, I2C, UART, CAN, USB, and Ethernet.
  • Experience with debugging tools such as JTAG, GDB, Lauterbach, and oscilloscopes.
  • Knowledge of bootloaders, memory management, and interrupt handling.
  • Experience with Git, Jenkins, and CI/CD tools.
  • Knowledge of software development lifecycle (SDLC) and Agile methodologies., * Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Electronics Engineering, or a related field.
  • 10-15+ years of experience in embedded software or firmware development.
  • Strong problem-solving and analytical skills.
  • Experience working with hardware and software engineering teams.
  • Excellent communication and technical documentation skills.

Preferred Skills

  • Experience with AUTOSAR and automotive embedded systems.
  • Knowledge of IoT and connected devices.
  • Experience with Bluetooth, Wi-Fi, and wireless communication.
  • Knowledge of Python scripting and automation testing.
  • Experience with functional safety standards such as ISO 26262.
  • Familiarity with cybersecurity in embedded systems.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.dice.com
Prepare application

Good distractions

Loading talks and stories from around this role…