Job Description
MAJOR DUTIES :
As key contributor within the innovation group, you will be working on software development projects that are technically innovative solutions for image processing, machine vision, data collection, analysis, control and reporting solutions.
Duties involve creating and evolving a world class machine vision software development environment, providing design direction, code reviews for software developers, technical development of the software team, manage the creation, supporting customers and maintenance of on-boarding material for new developers.
The candidate will work closely with the project managers, product owners, UI UX developers, testers, control systems integrators and end users to develop a strong product.
In this role you will work individually and as part of a team.
SPECIFIC RESPONSIBILITIES :
General Experience
- Experience at developing clean code that is efficient, elegant, robust and maintainable.
- Ability to take a systematic approach to root cause customer problems and deliver innovative software that solves them
- Team player able to contribute in agile meetings, perform code reviews, brainstorm hard problems and step in and contribute when a challenge needs all hands-on deck
- Seeks to be involved in complex software development technical challenges and demonstrate leadership to mentor management, customers, and peers.
- Assist the project team to identify critical path and dependencies between project activities.
- You are passionate about continually evolving whenever it presents an opportunity to become more efficient.
Software Development
- Perform software development as part of a team including gathering user requirements, software design, programming, testing, and release.
- Contribute to major software release plans that align with the technology roadmap.
- Collaborate with mechatronics designers, hardware designers and operations personnel to define and understand the problems and User Requirements Spec documents.
- Develop and execute tests to verify behavior and performance with a good understanding of Test Driven Development.
- Assist with the generation of software related product documentation.
- Developing awareness of software technologies, established coding principles and all Software Developer competencies
- Developing awareness and interest in application of 2D and 3D image processing and ML / AI in the industrial space
- Contribute to weekly agile meetings reviewing last week’s progress and plan upcoming work.
- Seeks mentorship from other developers, and offers mentorship / suggestions to help team improve
- Observe reviews of concepts, code and team designs and provide constructive feedback
- Contribute to software design standards and overall software quality
- Contribute to the technology stack for assigned software products.
Additional Responsibilities as Software Developer Level II
- Demonstrates ownership through concept, design, coding, testing and tier 3 support.
- General supervision, training, and guidance of all team members that are part of his / her team.
- You can influence and communicate solutions effectively internally and externally.
- You are showing the ability to own and deliver projects on time the meet requirements
- You have a clear understanding of the standard practices / processes within the department and demonstrate a constant improvement mindset.
- Consistently writes functions that are easily testable, easily understood by other developers, and accounts for edge cases and errors.
- Demonstrated understanding of SOLID principles for software development.
- Before beginning work, ensures that tasks are appropriately sized for continuous integration and incremental delivery with help from teammates and Team Lead.
- Understands the organization's engineering strategy.
- Usually handles risk, change, and uncertainty within their personal scope of work effectively.
QUALIFICATIONS : QUALIFICATIONS :
QUALIFICATIONS : Education :
Education :
A post-secondary engineering or computer science degree, diploma or equivalent with emphasis on software design and development.
Desired Experience :
- Coding, optimizing and accelerating image processing and computer vision algorithms
- C / C++, C#, VB.Net, XML, Powershell, Python, multithreaded programming and building Windows GUIs using Visual Studio tools
- Implementation of SIMD, Multicore, and / or GPU accelerations of image algorithms.
- Knowledge of both traditional industrial machine vision algorithms and machine learning based algorithms
- Ethernet network programming, ideally with industrial ethernet protocols (Ethernet / IP, Profinet and others)
- You have used image processing frameworks such as OpenCV, Matrox Imaging Library, Halcon and more.
- Diagnosing and resolving Windows OS performance, hardware, device driver and behavioral issues
- Familiarity with Linux, OS virtualization, and disk management / cloning
- Familiarity with IoT Enterprise versions of Windows, including building and mass deploying OS images.
- Deployment of Vision systems and Industrial PC’s in industrial environments
- Choosing and connecting cameras (area and line scan if possible), lights, optics, and related electronics
- Interfacing with GigEVision, USB, and other industrial cameras at the Genicam and API level.
- Debugging system level problems in vision systems
- Familiar with issue-tracking and revision-control systems.
- Ability to communicate effectively, both orally and in writing.
- Experience in using Agile development practices.
- Software development within a team of your peers
In addition, the following is considered not necessary but beneficial :
- Experience with real time controls and / or PLCs is an asset.
- SQL Database interfacing and programming
- Internal knowledge of image formats
- AIA CVP Advanced designation desirable
- Programming Language Compiler and Interpreter internals knowledge
- Join our Innovation Center at ATS Corporation - a place to create differentiators with the future in mind. Our Innovation Center is focused on R&D;
advancing existing technologies, filling gaps in existing automation products, technologies and processes to give ATS a competitive advantage