Software Engineer - Embedded Firmware
Hudson
Easton, United States of America
15 days ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
EnglishJob location
Easton, United States of America
Tech stack
C
Computer Programming
Software Debugging
Device Drivers
Embedded Software
Ethernet
Firmware
Revision Control Systems
Open Source Technology
Real-Time Operating Systems
Universal Asynchronous Receiver/Transmitter
Serial Peripheral Interface
Information Technology
Bare Metal
Job description
- Design and develop embedded firmware for ARM microprocessors in C
- Maintain and enhance existing firmware codebases
- Create and maintain technical documentation for new products and features
- Provide firmware support and troubleshooting for production and field service teams
- Collaborate with hardware engineers to develop code for circuit board test fixtures
- Develop test and calibration procedures for production
Requirements
- Strong expertise in C programming within resource-constrained embedded environments
- Experience with multitasking firmware running on bare-metal RTOS
- In-depth knowledge of device drivers for microprocessor interfaces such as I2C, SPI, UART, Ethernet, and memory devices
- Hands-on experience writing drivers from scratch or adapting manufacturer-provided libraries
- Strong debugging and problem-solving skills
- Ability to modify and enhance existing code from various sources (manufacturers, open source, or internal teams)
- Solid understanding and appreciation of source control systems
Preferred Traits
- Passion for embedded firmware development with a balanced approach to work and life
- Strong curiosity and problem-solving mindset-driven to understand complex systems
- Continuous improvement mindset and eagerness to learn new technologies
- Ability to think systemically and anticipate next steps
- Detail-oriented and committed to improving coding practices
- Pragmatic approach to programming and solution development
Education Requirement
- Bachelor's degree in Computer Science or Electrical Engineering with a focus on firmware