Job Title: Lead Software Developer
Type: Permanent (remote- occasionally have to go Niagara on the Lake office
Location: 342 Townline Rd, Niagara on the Lake, ON
This person will rarely have to go to the office. Rest of the time will work remotely.
Working days/hours: Monday to Friday 40 hours/week and flexible hours
Vacation: 3 weeks - 5 personal days and 10 sick days
Benefits: Comprehensive Medical and Dental Coverage with a Health Spending Account
• Deferred Profit-Sharing Plan (DPS)
• Group Retirement Savings Plan (RSP)
• Education Assistance Program/ Tuition Reimbursement
• Employee Purchase Program
• Employee & Family Assistance Program (EFAP)
• Employee Volunteer Program – Paid Time Off for Volunteer Days
For over 100 years, our client has been committed to enhancing the well-being of people, communities, and society. Their technologies and solutions have been developed with one aim in mind: to make live better – simpler, healthier, safer, more enjoyable, and more sustainable. Our client is a leading technology provider to businesses, government agencies and consumers across the region. The company leverages its strengths in Living Spaces, Immersive Entertainment, Sustainable Energy, Automated Supply Chains and Connected Solutions to provide lifestyle solutions to consumers as well as secure and resilient integrated solutions for B2B and B2G customers. We are proud to be recognized as one of Greater Toronto’s Top Employers for 2020, 2021 and 2022.
Lead Software Developer
Takes complete ownership of development across products.
Designs and develops high quality and secured desktop, web, mobile and cloud applications on various platforms.
Identifies and resolves bugs and issues on local and productions systems.
Develops Next-Gen product using cutting edge technologies, and updates existing systems and integrates improvements to the products that are already deployed in the market.
Keeps up to date with latest technologies, hardware and software applications, and company product and service offerings.
Writes clean, high-quality, and efficient code using relevant software under the direction of management.
Assists junior, intermediate and senior developers through transfer of knowledge and addressing questions.
Participates in the team resolution of issues, and communicates issues, solutions, and provides feedback and additional findings to the management team.
Provides regular and ad hoc updates, information, answers, and solutions to management proactively and on request. Gathers, analyzes, estimates, and processes requirements from various stakeholders.
Clearly defines requirements and problems for management review. Prepares detailed documentation and demonstrates proof of concept to confirm business requirements and functional specifications. Adheres to project plans, and deadlines. Provides guidance to team members. Contributes to goals and performance management. Conducts meetings. Implements direction received from management within the team.
Develops desktop, web, mobile and cloud applications using relevant software. Contributes to design and development of high quality and secured desktop, web, mobile and cloud applications on various platforms.
Takes end-to-end responsibility for the requirement gathering, estimation, planning, development, testing, debugging, bug fixing, documentation and production readiness of the products and services that are getting built.
Ensures software is up to date with latest technologies. Research market trends and align software options to technology development. Identifies and assesses new products, solutions, and services to improve efficiencies.
Stays educated on existing and state of the art technologies and does proof of concept to evaluate technology fits for customer needs. Follows high-quality and efficient software design, and clean and efficient coding practices. Solves critical technical problems, and communicates issues, and solutions to team members, and provides feedback and additional findings to the management team.
Makes sure that all the team members are following defined coding guidelines.
Interfaces with other groups or departments regarding external project requirements. Provides technical and functional guidance and support to team members.
Provides technical and functional performance feedback to management for development team members. Makes sure that all the team members are following set policies and processes.
Performs daily code reviews, Prioritization and assigning tasks to juniors. Conducts meetings and provides subject matter expertise. Oversees software development and releases.
Resolves escalations and communicates findings to members of the software and management teams. Provides feedback, performs research, prepares documentation, and answers queries/questions, from stakeholders and management. Communicates regularly with management.
Upgrades knowledge and skills in current and emerging technologies.
The Successful Candidate Will Have
Education: 3- or 4-year University or College degree in Computer Sciences.
Years of Experience: 7-8 years related application development experience, with a minimum of 1 year in a leadership role.
Mobile development, Cloud development, GitHub, Azure DevOps, Identity Server 4, IIS.
Desktop, Web, and Mobile application development experience.
Experience working on Point-of-sale systems would be an asset.
Nice to have experience in Object Oriented Design/Development, Object Oriented Analysis and Design (OOAD), SOLID Design Principles, Model View Control (MVC) design pattern, Model-View-View Model (MVVM) design Pattern, Team Foundation Server (TFS) and Test-Driven Development (TDD).
Knowledge of Configuring and version controlling with Team Foundation Server (TFS) and GIT
Strong problem-solving and analytical skills.
Excellent interpersonal and communication skills. Effectively communicate technical concepts and issues to non-technical stakeholders.