Company Overview
Iridium is an award-winning and innovative satellite communications company with bragging rights to the only network that offers voice and data connectivity anywhere in the world. For over 20 years, Iridium’s unique network and services have supported critical communications needs for individuals, businesses, and the evolving Internet of Things.
At Iridium, we understand the importance of staying connected and the limitations of traditional communications networks. People across the globe, including first responders, humanitarians, global militaries, scientific researchers, and lone workers, as well as ships, aircraft and remote operations all rely on Iridium to stay connected. We take our responsibility for providing these essential communications very seriously and pride ourselves on offering a reliable lifeline when needed. Likewise, Iridium is committed to providing an exciting and innovative workplace, where employees are challenged to think outside the box and collaborate on new, bold ideas and solutions. Our talented teams are passionate about their work and the impact our company makes around the world. Iridium fosters an empowering and inclusive culture that allows employees to genuinely be their best selves. We are looking for others who want to join this truly unique company that celebrates our employees and provides the opportunity to truly make a difference in the world.
Position Summary, Job Requirements & Responsibilities
What We’re Looking For:
Iridium is seeking an Embedded Software Engineer III to join our Mobile Product Software Engineering Team! As an Embedded Software Engineer, you will be responsible for enhancing and sustaining the source code used in our mobile products and associated engineering tools. In this role, you’ll gain valuable experience working on software for Iridium’s transceivers while contributing to the development of high-quality products for our customers. If you are passionate about creating reliable and robust products, committed to the long-term success of your work, and highly self reliant, you’ll thrive in this position.
What You’ll Do:
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
Write and maintain unit, regression and pairwise test suites for mobile product software
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
Experience & Education Requirements / EEO
What You’ll Need to Succeed:
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
Excellent knowledge of OSI model, networking protocols, interfaces, and hardware subsystems
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
Possess an analytical mindset, with the ability to understand a situation or problem and think critically to make decisions or come up with solutions
Be comfortable managing upward, including being a proactive communicator and asking for help when needed
Have confidence and be able to establish valuable relationships with others
Must be able to prioritize key tasks and have a strong sense of ownership over your work
Be active in seeking out ways to continuously improve yourself and gain new knowledge
Things That Would be Great if You Brought to the Table:
1+ years of experience in developing ancillary tools in Python
Experience developing software for ARM M series microcontrollers
Experience using Linux command-line interfaces
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
We’ll also need you to:
Be able to travel to meetings with geographically remote teams, as needed (typically once per quarter).
Be able to work a hybrid schedule that includes at least one week in office (located in McLean, VA) and as needed.
US Citizenship required
Work Environment:
This position primarily works in an office setting and is largely sedentary with the majority of the position working with a computer. The role typically requires the use of basic office equipment such as a phone, video, computer, keyboard, mouse, and printer.
Iridium is an Equal Opportunity Employer, including individuals with disabilities and protected veterans.