The Algorithm Software Engineer will contribute to the design, implementation, testing, and performance optimization of tomographic image reconstruction software for our company Molecular Imaging scanners.
This is an exciting opportunity for an outstanding early-career engineer to work at the intersection of software, algorithms, high-performance computing, and medical imaging. We are looking for exceptional graduates with strong technical foundations, intellectual curiosity, and the ability to solve complex problems.
No prior professional experience is required. Academic, research, personal, or internship projects demonstrating strong technical capabilities are highly valued.
Job Description
Roles and Responsibilities
Develop and implement reconstruction algorithms and software tools in C++ within parallel CPU/GPU environments.
Collaborate with algorithm engineers and scientists to understand mathematical and physical algorithms and translate them into robust software solutions.
Contribute to the architecture and design of complex software components.
Collaborate with software teams to define interfaces between the reconstruction environment and other software subsystems.
Analyze and optimize software performance, runtime, and memory usage.
Write software requirements, design documents, and technical specifications.
Design and execute software unit tests.
Support the Verification & Validation team in defining and executing system testing plans.
Support technical investigations and field-related issues as needed.
Participate in code reviews and technical reviews.
Maintain configuration management and control of generated code.
Continuously learn and apply new technologies in software engineering, algorithms, and high-performance computing.
Requirements: B.A./B.Sc./M.Sc. in Computer Science, Computer Engineering, Software Engineering, or a related field from a leading or well-regarded academic institution.
Strong academic record and demonstrated technical excellence. Academic honors, outstanding projects, research achievements, scholarships, or participation in programming competitions are highly valued.
Strong knowledge of C/C++ programming, demonstrated through academic, research, personal, or internship projects.
Solid understanding of data structures, algorithms, object-oriented programming, debugging, and software testing.
Strong analytical and problem-solving abilities, with the creativity to tackle complex technical challenges.
Intellectual curiosity, fast-learning ability, initiative, and a passion for technology.
Strong oral and written communication skills and the ability to work effectively in a collaborative, multidisciplinary environment.
Desired Skills
Hands-on implementation of algorithms through academic, research, or personal projects.
Exposure to parallel programming on multi-core CPUs or GPUs.
Familiarity with OpenCL or CUDA.
Knowledge of MATLAB and/or Python.
Knowledge of image processing, computer vision, or medical imaging.
Understanding of software performance optimization.
Experience with research projects, publications, open-source contributions, or competitive programming.
This position is open to all candidates.