Embedded Software Engineer - Linux
Apply NowCompany: INTELLIGENT AUTOMATION, Inc.
Location: Rockville, MD 20850
Description:
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.
(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.