Principal Software Engineer

Posted:
8/27/2024, 11:13:06 PM

Location(s):
Valencian Community, Spain ⋅ Leinster, Ireland ⋅ Dublin, Leinster, Ireland ⋅ Cluj-Napoca, Romania

Experience Level(s):
Expert or higher ⋅ Senior

Field(s):
Software Engineering

Analog Devices, Inc. (NASDAQ: ADI) is a global semiconductor leader that bridges the physical and digital worlds to enable breakthroughs at the Intelligent Edge. ADI combines analog, digital, and software technologies into solutions that help drive advancements in digitized factories, mobility, and digital healthcare, combat climate change, and reliably connect humans and the world. With revenue of more than $12 billion in FY22 and approximately 25,000 people globally working alongside 125,000 global customers, ADI ensures today’s innovators stay Ahead of What’s Possible.

Principal Software Engineer - Embedded Developer Tooling

Analog Devices (NASDAQ: ADI) designs and manufactures semiconductor products and solutions. We enable our customers to interpret the world around us by intelligently bridging the physical and digital world with unmatched technologies that sense, measure, and connect.

What is the opportunity?

ADI’s Software and Security Group is expanding and we are looking for a highly skilled Principal Software Engineer to help us solve one of the major challenges facing embedded software developpers today: how do we deal with the pressure of solving increasingly complex technical problems, on increasingly complex devices, in decreasing development timeframes?

ADI is trying to address this problem by creating a modern, best-in-class software development environment for firmware development on mixed-signal, heterogeneous embedded devices. Our goal is to give embedded software engineers the modern tools they need to solve problems efficiently, and effectively, and you can be a key part of shaping what that is and what it looks like.

Drawing upon your demonstrable expertise in embedded software development, you’ll help us by providing technical leadership across a wide variety of domains, including debug, profiling, middleware integration, system config, command-line tooling, toolchain integration, and other related fields.

You’ll join an existing cross-functional team of embedded, front-end and back-end engineers, UI/UX designers, and test engineers, with an aim to  significantly move the bar on the embedded software development experience. This is a chance to put in place the kinds of tools and development environment you wish you’d had yourself over your embedded development career, with the resources and remit to build them the way they deserve.

Who are we looking for?

We’re looking for a highly-motived, multi-disciplinary individual with an uncommon mixture of talents who can work well with other team members to co-define and deliver a best-in-class embedded software development environment.

You’ll need significant experience designing, developing, debugging, maintaining complex, real-time heterogenuous embedded software solutions in C, C++, and/or assembly (Arm, RISC-V, etc.).

You’ll need to be familiar with, and able to clearly articulate the value of modern embedded software development best pratices. This includes source management, good code and commit hygiene, build infrastructure management, effective use of embedded testing frameworks, integration of debug and performance monitoring solutions in a CI pipeline, and maintaining high-quality, up-to-date system documentation.

You’ll be familiar with available open source and commercial debug and instrumentation tools, and have defensible positions on their pros, cons and gaps. You need to be able to clearly articulate what features would bring them from usable to useful to good to domain-leading, and articulate steps to get there.

You should care deeply not just that things work well, but that they’re also easy to use and understand. How things look and feel should matter to you, striving to find the right balance between discovery, ease-of-use and exposing necessary complexity. You should appreciate a good data model, and be able to represent complex systems elegantly without sacrificing the nuance and complexity in said systems.

You’ll be curious and technically ambi-dextrous: willing to step across various technical boundaries, and get your hands dirty in a wide variety of areas, helped by the technical expertise and know-how in the rest of the team.

You’ll sometimes be stretched to deliver the best results possible on time, but you’ll also have access to some of the best embedded engineering talent in this field at ADI.

Most importantly, you’ll have mandate to co-define and deliver the tools you’ve always wished you had in your embedded career, and genuinely improve the embedded software development experience for future and current software engineers. If you find all of that exciting, you may be the kind of person we’re looking for.

