Software Development Engineer (Image Processing)

VIAVI Solutions

Ottawa, CAonsite

Skills

pythonnumpyscipyc++jira

About the role

Summary: VIAVI (NASDAQ: VIAV) is a global provider of network test, monitoring and assurance solutions for telecommunications, cloud, enterprises, first responders, military, aerospace, and railway. VIAVI is also a leader in light management technologies for 3D sensing, anti-counterfeiting, consumer electronics, industrial, automotive, government and aerospace applications.

We are the people behind the products that help keep the world connected at home, school, work, at play, and everywhere in between. VIAVI employees are passionate about supporting customer success and we welcome people who bring their best every day to the company – to question, to collaborate and to push for solutions that will delight our customers.

Title: Digital Imaging Software Engineer

Position Overview: Our team develops optical test and measurement equipment for telecommunications laboratory and manufacturing environments. We are seeking a Digital Image Software Engineer to support the development and implementation of image processing algorithms and software applications for digital microscopy and related imaging systems. This role is well-suited for an engineer with a solid foundation in C++ and Python, hands-on experience with image processing or machine vision, and an interest in working on real-world electro optical instrumentation products. The position emphasizes software implementation, testing, debugging, and maintenance, while providing opportunities to grow into more advanced algorithm development and system-level responsibilities.

Duties & Responsibilities:

Key Responsibilities:

Implement, test, debug, and maintain image processing algorithms and software applications

Support the development of imaging and machine vision features

Contribute to software development in C++ and Python on Windows and Linux platforms

Assist with system integration, testing, and verification of imaging and optical subsystems

Participate in prototyping and evaluation of imaging solutions for new and existing products

Collaborate with cross-functional team members throughout the product lifecycle

Help prepare technical documentation such as design notes, test reports, and user documentation

Participate as a team member in an Agile/Scrum development environment

Follow established coding standards, version control practices, and development processes

Required Qualifications:

Bachelor’s degree in Computer Science, Computer/Systems Engineering, Mathematics, or a related field

3+ years of professional software development experience, primarily in C/C++

1–3 years of experience working with image processing, computer vision, or machine vision applications, including academic, internship, or industry experience

Pre-Requisites / Skills / Experience Requirements:

Required Skills and Capabilities:

Fundamental knowledge of image processing concepts (e.g., filtering, segmentation, feature extraction)

Experience programming in C/C++; working knowledge of Python

Familiarity with common image processing and numerical libraries such as OpenCV, NumPy, SciPy, scikit-image, or PIL

Experience developing or debugging software on Windows; exposure to Linux environments preferred

Comfortable using IDEs and build systems (e.g., Visual Studio, CMake, GCC/MSVC)

Strong problem-solving skills and attention to detail

Clear written and verbal communication skills

Ability to work effectively in a collaborative engineering team

Preferred Qualifications:

Exposure to digital microscopy, optics, or scientific/industrial imaging systems

Introductory experience with machine learning techniques applied to image analysis

Familiarity with Embedded Linux or ARM-based systems

Experience using version control and issue tracking tools (e.g., Git, Jira)

Previous experience working on a team using Agile or Scrum methodologies

What This Role Offers:

Hands-on experience developing production software for advanced imaging instrumentation

Mentorship and technical guidance from experienced software and systems engineers

Opportunities to grow into advanced image processing, algorithm design, and system-level development

Involvement across the product lifecycle, from prototype to production

If you have what it takes to push boundaries and seize opportunities, apply to join our team today.

Job Posting Pay Range: 84,000 to 156,000

Exceptional qualifications, experience and location may impact salary. VIAVI offers a competitive benefits package that includes paid time off, health, life and disability insurance, 401(k), and a bonus program.

Questions about this role

Click "Apply with AI Applyd" above and you are done. Your resume is rewritten for this advert, the screening questions are answered, and it is submitted on VIAVI Solutions's own hiring system. No retyping your history, no fourteen tabs, no evening lost.

Compensation for Software Engineer roles in Canada varies widely by seniority, employer size, and remote vs onsite arrangement. Check the salary range on this listing when published, or browse our Software Engineer hub for Canada medians across recent openings.

You never touch the form - the application is filled and submitted for you on VIAVI Solutions's own hiring system. It is not marked sent when we press submit. It is marked sent when a confirmation from their system arrives at the address we apply with, and your dashboard shows which stage each application is at until then.

Twelve applicant tracking systems have a real apply path: Workday, Greenhouse, Lever, Ashby, Workable, iCIMS, Personio, Recruitee, Teamtailor, Rippling, Breezy and SmartRecruiters. Your application goes in on the employer's own hiring system, never into an aggregator queue.

Want AI Applyd to auto-apply to roles like this?

We tailor your resume per posting, fill the forms, and track replies for you.