Posted in

Embedded – Software Engineer III

Embedded – Software Engineer III

CompanyIridium Communications
LocationMcLean, VA, USA
Salary$Not Provided – $Not Provided
TypeFull-Time
DegreesBachelor’s
Experience LevelSenior

Requirements

  • Bachelor’s degree in electrical engineering, computer engineering, or a related technical field with 5+ years of relative software experience
  • 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

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
  • 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

Preferred Qualifications

  • 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