Real-Time Software Engineer - C++ & Linux
ExternalPrepare for this interview
EliteAI-generated questions, company research, and talking points tailored to this role
Requirements
- Familiar with common signal processing and/or image processing algorithms
- Installing and configuring embedded Linux, i.e. Yocto, Arch, Raspberry Pi (Raspian)
- Optimization using GPU or SIMD/NEON.
- Toolchain & Compiler/Cross-Compiler Technologies for ARM/X86/X86_64/BareMetal
- Experience with common middleware implementations that interchange data between algorithms and applications such as Robotic Operating System (ROS)
- Experience with prototyping, integrating, testing and deploying electromechanical systems
- Experience prototyping software based on conference/journal publications
- About Iai
- 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.
Additional Information
Senior Real-Time Software Engineer - C++ & 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. - Develop and /or improve software frameworks that handle multiple sensor streams while allowing algorithms to process them. - Profile software systems to identify bottlenecks (processor, memory, I/O) and collaborate on improvements as needed. - Utilize and/or modify existing code bases and libraries; create and shape new functionality. Required Experience - Bachelors (BS) or Master's degree (MS) in Electrical Engineering, Computer Engineering, Computer Science (or a related field) Required Skills - Knowledge and hands-on experience of medium scale software project developed and executed in Linux with build configuration and customization. Bonus for familiarity with embedded Linux. - Experience prototyping and implementing challenging software solutions or algorithms in C/C++ based on collaboration and whiteboarding sessions. - Multi process/thread programming such as thread safety and synchronization using frameworks like Boost, C++11, and ASIO event driven when relevant. - Strong background in Object Oriented Programming (OOP). - Inter-System communication over TCP/UDP, Serial Interface such as I2C, SPI, UART. - Experience configuring C/C++ compilers for libraries and optimizations either through an IDE or Makefile - Profile/Optimize software to select/meet target platform - Write clean, efficient, well-documented code - Proficient with SCM tools such as SVN, GIT, and Mercurial - Strong written and communication skills
Your Match
How well this role fits your profile.
Company Intel
What employees say
Worked at Intelligent Automation, a BlueHalo Company? Share your experience