Software Developer – Machine Learning

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.

Primary Responsibilities 
  • Develop software for complex, multi- instrument, 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/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).
About You

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.

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.
  • 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. 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.