Software Developer – Machine Learning

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.

To find out more information about us, and to view our other open positions please visit www.ppo.ca/careers.

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.
  • Design systems involving multiple image sensors and spectrometers, with software for image processing, data analysis and categorization, and communication of results locally and to the cloud.
  • Create and adapt Python-based machine-learning and chemometric algorithms for data 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 tasks and duties 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, with a focus on artificial intelligence, neural networks, and machine-learning techniques and tools.
  • College diploma or university degree in engineering, mathematics, science or another applicable field.
  •  Solid experience with software development processes and tooling.
  • Strong background in mathematics & statistics as applied to data analysis, signal processing, or chemometrics.
  • Ability to architect, implement, and prove out effective AI-based solutions for complex soft-real time data processing problems.
  • Industrial experience with Python.
  • 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 in imaging processing is highly beneficial.
  • Significant Linux experience is an asset.
  • Comfortable with both low-level embedded software and higher-level, whole-system abstractions.
  • Familiarity with C/C++ and hardware interfacing techniques.
  •  Experience with automation using microcontrollers and/or PLCs.
  •  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.