SUMMARY OF POSITIONCanon Medical Research USA, Inc. (CMRU) is seeking a
Software Engineer to join our High Performance Computing team, developing image-processing software for large medical devices, from requirements through production. This role is well suited to a recent graduate with a strong mathematical and systems foundation who is looking to apply coursework in linear algebra, numerical methods, and operating systems to real-time image reconstruction and signal-processing algorithms running on production hardware.
You will work through the full software lifecycle: analyzing requirements, designing solutions, implementing and unit-testing code, and documenting your work to a standard suitable for a regulated medical device environment.
RESPONSIBILITIES- Analyze software requirements documentation and consult with the requirements author as needed.
- Formulate a software design using industry best practices and document it appropriately.
- Implement the software design in C/C++.
- Design and execute unit test plans to verify coded software.
- Contribute to image reconstruction and scientific/mathematical algorithm implementation, including performance optimization.
- Coordinate communication with vendors related to project materials.
- Contribute to the creation of software requirements and specifications.
- Contribute to the corporate IP portfolio.
QUALIFICATIONSEducation- B.S. or M.S. degree in Computer Engineering, Software Engineering, Computer Science, or Electrical Engineering from an accredited institution.
Experience- Entry-level: 0-2 years of professional experience. New graduates are encouraged to apply.
- Strong academic background in applied mathematics is required; linear algebra and numerical methods coursework or project work is required.
TECHNICAL BACKROUNDCandidates should have coursework, internship, or project experience (academic or personal) in most of the following:
- Computer architecture: memory hierarchy, cache behavior, instruction pipelines, and how they affect software performance.
- Operating systems / systems programming: processes, threads, scheduling, synchronization primitives; direct experience with a preemptive multitasking RTOS is a plus.
- Multi-threaded / parallel programming: experience writing correct, race-free concurrent code; exposure to multi-processing or parallel algorithm design.
- C/C++: solid fundamentals; comfort with memory management and low-level debugging.
- Numerical methods and linear algebra: ability to translate mathematical algorithms into efficient, numerically sound code.
- Image processing and/or GPU programming experience is a plus (CUDA, OpenCL, or similar).
- Familiarity with version control, defect tracking tools, and peer code review is a plus.
Key Competencies- Strong analytical problem-solving skills, particularly with mathematically dense algorithms.
- Initiative and solution orientation; comfortable working through ambiguity.
- Clear written and verbal communication, including the ability to document design decisions.
- Effective relationship building across a cross-functional engineering team.
- Sound time and task management.
Time and Location Commitment- This position is regular, full-time and requires a commitment of 37.5 hours per week, Monday-Friday, during regular business hours.
- This position is based in CMRU's office in Vernon Hills, IL.
- A hybrid work schedule will allow the ideal candidate the flexibility to work from home on some days and from the office on other days, but the candidate must be able to come on-site daily based on the needs of the projects and business requirements.