Mayfield Village (Cleveland), Ohio

Canon Medical Research USA, Inc. (CMRU) is a multi-modality R&D organization creating next-generation medical imaging systems. It is equipped with cutting-edge instrumentation, prototyping, hardware labs and scientific computing facilities in order to perform research targeted to pre-clinical and clinical CT, PET, MRI, and X-ray systems. For those who like to develop new technologies and research new ways of using them, Canon is a rewarding place to work, due to its focus on innovation as the lifeblood of new products.

CMRU is committed to recognizing and appreciating the variety of characteristics that make individuals unique in an atmosphere that promotes work/life balance and celebrates individual and collective achievement. We are especially interested in qualified candidates who can contribute, through their experience, education, research and/or service, to the diversity and excellence of our organization and the scientific and engineering community at large.

CMRU offers a great work environment, professional development, challenging careers, and competitive compensation and benefits. We are an equal opportunity employer (EOE).


CMRU has an immediate opening for a Software Engineer or Senior Software Engineer in our Magnetic Resonance Imaging (MRI) business unit located in Mayfield Village, an eastern suburb of Cleveland, Ohio.

The Software Engineer will design, develop, and productize new MRI reconstruction software for Canon Medical MRI scanners. This engineer will be working in small, agile, cross-functional teams to achieve results.

For consideration as Senior Software Engineer, candidate must demonstrate experience in the design and development of software solutions for complex systems. In addition, candidate must be able to work independently, create and clearly communicate designs and lead other team members.


  • Design, develop, and productize reconstruction algorithms for new feature releases of Canon MR products
  • Work on multi-disciplinary teams to translate customer needs into feature requirements, design, and test specification documents
  • Ensure optimum performance of product software, using knowledge of performance optimization and computer hardware
  • Maintain product software, respond with appropriate urgency to bug reports by using knowledge of existing software code base and working in multi-disciplinary teams
  • As part of the software team, conduct design and development work to improve MR product reconstruction framework to accelerate product deployment, simplify maintenance, and improve testability of reconstruction algorithms
  • Keep informed of technical trends in the software development field in order to contribute to future design discussions and software architecture and reconstruction hardware improvements
For a senior engineer, we expect the ability to take on the following additional responsibilities:
  • Use knowledge of software architecture to provide architectural blueprints and technical leadership to the software team
  • Evaluate and recommend tools, technologies and processes to ensure the highest quality product software
  • Keep informed of technical trends in the software development field in order to drive future design discussions and software architecture and reconstruction hardware improvements
  • Coach and mentor junior staff members
  • Project planning, including converting high level goals into concrete work breakdown structure and team assignments, creating milestones and providing accurate estimates.



  • B.S or M.S. in software engineering, electrical engineering, biomedical engineering, mathematics, or equivalent; or 3+ years related experience


  • Experience in developing applications for medical imaging in industry or an engineering laboratory
  • Strong C++ programming and debugging skills with knowledge of object-oriented principles
  • Practical experience in designing high performance software, including use of multithreading, and advanced hardware like GPUs, CUDA programming, fast math libraries like Eigen, Arrayfire
  • Practical experience in profiling and optimization of high-performance software, through the use of tools and knowledge of computing hardware
  • Experience in deployment of image processing algorithms applications in an environment with external users

Key Competencies

  • Demonstrated experience in development within complex software systems, especially in medical imaging.
  • Development on Windows and Linux platforms
  • Experience with Visual Studio or equivalent IDE based development and debugging
  • Experience with CMake or equivalent build systems
  • Experience with Linux command line tools and scripting
  • Strong understanding of software development principles and tools, covering full software development life cycle – requirements, design, testing, integration
  • Demonstrated ability in continued development of existing software, including knowledge of design and code refactoring
  • Proven ability to learn medical imaging physics and mathematics fundamentals
  • Proven ability to be a self-motivated, proactive, productive, and flexible team member
  • Excellent analytical and problem-solving skills
  • Results-oriented and driven by innovation and creativity
  • Excellent verbal and written communication skills, especially cross-discipline

Desired Competencies

  • Experience working in medical device industry
  • MATLAB or Python scientific programming experience
  • Hands-on product development using GPU and other high-performance computing platforms
  • Practical knowledge of machine learning technology and frameworks


  • Ability to complete domestic and international travel (up to 5% of time)
Apply for this position