Jobs · Engineering · Virginia

Embedded Software Engineer III

Iridium · McLean, VA · 6 days ago
Engineering$100k–$130k/yrFull-time

About the role

Iridium is seeking an Embedded Software Engineer III to join our Mobile Product Software Engineering Team. This role involves enhancing and sustaining the source code used in our mobile products and associated engineering tools. Responsibilities include designing and developing embedded software for microcontrollers, implementing and optimizing real-time operating systems, device drivers, and communication protocols, debugging and troubleshooting firmware issues, integrating, building, and managing embedded software configuration, writing and maintaining unit, regression, and pairwise test suites, and collaborating with software, hardware, and system development engineers.

Responsibilities

  • Design and develop embedded software for microcontrollers ensuring high-quality, performance, and reliability
  • Implement and optimize real-time operating systems, device drivers, and communication protocols
  • Debug and troubleshoot reported firmware issues, ensuring timely resolution
  • Reproduce, isolate, and debug complex low-level problems that may span between hardware and software interfaces
  • Integrate, build, and manage embedded software configuration
  • Create and maintain documentation, including software requirements, ICDs, test plans and procedures
  • Review work products created by other team members
  • Collaborate with software, hardware, and system development engineers
  • Work cross-functionally to instill a strong culture of product quality within the organization

Requirements

  • Bachelor’s degree in electrical engineering, computer engineering, or a related technical field with 5+ years of relative software experience, including:
  • 3+ years’ experience developing embedded software, preferably for microcontrollers
  • 4+ years’ experience developing software in C; solid understanding of ANSI C, common data structures and memory management techniques
  • Familiarity with asynchronous event driven paradigms
  • Proven experience in embedded systems design with preemptive, multitasking, real-time operating systems
  • Solid understanding of communication protocols such as UART, SPI, and I2C
  • Adequate knowledge of reading schematics and data sheets for components
  • Experience with benchmarking algorithm performance on embedded systems using software and hardware techniques
  • Strong communication skills, with the ability to confidently present products, deliverables, analyses, and/or issues
  • Excellent knowledge of OSI model, networking protocols, interfaces, and hardware subsystems
  • Strong analytical mindset, with the ability to understand a situation or problem and think critically to make decisions or come up with solutions
  • Confidence and ability to establish valuable relationships with others
  • Ability to prioritize key tasks and have a strong sense of ownership over your work
  • Active in seeking out ways to continuously improve yourself and gain new knowledge

Qualifications

  • 1+ years of experience in developing ancillary tools in Python
  • Experience developing software for ARM M series microcontrollers
  • Familiarity with multi-threading/multi-tasking
  • Familiarity with signal analysis tools such as Wireshark
  • Demonstrated embedded systems troubleshooting experience
  • 1+ years of experience working with agile methods & environment using the Atlassian suite
  • Demonstrated understanding of software production via continuous integration
  • Demonstrated understanding of best practices for software version control (Git, SVN etc)
  • Knowledge of RF communication systems and protocols
  • Working knowledge of bash, make and similar programming languages

Similar jobs