Key Responsibilities

  • Help ensure ADI delivers a meaningfully differented experience in developer and debug tooling, middleware and technical documentation.
  • Collaborate with other business units, development teams and product managers to evaluate current tooling ecosystems and ensure efficient development and debug on ADI mixed-signal parts, prioritising development resources to fill the right gaps.
  • Collaborate with hardware IP owners in ADI to define requirements and models for various peripherals and system designs.
  • Keep up with the latest advancements in relevant programming languages, embedded tooling, and open source ecosystems (Zephyr, Yocto, etc.)
  • Help identify gaps and define a plan to fill them in current developer tooling, middleware and technical documentation
  • Disseminate your in-depth knowledge of software development tools, and embedded software development within the company.
  • Handle multiple projects and oversee the deliverables using appropriate project management methodologies.
  • Establish metrics and processes for monitoring tooling health, and allowing for continuous improvements.
  • Proactively resolve any issues encountered with existing applications.
  • Work with multiple stakeholders from different locations (EMEA, US East and West) that includes flexing work hours based on time zones 

Skills Required

  • 10+ years of embedded software development experience in C, with the ability to understand differences between various C versions, standard library implementations, and GCC, IAR and armclang compiler flags commonly used in embedded systems.
  • Experience effectively engaging with and contributing to open source projects
  • Significant experience with GDB, GCC and GNU binutils, including the ability to build them from source. LLVM and Clang would be a strong plus. Must be comfortable patching and building these types of projects from source.
  • Significant experience with cmake, make, ninja and other build systems
  • Experience with Static Analysis tools
  • Ability to meaningfully interact with UI/UX designers on application design.
  • Strong fundamentals in data structures and algorithms   
  • Comfortable with collaboration, open communication, and reaching across functional borders   
  • Excellent analytical skills.  
  • Excellent written and communication skills in English
  • Good understanding of testing methodologies like unit testing, functional testing, performance testing and Integration testing 
  • Good understanding on system monitoring, observability, metrics and logging 
  • Familiarity with best practices for the full software development process   
  • Demonstrated extensive experience with task and defect tracking tools (Jira, etc.)  
  • Very strong grasp of version control systems – Git, Github, etc.
  • Willingness to step outside you comfort zone and cross technical boundaries between embedded, desktop, mobile and web/cloud.
  • Detail and quality oriented. Customers expect technical excellence from us, and this extends from chip design all the way up to the tooling we provide them.

Good to have (but not mandatory):

  • Experience with Zephyr RTOS
  • Experience using IAR and/or armclang
  • Knowledge of Bluetooth Low Energy at the Host and/or Controller level
  • Experience with audio codecs and audio processing
  • Familiarity with Golang or Rust for command-line tooling
  • Familiarity with Typescript or node.js

For positions requiring access to technical data, Analog Devices, Inc. may have to obtain export  licensing approval from the U.S. Department of Commerce - Bureau of Industry and Security and/or the U.S. Department of State - Directorate of Defense Trade Controls.  As such, applicants for this position – except US Citizens, US Permanent Residents, and protected individuals as defined by 8 U.S.C. 1324b(a)(3) – may have to go through an export licensing review process.

Analog Devices is an equal opportunity employer. We foster a culture where everyone has an opportunity to succeed regardless of their race, color, religion, age, ancestry, national origin, social or ethnic origin, sex, sexual orientation, gender, gender identity, gender expression, marital status, pregnancy, parental status, disability, medical condition, genetic information, military or veteran status, union membership, and political affiliation, or any other legally protected group.

Required Travel: Yes, 10% of the time

          

Shift Type: 1st Shift/Days

#LI-CO1

For positions requiring access to technical data, Analog Devices, Inc. may have to obtain export  licensing approval from the U.S. Department of Commerce - Bureau of Industry and Security and/or the U.S. Department of State - Directorate of Defense Trade Controls.  As such, applicants for this position – except US Citizens, US Permanent Residents, and protected individuals as defined by 8 U.S.C. 1324b(a)(3) – may have to go through an export licensing review process.

Analog Devices is an equal opportunity employer. We foster a culture where everyone has an opportunity to succeed regardless of their race, color, religion, age, ancestry, national origin, social or ethnic origin, sex, sexual orientation, gender, gender identity, gender expression, marital status, pregnancy, parental status, disability, medical condition, genetic information, military or veteran status, union membership, and political affiliation, or any other legally protected group.

Job Req Type: Experienced

          

Required Travel: Yes, 10% of the time

          

Shift Type: 1st Shift/Days