Senior-Level Software Engineer

Mayfield Village, OH

Company Description

Canon Medical Research USA, Inc. (CMRU) is a multi-modality R&D organization creating next-generation medical imaging 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).

Summary of Position

CMRU has an immediate opening for a senior-level Software Engineer in the Magnetic Resonance software team to participate in developing acquisition control software for our MR product line. A key role for this engineer will be working with international team members on embedded software as well as systems software.


Under the supervision of a senior scientist:

  • Develop and test MR acquisition control software.
  • Write application software for a Linux system using C.
  • Contribute to the design and specification.
  • Document and test software.
  • Build and maintain software test infrastructure.
  • Optimize software performance on available computation hardware.
  • Work with MR physicists to implement algorithms for MR acquisition systems, including data acquisition and image reconstruction.
  • Research and innovate novel methods and/or technologies in data acquisition and/or image reconstruction.



  • B.S. or equivalent in Electrical Engineering, Computer Engineering/Science, Physics/Engineering Physics, Biomedical Engineering, or equivalent.
  • Advanced degree like M.S. or Ph.D. desirable.


The ideal candidate will have minimum four (4) years related experience and/or training, preferably in a product development environment; academic or research settings will be considered as well. Experience in embedded software design (i.e., FPGA, microcontroller, and/or inter-integrated circuit control) is a plus.

Key Competencies

Computer Skills

  • Coding experience in C is required.
  • Familiarity with Linux systems and related development environments.
  • Knowledge of programming languages and development environments (C/C++, Python)
  • Knowledge of development on multiple operating systems (including Windows, Linux)
  • Knowledge of source code control systems like SVN, Mercurial
  • Knowledge of multi-process/multi-threaded environments
  • Knowledge of performance profiling and optimization
  • Knowledge of C++ and Object Oriented Programming and Design preferred
  • Exposure to shell scripts and advanced command line tools in Windows, Linux preferred
  • Exposure to Scientific Programming preferred (MATLAB or equivalent)
  • Software for creating documents, spreadsheets, and presentations

Language Skills

  • Ability to read, analyze, and interpret technical requirements and design documents.
  • Ability to write presentations for publication that conform to prescribed style and format.
  • Ability to communicate information to supervisor, groups, and/or senior management effectively.

Mathematics/Physics Skills

Ability to learn and apply concepts from the following fields:

  • Mathematical analysis: differentiation and integration
  • Complex number mathematics including magnitude/phase relationships, and mathematical transform space (i.e., between frequency/time domains)
  • MR physics and image reconstruction, including FFT, non-Cartesian re-gridding, apodization, filtering, etc.
  • Medical image processing
  • Linear algebra
  • Numerical analysis
  • Statistics
  • Digital signal processing

Reasoning Ability

  • Ability to define problems, collect data, analyze data, establish facts, and draw valid conclusions.
  • Ability to interpret an extensive variety of technical information in mathematical or diagram form and deal with several abstract and concrete variables.


  • Ability to complete domestic and international travel is required.
Apply for this position