Embedded Software Engineer

Job description:

We are looking for a Software Engineer with the following capabilities:

A solid foundation in working with microcontrollers, digital signal processors, FPGAs, and/or system-on-chip (SOCs) is required, along with associated experience in programming of these devices (e.g., C/C++/CUDA, Python, VHDL).
Designing and implementing algorithms on embedded platforms
Experience developing on Microcontrollers, DSPs, FPGAs, System-on-Chips (SoCs), System-on-Modules (SoMs), and/or GPUs.
Fundamental knowledge of signal processing and algorithm implementation
Experience with FFTs, digital up/down conversion, decimation/interpolation, FIR/IIR filters, encoding/decoding, and modulation/demodulation schemes
Foundation in filtering, matched filtering, and beamforming
Hands-on testing and debugging of electronics in a laboratory environment
Experienced MATLAB user for analysis, post-processing, and data plotting
Free RTOS experience
NVIDIA Jetson & CUDA experience
NXP RT600 experience
Real time processing
HiFi4 DSP experience
ARM M33 experience
C/C++, Python, MATLAB, translating MATLAB based signal processing algorithms to C/C++/CUDA
Low power embedded firmware/software
Embedded linux
Secure boot
proven track record of designing and implementing software in a Linux environment using Python and modern C++ (e.g. C++17)
A background in autonomous systems, embedded signal processing, AI and ML techniques, or underwater networking and navigation would be beneficial.
Fluency in C++ and/or Python, including standard scientific computing libraries
Experience developing for Linux platforms
Experience using modern software engineering tools (version control, CI, etc.)
Familiarity with IP/TCP/UDP networking and RS232/RS422 communications
Embedded and/or real-time programming experience
Background in networking, controls, or communications theory
Signal processing or numerical modeling experience
Fluency with JavaScript and front-end web development
Autonomous control of Unmanned Surface Vessels
Communication and networking protocols for challenging environments
Acoustic, signal processing and autonomy algorithms for subsea sensor systems
Acoustic payloads for subsea and surface autonomous systems

Qualifications:

A solid foundation in working with microcontrollers, digital signal processors, FPGAs, and/or system-on-chip (SOCs) is required, along with associated experience in programming of these devices (e.g., C/C++/CUDA, Python, VHDL).
Designing and implementing algorithms on embedded platforms
Experience developing on Microcontrollers, DSPs, FPGAs, System-on-Chips (SoCs), System-on-Modules (SoMs), and/or GPUs.
Fundamental knowledge of signal processing and algorithm implementation
Experience with FFTs, digital up/down conversion, decimation/interpolation, FIR/IIR filters, encoding/decoding, and modulation/demodulation schemes
Foundation in filtering, matched filtering, and beamforming
Hands-on testing and debugging of electronics in a laboratory environment
Experienced MATLAB user for analysis, post-processing, and data plotting
Free RTOS experience
NVIDIA Jetson & CUDA experience
NXP RT600 experience
Real time processing
HiFi4 DSP experience
ARM M33 experience
C/C++, Python, MATLAB, translating MATLAB based signal processing algorithms to C/C++/CUDA
Low power embedded firmware/software
Embedded linux
Secure boot
proven track record of designing and implementing software in a Linux environment using Python and modern C++ (e.g. C++17)
A background in autonomous systems, embedded signal processing, AI and ML techniques, or underwater networking and navigation would be beneficial.
Fluency in C++ and/or Python, including standard scientific computing libraries
Experience developing for Linux platforms
Experience using modern software engineering tools (version control, CI, etc.)
Familiarity with IP/TCP/UDP networking and RS232/RS422 communications
Embedded and/or real-time programming experience
Background in networking, controls, or communications theory
Signal processing or numerical modeling experience
Fluency with JavaScript and front-end web development
Autonomous control of Unmanned Surface Vessels
Communication and networking protocols for challenging environments
Acoustic, signal processing and autonomy algorithms for subsea sensor systems
Acoustic payloads for subsea and surface autonomous systems

Why is This a Great Opportunity:

We are looking for a Software Engineer with the following capabilities:
A solid foundation in working with microcontrollers, digital signal processors, FPGAs, and/or system-on-chip (SOCs) is required, along with associated experience in programming of these devices (e.g., C/C++/CUDA, Python, VHDL).