Join ATS Corporation: Exciting Opportunity for a Software Developer Level II - Industrial Machine Vision
Job Description
Are you passionate about innovation in software development? ATS Corporation is looking for a Software Developer Level II to join our Innovation Center. As a key contributor, you will work on cutting-edge projects involving image processing, machine vision, data collection, and control solutions.
Major Duties
As a vital part of our innovation group, you will:
- Develop and evolve world-class machine vision software.
- Provide design direction and conduct code reviews for our software developers.
- Mentor and technically develop the software team.
- Support customers and create onboarding materials for new developers.
- Collaborate closely with project managers, product owners, UI/UX developers, testers, control systems integrators, and end-users.
- Work both individually and as part of a team.
Specific Responsibilities
General Experience
- Write clean, efficient, and maintainable code.
- Resolve customer problems with systematic and innovative solutions.
- Participate in agile meetings, code reviews, and brainstorming sessions.
- Lead and mentor management, customers, and peers through complex technical challenges.
- Assist the project team in identifying critical path and dependencies.
- Eager to evolve and improve processes for greater efficiency.
Software Development
- Engage in software development including requirements gathering, design, programming, testing, and release.
- Contribute to major software release plans aligned with the technology roadmap.
- Collaborate with mechatronics designers, hardware designers, and operations personnel.
- Develop and execute tests following Test Driven Development principles.
- Generate software-related product documentation.
- Stay informed about modern software technologies and coding principles.
- Show interest in 2D/3D image processing and ML/AI applications in industrial spaces.
- Participate in weekly agile meetings and offer mentorship to team members.
- Provide constructive feedback during code and design reviews.
- Contribute to the quality standards of our software design and technology stack.
Additional Responsibilities as Software Developer Level II
- Demonstrate ownership throughout the software development lifecycle.
- Provide supervision, training, and guidance to team members.
- Effectively communicate and implement solutions internally and externally.
- Consistently meet project deadlines and requirements.
- Promote and practice standard departmental processes with a mindset for constant improvement.
- Write functions that are testable, understandable, and account for edge cases.
- Understand and implement SOLID principles for software development.
- Ensure tasks are well-sized for continuous integration and incremental delivery.
- Manage risk, change, and uncertainty effectively within your scope of work.
Qualifications
Education:
- Post-secondary engineering or computer science degree, diploma, or equivalent with an emphasis on software design and development.
Desired Experience:
- Proficient in coding, optimizing, and accelerating image processing and computer vision algorithms.
- Expertise in C/C++, C#, VB.Net, XML, PowerShell, Python, and Visual Studio tools.
- Implementation experience with SIMD, Multicore, and/or GPU accelerations.
- Knowledge in traditional industrial machine vision and machine learning algorithms.
- Experience with ethernet network programming, industrial protocols, and image processing frameworks like OpenCV and Halcon.
- Strong problem-solving skills for Windows OS, hardware, and device driver issues.
- Familiarity with Linux, OS virtualization, and disk management.
- Experience in deploying vision systems in industrial environments.
- Hands-on experience with industrial cameras and interfacing protocols.
- Proficiency in using issue-tracking and revision-control systems.