Cambridge, ON, CA, N3H 4R7
Software Developer I
Overview
ATS’ Global Services team is a dynamic, change-leading team that drives the delivery of value-driven Services to our customers worldwide. Services is a growing component of the overall delivery of value to ATS’ customers globally and offers an opportunity for an opportunistic individual to create a well-defined offer structure of high-value service solutions to drive ongoing value.
As a Software Developer, you will develop world-class software data collection, analysis, and reporting solutions for sophisticated automation equipment. You will contribute to new, next-generation Machine Intelligence software. This is an exciting new venture, a start-up within a large organization:
WHY JOIN THE IMI TEAM AT ATS?
Team: Be part of a truly great team. You will work with a dedicated team of software developers, product owners, UI/UX developers, software testers, and end users to make great products!
Flexibility: The ATS IMI team is located in Cambridge, Ontario. As part of the team, you have the flexibility to work at home, in the office, or a combination of the two. No matter how you choose to work, you will always be part of the team.
Culture: ATS is a global leader. We offer the perfect synergy of experience, automation technology, and scale to advance factory automation solutions for the world’s leading manufacturers. The ATS Business Model drives our success, leading with people, process, and performance.
Growth: We take your development seriously. We work with you to set goals and we measure your development throughout your career at ATS.
WHAT YOU’LL GET TO WORK WITH
C# & .NET: Develop high-performance applications using the latest .NET technologies.
React.js: Create engaging user interfaces for a better user experience.
SQL Server: Manage essential OEE and Part Traceability data in manufacturing.
Azure DevOps: Contribute to the development and maintenance of CI/CD pipelines.
Docker: Enhance application deployment and consistency with containerization.
Azure: Implement and manage cloud-based and IoT solutions.
Industrial Automation Systems: Work hands-on with key systems like PLCs, HMIs, SCADA, MES, and ERP, driving technological advancements and shaping the future of manufacturing.
IIoT Protocols: Utilize MQTT, AMQP, and OPC UA for machine communication.
Responsibilities
- Stakeholder Interaction & Requirements Gathering: Collaborate closely with stakeholders to understand and document software requirements, ensuring a comprehensive grasp of their needs and expectations.
- Coding Excellence: Commit to writing and reviewing code that adheres to clean coding practices, SOLID principles, and Test-Driven Development, maintaining high standards of software quality.
- Teamwork and Technical Support: Proactively engage in teamwork across various departments, working with shop floor integrators, reliability engineers, and software testers. Offer and receive support to deploy, optimize, troubleshoot, and test software applications, ensuring smooth operation, effective user support, and continuous improvement.
- Communication and Collaboration: Actively participate in various initiatives to enhance team dynamics and knowledge sharing, including presenting demos, engaging in pair programming, brainstorming, problem-solving sessions, workshops, hackathons, and training.
- Professional Growth: Proactively pursue opportunities for skill enhancement and professional development, keeping abreast of new technologies and industry best practices.
- Ensure that all business activities are performed with the highest ethical standards and in compliance with the ATS Code of Business Conduct.
Qualifications
- A post-secondary engineering or computer science degree, diploma, or equivalent with emphasis on software design and development.
- 1 to 2 years of professional, hands on experience. This is a junior programmer role so it is not a role for more experienced developers.
- Programming Skills: Proficiency in C# and familiarity with the .NET platform. Basic understanding of front-end technologies like React.js.
- Foundational Knowledge: Basic understanding of software development principles, clean coding practices, and SOLID principles.
- Experience: Demonstrable experience in software development, which could include professional work, extensive personal projects, or significant academic projects.
- Problem-Solving Ability: Strong analytical and problem-solving skills with a willingness to tackle complex challenges.
- Communication Skills: Effective communication abilities, capable of articulating ideas clearly and working collaboratively in a team.
- Learning and Adaptability: Eagerness to learn and adapt to new technologies and methodologies, including Agile practices and Test-Driven Development (TDD).
- Database Knowledge: Knowledge of database systems, preferably SQL Server.
- Cloud Experience: Familiarity with cloud platforms, particularly Azure or Azure IoT Hub, is a significant asset.
- Cybersecurity Awareness: Awareness of cybersecurity best practices, including familiarity with OWASP guidelines. A keen understanding of the importance of securing applications, especially in an IIoT context, is valuable.
- Domain Knowledge: Understanding of automation, mechanical, electrical, and control systems is highly beneficial.