Embedded Software Engineer - Linux
Indexed description
Intelligent Automation, Inc. (IAI) is looking for a new team member who is a self-motivated Software Engineer with a passion for electro-mechanical systems. You will be working with the Robotics and Electromechanical Systems Group to develop custom solutions in the fields of Robotics, Autonomy, Human-Machine Interface, Machine Vision, and Electromechanical System Design.
We have numerous active research and development projects where we design, integrate, test, and deploy systems for a range of applications, including aircraft inspection, ISR (intelligence, surveillance, and reconnaissance), utility construction, medical training, IED/EOD operations, and simulation. We are looking to add expertise and talent to our multi-disciplinary team to continue to achieve success in all of these areas.
Job Duties
- Work closely with algorithm developers, and/or lead algorithmic development, to mature algorithms from MATLAB and C++ to real-time applications.
- Work closely with and/or lead FPGA engineers developing architecture/protocol to exchange control/data between ARM and FPGA using shared registers/memory, DMA/VDMA.
- Utilize and/or modify existing code bases and libraries; create and shape new functionality.
- Bachelors or Master’s degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.
- Knowledge and hands-on experience of Linux system software development with build configuration and customization. Bonus for familiarity developing on any embedded Linux.
- Installing and configuring embedded Linux, i.e. U-Boot, FSBL, Drivers, Frame Buffer
- Multi process/thread programming using techniques like Boost, C++11, and ASIO event driven when relevant.
- Toolchain & Compiler/Cross-Compiler Technologies for ARM/X86/X86_64/BareMetal
- Inter-System communication over TCP/UDP, Serial Interface
- Integration with common external interfaces such as I2C, SPI, UART
- Write clean, efficient, well-documented code
- Proficient with SCM tools such as SVN, GIT, and Mercurial
- Strong written and communication skills
- Comfortable with common classic signal processing and/or image processing algorithms
- Understands challenges of developing an application that processes in real-time.
- Familiar with setting up a cross compiler such as Linaro or the Xilinx/Petalinux SDK.
- Comfortable with platform independent tools such as CMAKE and QMAKE.
- Experience with other programming languages, such as Java and Python.
- Proficient optimizing ARM software using NEON
- Experience with prototyping, integrating, testing and deploying electromechanical systems
- Profile/Optimize software to select/meet target platform
- Experience prototyping software based on conference/journal publications
US Citizenship or Permanent Residency required
All qualified applicants will receive consideration for employment without regard to race, color,
religion, sex, sexual orientation, gender identity, national origin, disability, or veteran status.
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search