About Analog Devices
Analog Devices, Inc. (NASDAQ:) 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 $9 billion in FY24 and approximately 24,000 people globally, ADI ensures today's innovators stay Ahead of What's Possible. Learn more atand onand.
Software & Digital Platforms
Embedded Software Engineer
Job Description:
Bridge the physical and the digital world! Join us in developing and optimizing cutting-edge embedded systems that power our innovative products. You'll collaborate with cross-functional teams to design, implement, and integrate hardware and software solutions that deliver exceptional performance and reliability. This role involves developing and maintaining embedded software for Analog Devices extensive product portfolio. The successful candidate will work on cutting-edge projects, collaborating with cross-functional teams to deliver high-quality software solutions for embedded systems.
Responsibilities:
- Architect, develop, and maintain efficient, reusable, and reliable embedded software for diverse hardware platforms.
- Lead software architecture and design efforts, mentor junior engineers, and foster a culture of continuous learning.
- Develop software for real-time operating systems (RTOS) and bare-metal environments, including Zephyr and Linux.
- Collaborate with hardware engineers to define requirements and ensure seamless integration.
- Conduct thorough testing, debugging, and validation to ensure high performance and reliability.
- Optimize code for performance, memory usage, and power consumption.
- Participate in code reviews, enforce best practices, and maintain high standards of reliability.
- Stay current with industry trends, emerging technologies, and best practices.
- Produce clear technical documentation, including design specifications and user guides.
- Contribute to open-source initiatives and collaborate on large codebases.
Requirements:
- Bachelors degree in Computer Engineering, Electronics Engineering, Computer Science, or other related field Master's degree is preferred.
- At least 5 years for relevant work experience.
- Extensive experience in embedded software development, with a strong understanding of C/C++ programming languages.
- Proficiency in developing software for microcontrollers and microprocessors.
- Experience with bare-metal programming, real-time operating systems (RTOS), Zephyr, or Linux OS.
- Deep knowledge of hardware communication protocols (SPI, I2C, UART, CAN, etc.) and other microcontroller peripherals such as ADCs, DACs, timers, PWMs and GPIO.
- Mastery of Git and version control active contributions to open-source projects are a plus.
- Excellent problem-solving skills, attention to detail, and ability to debug complex systems.
- Proficiency in using different IDEs, laboratory equipment such as oscilloscope, logic analyzers, signal generators, and JTAG/ICE debugger.
- Strong communication and collaboration skills.
- Proven experience in software architecture and design patterns.
Nice to Have:
- Knowledge in AI/ML, Computer Vision, or Image Processing.
- Experience with FPGA development and firmware programming.
- Experience in Python programming.
- Knowledge in Agile/Scrum methodologies.
- Familiarity with continuous integration/continuous deployment (CI/CD) practices.
- Experience with unit testing frameworks and automated testing tools.
- Experience in using GenAI tools.
Job Req Type: Experienced
Required Travel: Yes, 10% of the time
Shift Type: 1st Shift/Days