Vernon Hills, IL
(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 PositionCMRU has an immediate opening for a Senior Software Engineer in the FPGA and Embedded Software team to participate in developing low-level embedded software primarily for custom-hardware communications, acquisition control, and data collection in our medical imaging product lines.
- Develop and test medical imaging system acquisition control software.
- Write low-level software for a Real-Time Linux system using C.
- Write Linux kernel and application level drivers for custom hardware using C.
- Contribute to the design and specification of their assigned components./p>
- Communicate with Hardware and FPGA Engineering to develop system infrastructure.
- Read, interpret, and contribute to hardware – software interface specifications.
- Develop low-level embedded software interfaces to custom and semi-custom hardware.
- Document and test software.
- Build and maintain software test infrastructure.
- Follow company processes and industry best practices.
- B.S. or equivalent in Computer Science, Computer/Electrical Engineering, or equivalent.
- Advanced degree like M.S. 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 low-level embedded software design (e.g. FPGA embedded processor, microcontroller, hardware IC control) is highly preferred.
- Coding experience in C is required.
- Knowledge of programming languages and development environments (C/C++, Python) required.
- Knowledge of multi-process/multi-threaded environments required.
- Knowledge of Operating System low-level objects (mutex, semaphore, etc.) required.
- Familiarity with Linux systems and related development environments preferred.
- Knowledge of source code control systems like Subversion preferred.
- Knowledge of C++ and Object Oriented Programming and design preferred.
- Knowledge of development on multiple operating systems (including Windows, Linux) helpful.
- Knowledge of performance profiling and optimization helpful.
- Exposure to shell scripts and advanced command line tools in Windows, Linux helpful.
- Software for creating documents, spreadsheets, and presentations.
- 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 team members, supervisor, groups effectively.
Mathematics SkillsAbility to learn concepts from the following fields:
- Linear algebra
- Numerical analysis
- 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 occasional domestic or international travel is required.
- The position is at the Canon Medical Research USA, Inc. headquarters in Vernon