Mid-Level Embedded Software Developer
Summary
Mid-level embedded software developer who analyzes, designs, implements, tests, and documents embedded software, developing features and fixes for existing products while debugging software-hardware interactions. Core stack is C and C++ with Embedded Linux, working alongside software, firmware, hardware, optics, and QA teams.
- Analyze, design, implement, integrate, test, and document embedded software
- Develop new features, enhancements, and fixes for existing products, applying software engineering best practices
- Participate in defining the software architecture by contributing to technical discussions and proofs of concept
- Investigate and resolve issues in embedded systems through testing, log analysis, debugging, and investigation of software–hardware interactions
- Contribute to the continuous improvement of the product, code, tools, and development practices of the team
- Work collaboratively with software, firmware, hardware, optics, and QA teams throughout product development, validation, and maintenance
Requirements
- Experience developing software using C and C++
- Experience with Embedded Linux
- Knowledge of software development best practices
- Experience with software testing, debugging, and troubleshooting
- Bachelor’s degree in Computer Engineering, Computer Science, Electrical Engineering, Telecommunications Engineering, or a related field
- Sufficient English proficiency to read and understand technical documentation
- Experience or knowledge of Embedded Linux and Yocto, RTOS/Zephyr, Python, TCP/IP networking, hardware drivers and interfaces (SPI, I²C, UART, GPIO), CI/CD, and embedded systems security is a plus
Core Competencies
Demonstrates expertise in developing and testing embedded software, with a strong focus on C and C++ programming, Embedded Linux, and software development best practices. Collaborates effectively with cross-functional teams to enhance product quality and performance.
Highest-signal resume keywords
- C Programming
- C++ Programming
- Embedded Linux
- Software Testing
- Debugging
Hard Skills
- Embedded Software Development
- Software Engineering Best Practices
- Software Architecture Design
- Troubleshooting
- Log Analysis
- Software-Hardware Interaction
- Continuous Improvement
- TCP/IP Networking
- Hardware Drivers
- CI/CD
Soft Skills
- Collaboration
- Communication
Industry Keywords
- Embedded Systems
- Technical Documentation
- Product Development
- Validation
- Maintenance
Tools & Technologies
- Yocto
- RTOS/Zephyr
- Python
- SPI
- I²C
- UART
- GPIO