Essential Responsibilities:
- Designs and develops efficient, bug-free software.
- Follows a disciplined Agile/Scrum software development process in task estimation, design, development, code reviews, unit/integration testing, and product defect fixing.
- Works with subject matter experts to produce requirements and develop solutions.
- Assists in the creation of technical design documents for the products.
- Participates in application design sessions and code reviews to ensure accuracy towards product requirements.
- Analyzes existing software to debug and troubleshoot reported issues.
- Works with other engineers to promote the reuse of code and designs in current projects.
- Identifies and recommends software development process improvement initiatives.
- Assists in the technical analysis of potential tools and commercial products.
Required Qualifications:
- BS or MS in Computer Science or equivalent technical degree.
- 8+ years of Software Engineering experience with embedded systems.
- 8+ years experience with SVN, GIT, or equivalent software version control.
- 4+ years using the C programming language.
- 4+ years using the C++11 or later programming language.
- 4+ years working in a Linux software development environment.
- 3+ years using scripting languages (Bash, Perl, Python, or similar).
- 3+ years experience with Buildroot or Yocto or equivalent.
- 3+ years experience with embedded real-time operating systems.
- Experience with embedded development tools.
- Experience with all phases of the software development lifecycle.
- Excellent communication and effective writing skills are essential.
- Strong problem-solving skills in a fast-paced environment.
Preferred Qualifications:
- Experience with consumer electronics development.
- Experience with audio development.
- Experience with multi-core firmware design and inter-processor communications.
- Experience with Linux kernel development.
- Proficient with standard software development defect tracking systems (such as Bugzilla, Jira, or similar).
- Understanding of peripheral interfaces, including I2C, SPI, UART, USB, Ethernet, HDMI, etc.
- Hands-on experience in using development tools (IDEs, Emulators, analyzers, oscilloscopes) and debugging real-time issues.
Compensation: The anticipated range for this position is $130,000 to $145,000. Actual placement within the range is dependent on multiple factors, including but not limited to skills, education, and experience.
Carlsbad, United States