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.
Duties & Responsibilities:
Position Detail
Our team develops optical test and measurement equipment for telecommunications lab and manufacturing use. We are hiring a full-stack software and systems engineer to own the software for our industrial microscopy inspection appliance and its companion PC application, from microcontroller firmware to the Windows user application.
You will write the low-level embedded interfaces for motion, illumination and sensing on Atmel microcontrollers, build the USB video pipeline, develop the image analysis algorithms that judge inspection results, and deliver the Windows GUI and REST API that operators and factory automation systems use every day. The ideal candidate has supported a product through its full life cycle: concept, research, development and new product introduction.
Role / Responsibilities
Designs, develops, troubleshoots and debugs software programs for enhancements and new products.
Develops software and tools in support of design, infrastructure and technology platforms, including operating systems, compilers, routers, networks, utilities, databases, cloud-based and Internet-related tools.
Determines hardware compatibility and/or influences hardware design.
Participate in the new product development team to specify, model, simulate, test and verify imaging and optical inspection systems and products
Contribute to system architecture and software requirements across firmware, PC software and the appliance
Develop embedded firmware on Atmel (AVR/SAM), arduino microcontrollers, plus serial/USB communication with the host PC
Build and optimize the USB video (UVC/DirectShow/Media Foundation) acquisition and processing pipeline for live and captured microscope images
Design, implement and validate image analysis algorithms for automated inspection, measurement and pass/fail grading
Develop the Windows GUI application in C++/C#/.NET/Qt with live video, results display, configuration and reporting
Design and maintain a REST API for integration with factory automation, test stations and data systems
Develop, test, debug and maintain software in C/C++/C3 and .NET under Windows (Linux a plus)
Collaborate through the full product lifecycle: requirements, prototyping, system integration, production support and customer feedback
Prepare technical documentation such as user manuals, interface specifications and test procedures
Work as part of an Agile software team and contribute to continuous department improvement
Required Qualifications
Bachelor’s or Master’s degree in Computer Science, Computer/Electrical/Systems Engineering, Mathematics or a related field
5+ years of professional software development experience in C/C++/C#
industry experience in imaging, machine vision or inspection applications
Demonstrated experience delivering products that span embedded firmware and a PC application
Required Capabilities
Strong C/C++C# skills, including embedded C on resource-constrained microcontrollers (Atmel/Microchip AVR or SAM) and low-level peripheral interfacing (UART, SPI, I2C, ADC, timers, USB)
USB video experience: UVC cameras, DirectShow or Media Foundation, frame capture, buffering and real-time display
REST API design and implementation, including JSON, HTTP services and…