Software Architect, Comms and Bluetooth
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.
Analog Devices, Inc. is looking for a talented software architect to help define and implement our software strategy to enable best-in-class software support for Bluetooth Low Energy, Bluetooth Classic, and other modern wireless communication standards.
We’re looking for someone who can help us produce best-in-class communication stacks, and integrate them with leading RTOSes and existing middleware.
The role will require demonstrable competence in the following areas:
1. Architectural Design: Lead the architectural design and development of embedded software systems focusing on Bluetooth and wireless protocols running on real-time operating systems (RTOS).
2. Protocol Expertise: Serve as the subject matter expert in Bluetooth and wireless communication protocols, including Bluetooth Low Energy (BLE), and potentially Wi-Fi, LoRa, NFC, or other relevant wireless standards.
3. RTOS Development: Design, implement, and optimize software components for real-time operating systems, ensuring efficient utilization of system resources and meeting stringent timing requirements.
4. System Integration: Collaborate with hardware engineers and system designers to integrate embedded software with hardware components, ensuring seamless communication and interoperability.
5. Performance Optimization: Analyze and optimize the performance of embedded software systems, identifying bottlenecks and implementing enhancements to achieve optimal efficiency and reliability.
6. Security Implementation: Implement robust security measures within embedded software systems, including encryption, authentication, and secure communication protocols, to protect against potential security threats.
7. RTOS Configuration: Configure and customize real-time operating systems to meet the specific requirements of embedded applications, such as task scheduling, memory management, and device drivers.
8. Code Review and Quality Assurance: Conduct code reviews and enforce coding standards to ensure high-quality and maintainable embedded software codebases.
9. Documentation: Prepare comprehensive documentation including design specifications, technical manuals, and test plans to facilitate understanding and maintenance of embedded software systems.
10. Testing and Validation: Develop and execute test plans to verify the functionality, performance, and reliability of embedded software systems, including both unit testing and system-level testing.
11. Cross-Functional Collaboration: Collaborate with cross-functional teams including firmware engineers, hardware engineers, QA engineers, standards groups like the Bluetooth SIG, and various open source working groups to ensure successful project execution, delivery and maintenance.
12. Continuous Learning: Stay abreast of the latest advancements in embedded systems technology, Bluetooth standards, wireless protocols, and real-time operating systems, and apply this knowledge to enhance the design and development process.
13. Troubleshooting and Debugging: Investigate and resolve complex technical issues related to embedded software functionality, performance, and compatibility, employing debugging tools and techniques as necessary.
14. Project Management Support: Provide technical guidance and support to project managers, including resource estimation, risk assessment, and milestone planning, to ensure successful project outcomes.
15. Customer Support: Provide technical support to customers, partners, and internal stakeholders, addressing inquiries and troubleshooting issues related to embedded software functionality and performance.
You should have strong opinions about software quality, reliability and developer experience, and be able to communicate them clearly. Previous experience with embedded wireless hardware is a must, as well as an understanding of the constraints unique to developers in this field: limited connectivity options, having to deal with multiple generations of devices with long life spans, code and data security concerns, etc.
An expert understanding of Bluetooth Low Energy (BLE) is required, at both the host and controller layers. Strength more on one side than the other is acceptable, but the ability to move up and down the BLE stack from application code down to the PHY layer is important overall.
Responsibilities:
16. Collaborate with development teams and product managers to ensure best in class BLE software support is being provided to customers, and internal developpers.
17. Establish metrics and processes for monitoring software health, and allowing for continuous improvements.
18. Disseminate your in-depth knowledge of wireless stacks, in particular BLE, within the company.
19. Keeping up with the latest advancements in BLE and other relevant wireless stacks.
20. Work with other software teams to ensure related development efforts have best-in-class BLE support, such as any mobile applications provided to customers or user internally.
21. Work with multiple stakeholders from different locations (EMEA, US East and West) that includes flexing work hours based on time zones
Skills:
22. At least 10 years of software development experience, with the last 5 in wireless, ideally Bluetooth Low Energy, protocol stack enablement and development.
23. Comprehensive knowledge of Bluetooth Low Energy. Clear understanding of GATT Services and Characteristics, with a deep understanding of GAP, GATT, bonding and BLE security, etc. A high-level understanding of everything below the HCI-barrier on the Controller side is also required.
24. Demonstrable knowledge of Arm Cortex-M and RISC-V (RV32) ISAs and architectures.
25. Significant experience with RTOS development (Zephyr, FreeRTOS)
26. Excellent C development skills, with the ability to work with various versions of the C standard.
27. Proven track record of integrating and maintaining complex protocol stacks, ideally in an open-source environment.
28. Strong fundamentals in data structures and algorithms
29. Comfortable with collaboration, open communication, and reaching across functional borders
30. Excellent analytical skills.
31. Excellent written and communication skills in English
32. Good understanding of testing methodologies like unit testing, functional testing, performance testing and Integration testing
33. Familiarity with best practices for the full software development process
34. Demonstrated extensive experience with task and defect tracking tools (Jira, etc.)
35. Very strong grasp of version control systems – Git, Github, etc.
36. Experience with Static Analysis tools
37. 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):
38. Familiarity with Zephyr RTOS
39. Experience with BLE Audio (BLE 5.2)
40. Experience with audio codecs and audio processing
#LI-CO1
Job Req Type: ExperiencedRequired Travel: Yes, 10% of the timeShift Type: 1st Shift/Days