Firmware Engineer with Hardware
Duration: long term
Location: Morrisville NC
Key Responsibilities
Firmware Development
- Design and implement embedded firmware using C/C
- Develop device drivers and hardware abstraction layers
- Create bootloaders and firmware update mechanisms
- Optimize code for performance and power efficiency
- Implement and debug communication protocols
- Develop automated testing frameworks
- Document firmware architecture and APIs
Hardware Development
- Design analog and digital circuits
- Create and review schematics and PCB layouts
- Perform component selection and BOM management
- Conduct signal integrity and power analysis
- Design power supply and management circuits
- Oversee prototype builds and debug hardware issues
- Create hardware test procedures and validation plans
Technical Leadership
- Lead integrated firmware/hardware development efforts
- Review firmware code and hardware designs
- Mentor junior engineers in both disciplines
- Define development standards and best practices
- Provide technical guidance on architecture decisions
- Collaborate with mechanical and systems engineers
- Interface with clients on technical requirements
Required Technical Skills
Firmware Expertise
- Expertlevel embedded C/C programming
- RTOS experience (FreeRTOS ThreadX)
- Microcontroller programming (ARM PIC AVR)
- Boot loader development
- Device driver implementation
- Debugging tools and techniques
- Version control systems (Git)
Hardware Expertise
- Analog and digital circuit design
- PCB layout and design principles
- Signal integrity and EMC considerations
- Power supply design
- Component selection and sourcing
- Hardware debugging methodology
- Familiarity with EDA tools (Altium KiCad)
Communication Protocols
- Serial interfaces (UART I2C SPI)
- USB device implementation
- CAN bus
- Ethernet/TCP/IP
Development Tools
- Logic analyzers and oscilloscopes
- JTAG debuggers
- PCB design software
- Circuit simulation tools
- Build systems and toolchains
- Continuous Integration systems
- Static analysis tools