Description
We are currently looking to add a Junior Software Engineer to our team in Bowie, Maryland.
The successful candidate will be responsible for designing and implementing real-time signal processing algorithms on GPUs.
Responsibilities:
- Contributing to design and development of advanced systems as part of multi-disciplinary teams
- Achieving key project/program objectives and deliverables for entire projects or processes spanning multiple technical areas and independently managing large projects or processes
- Designing and implementing real-time signal processing algorithms on GPUs
- Understanding signal processing algorithms written in MATLAB
- Parallelization of existing algorithms
- Decomposing complex signal processing chains into discrete components and kernels
- Hand crafting CUDA kernels for high performance
- Designing and implementing multi-threaded software architectures
- Designing, implementing, and testing high-speed data transfer/Latency codes
- Designing, implementing, and testing real-time C/C++ software for multi-core systems running Linux operating systems
- Building software products that utilize third-party mathematics and communication libraries
- Interfacing communication standards/protocols such as TCP/IP, UDP, and DDS
- Working with Linux operating system as well as experience with real-time operating systems
- Documenting the developed systems
- Supporting system field testing and collection events
Requirements:
- Bachelor's Degree in Computer Engineering, Electrical Engineering, or Computer Science
- 3+ years of software development experience, including strong experience in C/C++ software development
- Experience with NVIDIA/CUDA development and profiling tools and libraries
- Experience using version control (Subversion, GIT, etc.) and continuous integration software tools
- Must be able to obtain and maintain a DoD Secret clearance (U.S. Citizenship is required)
Nice to Have:
- Master's Degree in Computer Engineering, Electrical Engineering, Computer Science, or equivalent
- Experience with Machine Learning and/or Artificial Intelligence algorithms and libraries, such as TensorFlow
- Experience with MATLAB GPU coder tool
- Experience with High-Performance Computing including parallel and distributed computation
- Experience with Model-Based Design code generation practices
- Experience with other programming languages such as Java