The successful candidate will be responsible for the definition, design, and implementation of embedded software for data conversion products. Responsibilities will include participation in all phases of the software development process. This will include requirements planning, software architecture definition, implementation, and testing. The position is part of a cross-functional team and close interaction with analog/digital hardware designers, algorithm developers, software engineers, and others is expected. The role will include collaboration with development teams at other ADI sites and will require occasional travel.
- Strong coding and programming skills in C/C++ for embedded platforms both with, and without a real-time operating system
- Experience and strong skills in one or more high level languages (Python, Perl, MatLab etc..)
- Some experience with assembly language
- Experience with embedded platforms & embedded software development methodologies and best practices
- Experience with one or more version control tools (SVN, GIT, Perforce, or other)
- Experience, and strong skills working in Linux/Unix environment
- Experience with static code analysis, unit testing frameworks, and other software quality assurance tools, and methodologies
- Experience with one or more Issue Tracking tools (Jira, Trac, or other)
- Strong analytical and problem solving abilities
- Strong communication skills, and the ability to work in distributed development environment, and to develop high quality software requirements and design documentation.
- In-depth knowledge of software development life cycle, software configuration management tools, and software release process
- Experience developing DSP algorithms for software and/or hardware. Examples Include
- Digital Filters, Digital Mixers, Frequency/Waveform Synthesis, Adaptive Signal Processing
- Basic knowledge of Verilog and/or VHDL hardware design flows including Hardware/Software Co-Verification.
- Experience with data converters and/or communications transceivers
- Experience with embedded real-time operating systems (or other)
- Experience with analysis techniques for discrete time signals (FFTs, DFTs, etc)
- Experience with software development guidelines/standards for functional safety and compliance to industry standards
Minimum of MSEE/MSCE with a minimum of 3 years working experience in embedded software/systems.