Job DescriptionAs a key member of our team, you will drive the development of high-performance software leveraging the power of GPU computing. Your work will involve:
- Designing and implementing high-performance algorithms optimized for GPU architectures using CUDA.
- Developing and maintaining CUDA kernels for signal processing, image processing, and other computationally intensive tasks.
- Collaborating with cross-functional teams - including hardware engineers, signal processing experts, and systems architects - to define requirements and deliver innovative solutions.
- Designing and evaluating complex software architectures, ensuring they meet customer requirements and performance goals.
- Developing software applications in C++, Python, and MATLAB, integrating GPU-accelerated components with larger systems.
- Applying DevSecOps and CI/CD practices to ensure software quality and rapid iteration.
- Profiling and optimizing CUDA applications to maximize performance and efficiency.**
- Developing software solutions that interface with hardware devices such as FPGAs, GPUs, and embedded SoCs.
- Developing software for RF, Radar, EO/IR, Electronic Warfare, or Software Defined Radio systems, with a focus on GPU acceleration of core algorithms.
Work EnvironmentThis role requires 100% on-site work at a BAE Systems facility due to the need for consistent, in-person collaboration and secure access to sensitive information. Occasional domestic travel may be required to support integration and test events.-KS1
Current BAE Systems employees are ineligible for sign-on bonuses.
This position will be posted for at least 5 calendar days. The posting will remain active until the position is filled, or a qualified pool of candidates is identified.
Required Skills and Education- Active Top Secret Clearance
- Bachelor's Degree in computer science, computer engineering, or a related technical field
- 6+ years of professional software development
- Expert-level proficiency in C++11 (or later) with a strong emphasis on performance optimization and parallel programming.**
- Expert-level experience with CUDA, including kernel development, memory management, and performance analysis.**
- Expert-level experience developing for and operating in a Linux Environment
- Knowledge of software architectures, industry best practices, and emerging software technologies
- Excellent leadership, communication, and collaboration skills
- Ability to work in a fast-paced environment and adapt to changing requirements
- Proven project management skills with ability to deliver high-quality software products on time
Preferred Skills and Education- Master's Degree or PhD in computer science, computer engineering, or a related technical field
- MATLAB Experience is a plus
- Development experience with Python
- Experience with GPU compute frameworks beyond CUDA (e.g., OpenCL)
- Experience in a rapid prototype environment
- Real-time, embedded, multi-threaded, low latency development and/or Linux application development
- Experience with DevSecOps, Continuous Integration/Continuous Deployment (CI/CD), or automated release management
- Experience with containerization (e.g. Podman/Docker) and developing software in containerized environments
- Experience developing applications that cover several of: distributed, multi-threaded, real time, embedded, low latency, DSP, device control, or military systems.
- Knowledge of Digital Engineering methodologies and Model-Based Systems Engineering (MBSE) practices.