Embedded C++ Developer

TechVirtue LLC
Tucson, 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

Tucson, United States of America

Tech stack

Board Bringup
Abstraction Layers
ARM
Unit Testing
Booting (BIOS)
Code Review
Communications Protocols
Computer Programming
Computer Engineering
Continuous Integration
Software Debugging
Device Drivers
Memory Management
Embedded C
Embedded Software
Ethernet
Firmware
FreeRTOS
Joint Test Action (IEEE Standards)
Real-Time Operating Systems
Universal Asynchronous Receiver/Transmitter
VxWorks
Serial Peripheral Interface
PIC Microcontroller
Real Time Systems
Peripherals
GIT
Integration Tests
Information Technology
Bare Metal
Software Coding
Software Version Control

Job description

  • Design, develop, test, and maintain embedded software using Embedded C++ and C.
  • Develop firmware for microcontroller platforms such as ARM Cortex-M, STM32, NXP, TI, AVR, and PIC.
  • Design and implement low-level device drivers and hardware abstraction layers (HAL).
  • Develop embedded applications for real-time systems using RTOS (FreeRTOS, VxWorks, ThreadX, etc.) or bare-metal programming.
  • Interface with hardware peripherals including sensors, actuators, displays, and communication modules.
  • Implement communication protocols such as SPI, I2C, UART, CAN, USB, Ethernet, and other serial interfaces.
  • Debug firmware using tools including JTAG, SWD, oscilloscopes, logic analyzers, and protocol analyzers.
  • Collaborate with hardware engineers during board bring-up, validation, and troubleshooting.
  • Optimize firmware for performance, memory utilization, and power efficiency.
  • Participate in code reviews, unit testing, integration testing, and documentation.
  • Maintain source code using Git and support CI/CD processes for embedded software development.
  • Follow embedded software development best practices, coding standards, and quality processes.

Requirements

  • Bachelor''s or Master''s degree in Computer Science, Computer Engineering, Electronics Engineering, or a related field.

  • 3+ years of hands-on experience in Embedded Software/Firmware Development.

  • Strong programming skills in Embedded C++ and Embedded C.

  • Experience with ARM Cortex, STM32, NXP, TI, AVR, PIC, or similar microcontroller platforms.

  • Strong understanding of embedded system architecture and hardware-software interaction.

  • Experience developing low-level drivers and firmware.

  • Hands-on experience with communication protocols:

  • SPI

  • I2C

  • UART

  • CAN

  • USB

Experience with RTOS or bare-metal embedded development.

Strong debugging and troubleshooting skills using embedded development tools.

Knowledge of memory management, interrupts, timers, DMA, and bootloaders.

Experience using Git or similar version control systems.

Apply for this position