Embedded Developer - CodeFusion Studio
Role details
Job location
Tech stack
Job description
We are seeking an experienced and highly motivated Embedded Software Engineer to help us solve one of the major challenges facing embedded software developers today: how to deal with the increase of complexity on embedded 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.
Your role on that journey will be to link the world of embedded devices with its hardware constrains, bare metal or RTOS based applications, and low speed debugging interfaces with the world of modern web-based and user experience focused tools.
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., * Help ensure ADI delivers a meaningfully differentiated experience in developer and debug tooling, middleware and technical documentation.
- Transform requirements into best-in-class implementation code.
- Collaborate with UX/UI designers, product managers, and other engineers to define and implement intuitive and powerful developer experiences.
- Develop and maintain Open-Source tools for embedded debugging, profiling, system configuration, compilers, SDKs, middleware, and automation frameworks.
- Contribute to continuous improvement efforts, including CI/CD workflows, automated testing, and process refinements.
- Proactively resolve any issues encountered with existing applications.
Requirements
We're looking for a highly motivated, 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 heterogeneous 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 software development best practices. This includes source management, good code and commit hygiene, build infrastructure management, effective use of embedded testing frameworks, and maintaining high-quality, up-to-date system documentation.
You should care deeply not just that code works, but that it is also easy to understand, maintain and extend either by a future you or your colleagues. You should appreciate a good data model or design patterns and be able to represent complex systems elegantly without sacrificing the nuance and complexity in said systems.
You'll be curious and technically ambidextrous: 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., * Strong embedded systems experience (bare-metal, RTOS or embedded Linux).
-
Capable of efficiently browse documentation. From low level HW registers to open-source software API references.
-
Proven initiative and technical independence to resolve complex problems.
-
Experience with debug tooling such as GDB, J-Link, open OCD, etc.
-
Strong fundamentals in data structures, design patterns and algorithms
-
Familiarity with best practices for the full software development process
-
Good understanding of testing methodologies like unit testing, functional testing, performance testing and Integration testing
-
Very strong grasp of version control systems: Git, GitHub, etc.
-
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. Bonus Skills (Nice to Have, But Not Mandatory)
-
Experience with Zephyr RTOS
-
Experience effectively engaging with and contributing to open-source projects
-
Experience with ARM CoreSight architecture or equivalent.
-
Familiarity with TypeScript and Node.js for command-line tooling and web-based developer tools.
Benefits & conditions
Job Req Type: ExperiencedRequired Travel: Yes, 10% of the timeShift Type: 1st Shift/Days