Senior Software Engineer-Algorithm Developer
Role details
Job location
Tech stack
Job description
-
Design, develop, and optimize algorithms for complex software systems.
-
Implement high-performance, reliable, and maintainable code using modern standards.
-
Analyze system requirements to architect scalable algorithmic solutions.
-
Profile and optimize existing algorithms for speed, accuracy, and resource usage.
-
Integrate software components written in multiple programming languages, ensuring seamless interoperability and consistent functionality across C++, Python, MATLAB, and legacy codebases.
-
Collaborate with systems engineers, domain experts, and other software developers to integrate algorithms into larger applications.
-
Write unit tests, participate in code reviews, and ensure code quality across the software lifecycle.
-
Document algorithmic approaches, assumptions, and performance metrics.
-
Troubleshoot and resolve technical issues in both new and legacy codebases.
Requirements
We are seeking an experienced Senior Software Engineer with a strong background in algorithm design, optimization, and implementation using C++, FORTAN, Python, and MATLAB. The ideal candidate excels at solving complex technical challenges, designing efficient software architectures, and working collaboratively within cross-functional engineering teams., Note: US citizenship and an Active Security Clearance is required
-
Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, Mathematics, or related field.
-
7+ years of professional software engineering experience.
-
Strong expertise in modern C++ (including templates, STL, memory management, and object-oriented design), with additional professional experience in Python, MATLAB, and Fortran.
-
Demonstrated experience developing and implementing complex algorithms.
-
Skilled in debugging, profiling, performance tuning, and code optimization.
Experience with version control systems such as Git.
-
Ability to work independently on technically challenging problems and contribute within a collaborative team setting.
-
Strong analytical, mathematical, and problem-solving skills.
Preferred Qualifications
-
Master's or PhD in a technical field related to algorithms or software engineering.
-
Experience with real-time systems or high-throughput data processing.
-
Knowledge of numerical methods, signal processing, or related algorithmic domains.
-
Experience modernizing or integrating legacy Fortran-based algorithms into contemporary software systems.
-
Familiarity with CI/CD pipelines, DevSecOps, containerization, or automated testing frameworks.
-
Experience with Linux development environments.