Analog Devices Inc’s Transceiver Team is seeking an experienced and versatile embedded software engineer to join our wireless radio group. Come be part of this global team of software engineers and work in a dynamic environment on state-of-the-art real-time embedded software technology for ORAN O-RU reference designs! Here you will participate in the innovation of wireless products and solutions.
As a critical member of the team, you will participate and add value in all phases of product maintenance and support, actively participating in feasibility, requirement, architecture, design, implementation, integration, and verifications. You will be positioned within a multi-site development team and will be working closely with system, analog, digital, verification, and customer application teams.
Primary Responsibilities:
- Generation of embedded Linux image and file system
- Linux device tree maintenance for the embedded system
- Linux Kernel driver development /support
- Linux boot up/down scripts for the embedded system
- Become knowledgeable & develop competence in RF system design.
- Deliver high quality code as software is used internally by customers in end application systems
Ideal candidate will hold an MS in Electrical or Computer Engineering with minimum 8 years of experience developing software in embedded multi-threaded environment. Additionally, they will have demonstrated:
- Experience building embedded ARM Linux distributions with File System constraints and RAM constraints. (Yocto, Linaro, or similar)
- Comfortable editing the Linux device tree
- Understand/experience with embedded Linux boot process (first/second stage boot loaders, run levels)
- Experience with Linux kernel /user space drivers and how to map hardware interrupts into user space software.
- Understand Linux SW conventions (standard locations of binaries, libraries, includes, and how to install custom software into these locations)
- Understand Linux users, groups, permissions, and security measures to properly secure an embedded Linux device. (certificates, ssh tunnels, etc)
- Strong C/C++ programming skills
- Experience with embedded platforms & embedded software development paradigms
- Experience with embedded real-time operating systems
- Experience with data structures and object-oriented programming
- Ability to work in distributed development environment
- Hands on experience integrating, building, and testing of multi-thread based applications
- In-depth knowledge of software development life cycle, software configuration management tools, and software release process
- Experience with SCM tools (GIT, SVN, Clearcase, Perforce, etc.)
- Strong analytical and problem-solving abilities
- Experience with defect tracking tools (Jira, SVN, etc.)
- Customer-facing experience is also desired, as this position may be dealing directly with customers and/or partners
- Strong communication skills as they will be developing requirements and design documents
Preferred Skills:
- Strong working knowledge of a software development process (e.g. Agile, Waterfall)
- Demonstrated knowledge of a scripting language (Python, bash)
- Demonstrated knowledge of RF systems
- Demonstrated knowledge of digital signal processing (DSP) and algorithm development experience. [Examples include Digital Filters, Digital Mixers, Frequency/Waveform Synthesis, Adaptive Signal Processing]
- Demonstrated knowledge of 3GPP standards
- Experience with development on Windows and Linux
-