Senior Embedded Software Engineer – Linux
(Rockville, MD)
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.
REQUIRED EXPERIENCE
• Bachelors or Master’s degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.
REQUIRED SKILLS
• 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
DESIRED 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
ABOUT IAI
Intelligent Automation, Inc. (IAI) is a technology innovation company headquartered in Rockville, MD. For over 30 years, we have specialized in providing advanced technology solutions and R&D services to federal agencies and corporations throughout the United States and internationally. Leveraging agile R&D processes, a multi-disciplinary collaborative environment, and its substantial intellectual property portfolio, IAI excels in developing concepts into market-focused products and customer-driven solutions. IAI’s core R&D areas include: Air Traffic Management, Big Data and Social Media Analytics, Control and Signal Processing, Cyber Security, Education and Training Technologies, Health Technologies, Modeling and Simulation, Networks and Communications, Robotics, and Sensor Systems.
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.