Principal Firmware Engineer

SURVIVAL SYSTEMS STAFFING, INC.
San Jose, United States of America
13 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

San Jose, United States of America

Tech stack

Clean Code Principles
Abstraction Layers
API
Assembly Language
Unit Testing
C++
Code Composer Studio
Software Documentation
Software Quality
Computer Engineering
Software Debugging
Programming Tools
Device Drivers
Embedded C
Embedded Software
Firmware
Hardware Design
Joint Test Action (IEEE Standards)
Performance Tuning
Process Driven Development
Real-Time Operating Systems
Software Engineering
Subversion
System Programming
Universal Asynchronous Receiver/Transmitter
Scripting (Bash/Python/Go/Ruby)
PIC Microcontroller
Real Time Systems
Peripherals
GIT
Integration Tests
Information Technology
Software Version Control

Job description

We are seeking an experienced Embedded Firmware Engineer to develop and maintain low-level firmware for TI C2000 Digital Signal Processors (DSP). This role involves designing real-time control algorithms, developing device drivers, and optimizing firmware performance for power electronics applications. The ideal candidate will have deep expertise in embedded C development, DSP architecture, and low-level hardware abstraction., * Develop and maintain firmware for TI C2000 DSP family (F28xxx series) using C and assembly language

  • Design and implement low-level device drivers for peripherals including PWM, ADC, SPI, I2C, CAN, and UART interfaces
  • Develop hardware abstraction layers (HAL) to simplify application-level software development
  • Implement and optimize real-time control algorithms for digital power conversion and motor control applications
  • Write efficient DSP math library functions leveraging C2000 CPU and floating-point capabilities
  • Optimize firmware for performance, memory footprint, and power consumption
  • Debug firmware using CCS (Code Composer Studio) and in-circuit debugging tools
  • Conduct unit testing, integration testing, and field validation of firmware implementations
  • Maintain comprehensive firmware documentation, including design specifications and API documentation
  • Collaborate with hardware engineers and systems architects on embedded system design

Requirements

  • Bachelor's degree in Electrical Engineering, Computer Science, Computer Engineering, or related field
  • 5+ years of professional experience developing embedded firmware in C
  • Hands-on experience with Texas Instruments C2000 DSP processors (F28xxx family)
  • Strong proficiency with embedded development tools including Code Composer Studio (CCS)
  • Experience developing device drivers for peripherals (ADC, PWM, SPI, I2C, CAN, UART)
  • Knowledge of DSP architecture, real-time processing concepts, and interrupt handling
  • Proficiency with version control systems (Git, SVN, or equivalent)
  • Experience with debugging techniques and in-circuit emulation/JTAG debugging
  • Ability to write clean, maintainable code with strong software engineering practices
  • Strong problem-solving skills and ability to work both independently and collaboratively

Preferred Qualifications

  • Experience with grid-connected power electronics and utility-scale inverter systems
  • Knowledge of renewable energy systems (solar, wind) or energy storage applications
  • Experience with real-time control systems and control theory implementation
  • Familiarity with analog-to-digital conversion, signal conditioning, and measurement techniques
  • Experience with RTOS (Real-Time Operating Systems) or baremetal firmware development
  • Knowledge of C++ or other systems programming languages
  • Familiarity with hardware design and ability to read schematics
  • Background in power electronics, motor control, or power conversion systems

Technical Skills

  • Languages: C, assembly language, basic Python scripting
  • Microcontrollers/DSPs: TI C2000 series, microcontroller fundamentals
  • Development Tools: Code Composer Studio, JTAG debuggers, oscilloscopes, logic analyzers
  • Peripheral Interfaces: ADC, PWM, SPI, I2C, CAN, UART, GPIO
  • Development Methodology: Version control, code documentation, unit testing, debugging practices

Key Competencies

  • Technical Expertise: Deep knowledge of embedded systems, DSP architecture, and firmware development
  • Problem-Solving: Systematic debugging approach and ability to solve complex firmware issues
  • Code Quality: Commitment to writing clean, efficient, and maintainable firmware code
  • Performance Optimization: Experience optimizing code for speed and memory efficiency
  • Communication: Ability to document code, design, and share knowledge with team members
  • Adaptability: Quick learner who can master new tools, platforms, and application domains

Apply for this position