Software Engineer, Numerical Computing
- Washington D.C., United States
- $150K – $210K /yr
- Mid Level
- Posted
Responsibilities
- As a key contributor to the Spectrum Sensing team, you will shape the software architecture and engineering practices behind our sensing stack. The day-to-day will be diverse, engaging, and intellectually stimulating, with direct impact on pushing the boundaries of sensing technology and application. Key responsibilities include:
- Design, develop, and maintain production-quality numerical software in Python, with an emphasis on clear interfaces, composability, and long-term maintainability
- Integrate third-party software and hardware into the CHAOS platform via APIs, and own the abstractions that keep those integrations from leaking into the rest of the codebase
- Profile and accelerate signal processing implementations — through vectorization, array-programming frameworks, JIT compilation, GPU offload, or bindings to compiled code — and quantify the improvement
- Define and drive test and CI hygiene for numerical code: numerical regression tests, tolerance and reproducibility strategy, property-based and reference-implementation testing, and automation that catches breakage before a field demonstration does
- Partner with signal processing engineers to turn algorithms from papers, prototypes, and MATLAB into software that ships
- Contribute to overall software architecture decisions for the sensing product line, including how components compose across the platform
- This role will require periodic travel, up to 30%
Requirements
5+ years of professional software development experience
- Demonstrated proficiency in Python for numerical computing, including writing, maintaining, testing, and debugging production-quality codebases — not analysis scripts or notebooks alone
- Strong software engineering fundamentals: version control workflow, code review, automated testing, and CI
Preferred
- M.S. degree in Computer Science, Electrical Engineering, Applied Mathematics, or a related field
- Meaningful open-source contributions to numerical, scientific computing, or signal processing software (we will read your commit history, not just your repository list)
- Exposure to digital signal processing — filtering, FFT-based processing, detection and estimation, or beamforming — whether from coursework, research, or industry
- Experience with software-defined radios (SDRs) or associated signal processing toolkits (e.g., GNU Radio)
- Experience with real-time, streaming, or throughput-constrained data processing systems
- Experience designing APIs or libraries consumed by other engineering teams
- Familiarity with MATLAB, sufficient to read and port existing algorithm prototypes
Current U.S. security clearance
- Experience with agile development tools like JIRA and Confluence
- Experience in DoD, military, or other Government environment in a fast-paced, dynamic environment
- hy CHAOS?
Role Overview
We are seeking a software engineer who is fluent in numerical computing to build the software foundation of our electromagnetic warfare product line. Our Spectrum Sensing team is transforming CHAOS radar systems into distributed sensing systems that detect, classify, and geolocate RF emissions — and the algorithms that do it only matter if they run correctly, quickly, and reliably in production.
This is a software engineering role first. You will own how our numerical and signal processing code is architected, integrated, tested, and accelerated. You do not need a background in RF or radar; you do need to be the person on the team who knows why a Python implementation is slow, what to do about it, and how to build a codebase that other engineers can safely extend. You will work alongside signal processing and RF engineers who supply the algorithms, and you will be the reason those algorithms become dependable software.
Minimum Requirements
B.S. degree in Computer Science, Electrical Engineering, Applied Mathematics, Physics, or a related field
Strong command of array-based numerical computing (NumPy, SciPy, or equivalent), including an understanding of where and why Python performance breaks down
Demonstrated experience making numerical code fast through at least one of: array/tensor DSLs and JIT compilation (JAX, Numba, PyTorch, Triton, Halide, or similar), GPU-accelerated computing (CUDA or equivalent), or bindings between Python and compiled languages (pybind11, nanobind, Cython, or similar)
Demonstrated experience contributing to a large, multi-team codebase — working within existing architecture, navigating unfamiliar code, and shipping changes that other teams depend on
Strong verbal and written communication skills, with the ability to clearly document technical details and present findings
Must be able to work on-site 4 days per week in Washington, D.C.
U.S. citizen
Ability to obtain and maintain a U.S. security clearance
Health Benefits
Medical, dental, and vision benefits 100% paid for by the company
Additional benefits
: 401k (+ 50% company match up to 6% of pay), FSA, HSA, life insurance, and more
Our Perks
Free daily lunch while you're working onsite, fully-stocked kitchen, unlimited PTO, casual dress code
Compensation Components
Competitive base salaries, generous pre-IPO stock option grants, relocation assistance, and (coming soon!) annual bonuses
Team Growth
500+ employees and counting across 5 global offices
Salary Range: $150,000 - $210,000
The stated compensation range reflects only the targeted base compensation range and excludes additional earnings such as bonus, equity, and benefits. If your compensation requirements fall outside of the range, we still encourage you to apply. The salary range for this role is an estimate based on a range of compensation factors, inclusive of base salary only. Actual salary offer may vary based on (but not limited to) work experience, education and/or training, critical skills, and/or business considerations.
Recruiting Agencies: CHAOS Industries does not accept unsolicited resumes or outreach. Unsolicited submissions will not be reviewed or compensated.
jobapplier