Job Title: Software Developer
Duration: 3+ Years
Location: Lexington, MA
Description:
Develops application software by writing and implementing efficient code. Researches, designs, develops, and implements software applications and systems. Involved in planning system deployment and responsible for meeting software compliance standards. Evaluates, designs, and implements interfaces between hardware and software, operational requirements, cloud offerings, system architecture, security, and characteristics of overall systems. Researches, designs, implements, and manages software programs. Identifies areas for modification in existing programs and develops these modifications. Determines operational practicality. Documents testing, client experience, and maintenance of system corrections. May collaborate with cybersecurity teams to ensure compliance with security standards and may develop and conduct unit tests.
Background/Need:
The Group requires a software developer with experience in developing both digital signal processing code and user applications for RF communications. Develops software for RF communications applications, including signal processing blocks, networking, GUIs, and operator-facing applications. Writes code for software defined radios (SDRs) such as Ettus USRPs (X310s and/or X410s) that act as RF interfaces. Develops optimized signal processing code for GPUs (C/CUDA) and for SDR Xilinx FPGAs (Verilog, VHDL, RFNoC). Creates unit and end-to-end tests to verify software and system functionality. Debugs issues (MATLAB experience helpful). Verifies software meets timing requirements for real-time functionality and creates polished GUIs or applications based on operator feedback. Code development spans real-time applications on GPUs and SDRs as well as non-real-time applications.
Job Responsibilities:
- Configure programming environments and tools (Python, UHD, containers) for collaborative coding and software transfers
- Design and set up digital signal processing blocks on GPUs based on models and MATLAB code
- Develop production-ready software for deployment and transfers
- Develop local and web-based GUIs for operators
- Report internally via verbal and written methods
Key Skills:
- Real-time processing on GPUs using C/CUDA
- Programming and scripting: Python, C/C++, Bash
- GUI and/or user application development
- Linux platform development experience
- Familiarity with VNCs and containerization (Docker, Kubernetes)
- Experience using AI tools (AI Agents, etc.) to assist software development
- Bachelor s Degree in STEM field
- MS Office
Must Have:
- Bachelor s Degree in STEM field
- 1+ years experience using AI tools for software development
- 2+ years C/C++ programming experience
- 2+ years experience with containerization technologies (Docker, Kubernetes)
- 2+ years Linux platform development experience
- 2+ years experience developing GPU-based (CUDA) applications
- 2+ years GUI development experience
- 2+ years Python and Bash scripting experience
- 2+ years experience with real-time processing systems
Preferred:
- MATLAB for signal processing and debugging code/applications
- Experience with Ettus USRPs (X310s, X410s) or similar SDRs and their software (RFNoC, UHD, GNU)
- Experience programming Xilinx FPGAs on USRPs
- Digital and wireless radio/communications technology experience
- Version control tools: Git, GitHub, GitLab
Education:
- Bachelor s degree in STEM field required; advanced degree preferred
Other:
- Clearance: Interim clearance is sufficient to start
- Work Location: Candidate should expect 2 3 days onsite per week; remaining days remote
- Interview Process: First-round Zoom technical screening; second-round in-person interview (second-round Zoom considered for relocation candidates)