MatrixSpace is addressing the next generation of AI-enabled sensing solutions using real-time edge-based sensing to sense, detect, and recognize objects, and motion in any situation. MatrixSpace’s ability to combine industry leading RF sensing, AI edge processing and RF communication in real-time is a major technology breakthrough with multiple vertical market applications. We are seeking an Embedded Linux Software Engineer to help create innovative solutions that include embedded software on a Linux platform. This includes design and optimization of software running on ARM cores and/or GPUs to provide cutting edge real-time processing and control of sensors such as radar as well as novel mesh communications systems.
Tasks:
- Perform object-oriented and test-driven development in our CI/CD development environment using light-weight Agile methods. All development uses C/C++ and Python.
- Contribute to software design through UML modeling and creation of software architecture and design documents
- Develop performance optimized software on embedded computers, such as ARM cores or GPUs running Linux OS. Applications include signal and data processing, distributed sensor processing and controlling custom designed hardware for sensing and communications.
- Contribute to development across the full stack – from lightweight, low-level hardware interface and algorithmic code to higher level application code and middleware.
- Develop software for automated deployment to target hardware to streamline build to runtime transition
- Perform software and system testing in simulations (Software-in-the-loop, Simulation-in-Hardware, and others) as well as live hardware tests
- Develop unit tests, integration, and verification tests throughout the development cycle.
- Leverage static code analysis tools such as Coverity for secure and robust software implementation
- Provide input to and help execute collaborative software development practices, including code reviews, and group design sessions
- Create software application for sensors and communication systems
- Control of RF circuits and phased array antennas
- Communications and mesh network processing
- Radar signal processing implementations
- Control of peripherals
- Assist with integration of AI processing capabilities onto embedded processor architectures
- Evaluate processor requirements and create implementation strategy
- Participate in partitioning between processor and programmable logic architectures
Skills:
- Expertise developing software for embedded platforms in C/C++ or Python
- Realtime, multi-tasking, multi-threaded development experience
- Optimization of run-time executables for targeted CPU architectures
- ARM processor experience
- Xilinx Zynq and Ultrascale experience
- Knowledge of or experience with FPGA (VHDL) development
- Linux experience – creating and/or tailoring device drivers and board support packages
- Experience with signal and data processing for Radar/RF applications
- Knowledge of communication protocols such as 802.11xx, and mesh communications is a plus
- Excellent software engineering skills including architectural definition, task identification, design, implementation, and test – from concept through completion
- Demonstrated hardware debugging skill using bench equipment (oscilloscopes, etc.)
- Ability to understand electrical hardware schematics and PCB layout
- Demonstrated success in resolution of technical challenges leveraging strong problem-solving skills
- Strong written & verbal communications skills, and good interpersonal skills
- Experience with software verification & testing
Requirements:
- Bachelor of Science in Electrical Engineering, Computer Science or Computer Engineering
- 2+ years embedded Linux software design and 5+ years of software development experience
- Must be a US Citizen