Software Developer – Image Processing and Automation
Location: Waterloo, Ontario
Experience: 3+ years relevant work experience
Education: College diploma or university degree in engineering, mathematics, science, or another applicable field.
About the Position
The chosen candidate will become a key member of the software team at P&P Optica. The software team is responsible for a wide range of activities including software input to the design of our Smart Imaging Systems, development of data-capture, image-processing, and machine-learning modules for real-time analysis, hardware interfacing for microcontroller platforms, custom control modules and production integration, chemometric algorithm development, user interface design, and customer data portal facilities. Software team members are involved in all aspects of our software stack; we encourage broad knowledge and cooperation across the team by constantly challenging ourselves in new system software areas.
- Develop software for complex, multi- instrument, smart image processing systems.
- Collaborate with the hardware group to design systems involving sensors, microcontrollers, optical components, and production line hardware, with software for interfacing, coordination, image processing, and communication of results locally and to the cloud.
- Create/adapt Python-based machine- vision and signal-processing algorithms for data acquisition and analysis.
- Optimize algorithms and systems to achieve results in required time-frames.
- Document the use, internals, and installation of software systems, for coworkers and customers.
Additional Tasks May Include
- Software installation on production and feasibility systems.
- Testing of new software releases.
- Evaluation and integration of software development infrastructure.
- Support for on-site installation and testing at Customer’s facilities.
- Mentoring and supervision of interns, co-op students, and contractors.
- Software support for hardware and feasibility testing groups.
- Work with external suppliers for hardware and software (e.g. cloud infrastructure).
You want to work for a fast-paced, growing company that focuses on providing innovative solutions to help its customers. You want to be part of a team of motivated people like yourself who are eager to solve challenging problems and learn new skills. You have a positive attitude, care about doing things right, and are motivated by making a positive impact.
- Minimum 3+ years of experience developing industrial-strength software.
- Solid experience with software development processes and tooling.
- Ability to architect, implement and prove out effective solutions for complex coordination, automation, and image-processing systems.
- Industrial experience with Python and C/C++.
- Comfortable with both low-level embedded software and higher-level, whole-system abstractions.
- Strong written and verbal communications skills with experience documenting software designs.
- Ability to work effectively as part of a fast-paced, multi-disciplinary team with clear communication to all team members and management.
- Experience with automation using microcontrollers and PLCs is a strong asset.
- Experience in image processing is highly beneficial.
- Familiarity with hardware interfacing techniques.
- Significant Linux experience.
- Knowledge of machine learning and/or neural networks.
- Strong background in mathematics/statistics as applied to signal processing, data analysis or chemometrics.
- Food industry experience is a significant asset.
P&P Optica is committed to supporting a culture of diversity across our organization. Our hiring practices are aligned with human rights laws, which guarantee every person equal treatment in regard to employment and opportunity for employment, regardless of race, colour, creed/religion, sex, sexual orientation, marital status. We welcome and encourage applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process.