Embedded Debug Tooling Engineer

Posted:
9/20/2024, 9:56:34 PM

Location(s):
County Limerick, Ireland ⋅ South Carolina, United States ⋅ Edinburgh, Scotland, United Kingdom ⋅ Scotland, United Kingdom ⋅ Limerick, County Limerick, Ireland

Experience Level(s):
Junior ⋅ Mid Level ⋅ 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.

Embedded Debug Tooling Engineer
 

Job Description

We are looking for a highly skilled Embedded Debug Tooling Engineer to join our team.

In this role, you will focus on improving the debug experience for embedded engineers by enhancing tooling, workflows, and performance diagnostics within ADI’s new Visual Studio Code based embedded IDE.

We need someone who is passionate about improving the debug experience, and motivated to move the needle on how developpers understand what is going on inside their embedded systems at a given moment in time.

You’ll be tasked with proposing new debug tools, or providing new views into embedded devices on top of existing tools such as GDB, GNU binutils, and existing debug hardware.

You will leverage your deep knowledge of debugging tools, embedded architectures, and software development processes to optimize and innovate the way developers troubleshoot and profile embedded systems. If you are passionate about providing embedded engineers with superior debugging solutions, we want you on our team.

Key Responsibilities

  • Develop, optimize, and maintain tools that improve the debug experience for embedded engineers, including debugging, profiling, and instrumentation tools.
  • Utilize your expert knowledge of GDB to extend and customize debugging solutions.
  • Think beyond various debug tools such as Segger Ozone, IAR, CLion, and other relevant industry IDEs to articulate what a best-in-class debug experience should look like, and integrate those ideas into ADI’s IDE and solutions.
  • Facilitate debugging embedded systems using coredump analysis and enable core debug concepts such as stack rollback and key diagnostics in fault handlers.
  • Collaborate with open-source communities, contributing improvements and integrating open-source solutions into our tooling.
  • Provide expert insights on the Arm ISA, including Thumb-2 assembly, and guide others on debugging and optimization practices specific to the Arm architecture.
  • Write clean, maintainable code in C and use Python or TypeScript for scripting, automation, and tool development.
  • Constantly learn and adapt to new tools, languages, and technologies as required.

Mandatory Skills

  • Strong commitment to improving the debug experience for embedded engineers.
  • Expert knowledge of GDB, including experience with optional GDB Python APIs for customizing debugging tools.
  • Hands-on experience with debug tools such as Segger Ozone, IAR, CLion, and others.
  • Proficiency with profiling and instrumentation tools like SystemView to monitor system performance and diagnose issues.
  • Deep understanding of competitor IDEs in the embedded space and the ability to clearly articulate their advantages and drawbacks.
  • Knowledge of coredump analysis and ability to convey fundamental debugging concepts, such as stack rollback and fault handler analysis.
  • Experience working with and contributing to open-source communities.
  • Strong understanding of the Arm ISA, including familiarity with Thumb-2 assembly for debugging and optimization.
  • Knowledge of GCC and its compilation process, with some understanding of GCC internals as an added benefit.
  • Expert-level proficiency in C and working knowledge of Python for automation and tool development.
  • Openness to learning new languages and technologies as required.

Preferred Skills (Nice to Haves)

  • Experience developing custom debug or profiling tools a major plus.
  • Knowledge of Typescript or Node.js for tool development.
  • Experience creating VSCode plugins using Typescript and familiarity with VSCode APIs.
  • Understanding of ELF and DWARF standards and how their data can be leveraged to improve the debug experience.
  • Reasonable understanding of the RISC-V and Xtensa ISAs.

Why Join Us

  • Be part of an innovative team that is transforming the way embedded engineers debug their systems.
  • Work with cutting-edge tools and technologies to develop new solutions in embedded debugging and profiling.
  • Collaborate with a global community of developers and contribute to impactful open-source projects.
  • Competitive salary, benefits, and flexible working options.

#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