CT Senior/Principal Software Engineer

Vernon Hills, IL

Company Description

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).

Duties and Responsibilities

  • Analyze software requirements documentation and consult with the author as needed.
  • Formulate a software design using industry best practices and document it appropriately.
  • Implement the software design by coding.
  • Design and execute the unit test plan to verify the coded software.
  • Coordinate communication with vendors related to project materials.
  • Contribute in the creation of software requirements and specifications.
  • Contributes to corporate IP portfolio.


  • Bachelor’s degree in computer science, electrical engineering, or related technical discipline.

Experience/Skills Required

  • 3+ years of industry C/C++ development experience.
  • Experience designing software for multi-threaded and/or multi-processing environments, including parallel processing.
  • Capable of understanding mathematics and scientific algorithm to design and implement image processing applications.

Experience/Skills Preferred

  • Understanding of computer architecture principles.
  • Experience in embedded systems design with preemptive, multitasking real-time operating systems (RTOS).
  • Familiarity with software configuration management tools, defect tracking tools, and peer review.
  • Knowledge or experience in GPU programing experience helpful.
  • Knowledge of Linux kernel programming and device driver development.
  • Experience with embedded Linux build systems such as Yocto

Competencies/Other Requirements

  • Excellent analytical and problem solving skills
  • Initiative
  • Solution orientation
  • Relationship building
  • Communication & verbal, written, listening
  • Time/task management
  • Ability to complete domestic and occasional international travel is required
Apply for this position