Job description
JOB DESCRIPTION
As key leader within the innovation group, you will be leading a software development team that design and build technically innovative solutions for data collection, analysis, control and reporting solutions.
Duties involve creating and evolving a world class software development environment, providing design direction, code reviews for Software Developers, technical development of the software team, manage the creation 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 have a team that will report directly to you. And of course, you’ll be hands-on in the code and contribute technically.
Responsibilities
General Experience
• Skilled at developing clean code that is efficient, elegant, robust and maintainable.
• Strong understanding of SOLID principles for software development is an asset.
• Ability to get to root cause of 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
• Lead 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. These can be mechatronics products requiring real-time controls, configuration and diagnostic tools, simulation software and tight integration with robotic assembly lines.
• Contribute to major software release plans that align with the technology roadmap.
• Collaborate with mechatronics designers, hardware designers and operations personnel to ensure the complete solution meets performance, reliability, and cost requirements.
• Develop and execute tests to verify behavior and performance with a good understanding of TDD.
• Assist with the generation of software related product documentation.
• Perform specialized training for advanced users leveraging new software features.
• Strong awareness of software technologies, established coding principles and all Software Developer competencies
• Strong awareness and interest in application of ML/AI in the industrial space
• Lead and/or contribute to weekly agile meetings reviewing last week’s progress and plan upcoming
• Provide mentorship to other developers
• Perform reviews of concepts, code and team designs and provide constructive feedback
• Contribute to software design standards and overall software quality
• Maintain the technology stack for assigned software products.
• Acquired broad product knowledge to be able to collaborate directly with internal and external stakeholders to solve problems and use the products effectively
Additional Responsibilities as Staff Developer
• Ability to participate in internal or external stakeholder interactions related to software or mechatronics
• Provide support for hiring and onboarding developers
• General supervision, training, and guidance of all team members that are part of his/her team.
• Develop team member through one on one’s, performance review cycle and coaching
• Collaborate with Manager to set goals and manage successful performance for his/her team members.
• Responsible for the completion of performance reviews.
• These responsibilities should be 10-20% of time in this role
QUALIFICATIONS:
Education:
• A post-secondary engineering or computer science degree, diploma or equivalent with emphasis on software design and development.
Experience:
• Proven track record in end to end Software Development with, ability to mentor and lead team.
• Strong exposure and experience with cloud based development and deployment.
• Strong Software understanding in C#/C++, .NET
• Familiar with issue-tracking and revision-control systems.
• Ability to communicate effectively, both orally and in writing.
• Experience developing or improving Agile development practices
• Software development leading a team of direct reports
• Strong statistical analysis skills
• Ability to communicate effectively, both orally and in writing.
• 5+ years of experience with relational and non-relational databases
• 5+ years of experience with full stack web technologies
In addition, the following is considered not necessary but beneficial:
• Understanding of automation mechanical, electrical and control systems
• Experience with real time controls and/or PLCs is an asset.
• Understanding and experience with OPC and industrial networks