Software Developer – Image Processing and Automation

About P&P Optica

P&P Optica (PPO) is dedicated to improving the safety, quality, and efficiency of food production in North America through the development of its innovative Smart Imaging technologies. Our Smart Imaging products and systems incorporate PPO’s world-class expertise in spectroscopy and data analysis to push the boundaries of what is possible for real-time food product analysis. PPO is rapidly growing to meet these opportunities and we’re looking for talented, new individuals to join our team. At PPO we believe it’s important to enjoy and take pride in what we do. We strive to ensure a fun, friendly, and respectful work environment that continually offers new and interesting challenges and opportunities.

For more information about us and our open positions, please visit us at


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.

Primary Responsibilities:

  • Develop software for complex, multiinstrument, 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 machinevision 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).
  • Other duties, tasks as required.

About You:
You want to work for a fast-paced, growing company that is helping its customers to be more successful through the use of its innovative products and solutions. 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.

Required Skills:

  • Minimum 3+ years of experience developing industrial-strength software.
  • College diploma or university degree in engineering, mathematics, science or another applicable field. 
  • Solid experience with software development processes and tooling.
  • Ability to architect, implement, and prove out effective solutions for complex coordination, automation, and image-processing problems.
  • 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.

Bonus Skills 

  • Experience with automation using microcontrollers and PLCs is a strong asset.
  •  Experience in imaging processing is highly beneficial.
  • Familiarity with hardware interfacing techniques.
  • Significant Linux experience is an asset.
  • 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 and we simply focus on hiring the best talent. 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.