Iridium Satelliteposted 2 days ago
Full-time • Senior
Mclean, VA
Telecommunications

About the position

Iridium is seeking a Senior Embedded Software Engineer 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 support the software for Iridium's transceivers while contributing to the development of high-quality, long-lasting products for our customers. This role is perfect for someone who is passionate about creating reliable and robust products, takes pride in the long-term success of their work, and is highly self-reliant.

Responsibilities

  • Design and develop embedded software for microcontrollers, ensuring high-quality, performance, and reliability
  • Autonomously execute software development tasks while meeting project timelines
  • Implement and optimize real-time operating systems, device drivers, and communication protocols
  • Debug and troubleshoot firmware issues, ensuring timely resolution
  • Reproduce, isolate and debug complex low-level problems that may span 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, such as software requirements, ICDs, test plans and procedures
  • Lead and mentor junior software engineers to improve their skills and increase team productivity
  • 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
  • Provide technical guidance to cross-functional teams and stakeholders
  • Confidently present complex information to groups outside of your team through briefings, documentation, implementation plans, or issue resolutions

Requirements

  • Bachelor's degree in electrical engineering, computer engineering, or a related technical field with 8+ years of relative software experience
  • 5+ years (post-college) developing embedded software for microcontrollers
  • 6+ years (post-college) developing software in C, with a solid understanding of ANSI C, common data structures and memory management techniques
  • 4+ years using Linux command-line interfaces
  • Demonstrated expertise in asynchronous, event-driven programming paradigms
  • Extensive experience designing embedded systems using preemptive, multitasking, real-time operating systems
  • Strong knowledge of OSI model, networking protocols, interfaces, and hardware subsystems
  • Comprehensive knowledge of communication protocols such as UART, SPI, and I2C
  • Hands-on experience in reading schematics and data sheets for components
  • Experience benchmarking algorithm performance for embedded systems using a combination of software and hardware techniques
  • Ability to proactively seek assistance when needed
  • Strong focus on continuously improving skills and acquiring new knowledge
  • Excellent communication skills, with the ability to clearly convey products, deliverables, analyses, and issues to diverse audiences
  • Confidence and ability to build and sustain relationships with leadership and colleagues across teams
  • Analytical mindset, with the ability to assess situations or problems, think critically, and devise out-of-the-box solutions
  • Proactive in providing feedback and enthusiastic in sharing your knowledge
  • Capable of prioritizing your own tasks and potentially the tasks of others while making sure deadlines are met

Nice-to-haves

  • 3+ years of experience in developing ancillary tools in Python
  • 2+ Years of experience developing software for ARM M-series microcontrollers
  • 2+ Years of expertise in multi-threading/multi-tasking
  • 3+ years of experience working with agile methods (including Scrum or Kanban) & environment using the Atlassian suite
  • Hands-on experience with signal analysis tools such as Wireshark
  • Embedded systems troubleshooting experience
  • Understanding of software production workflow using continuous integration
  • Knowledge of best practices for software version control (e.g., Git, Bitbucket)
  • Familiarity with RF communication systems and protocols
  • Working knowledge of bash, make and similar programming languages
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service