Chef(fe) d'équipe technique - Développement logiciel C#

Eaton

  • Brossard, QC
  • Permanent
  • Full-time
  • 1 month ago
As a Technical Team Leader in UDS Delivery Software Engineering team, you will be hands-on technical leader of a software and firmware development team. You will be part of an agile development team, building and working on utilities software systems. You will provide technical and team leadership through coaching and mentorship. You will design, develop, implement, and test software solutions that drive complex power system automation for electric utilities. Development focus is on layered architecture, componentized and reusable software components, robustness and reliability of the integrated systems, and interconnectivity with the various electric utility and enterprise systems. Management (40%) 1. Guide team development efforts towards successful project delivery. 2. Provide technical leadership to teammates through coaching and mentorship. 3. Support individual growth by leading objectives and development plans creation/update and regular follow up to achieve them; lead yearly performance assessment. 4. Maintain high standards of software quality within the team by establishing good practices and habits. 5. Identify and encourage areas for growth and improvement within the team. 6. Assess opportunities for application and process improvement and prepare documentation of rationale to share with team members and other affected parties. 7. Participate in peer-reviews of solution designs and related code. Use the findings to improve team and product performance. 8. Adhere to high-quality development principles while delivering solutions on-time and on-budget. 1. Develop software solutions in a C++ environment primarily using Visual Studio, STL, Win32 APIs, and other third-party libraries 2. Utilize experience with object-oriented design to implement best-practices, properly apply design patterns, and identify/mitigate risks 3. Own the core system quality attributes relating to product architecture, such as performance, security, availability, reliability, maintainability, etc. 4. Identify and develop fundamental, reusable core software solutions or utilities. 5. Collaborate with the product, engineering and business teams to understand the requirements that will form the core foundation for all the future products. Based on that, plan, design, develop, test, and maintain application. 6. Evaluate emerging technologies, third party libraries and software products/architectures to determine feasibility and desirability of incorporating their capabilities within the code base. Work with teammates in the migration of legacy applications to modern architectures. 7. Evaluate and approve design reviews and solution implementations. 8. Investigate customer support issues and propose solutions. 9. Design, develop, and unit test the produced software in accordance with established standards. Bachelor's degree or higher in Computer Science, Software Engineering, Electrical Engineering or similar from an accredited institution. Understanding of typical software architectures, object-oriented programming, and best practices for software development. Experience with standard development tools and libraries preferred (Visual Studio, TFVC, vSphere). Ability to communicate with multiple groups including marketing, product management, and quality. Experience with source control management systems and continuous integration/deployment environments Experience with automated testing Experience with agile development Comprehensive understanding of object-oriented application development techniques and theories Internally motivated, able to work proficiently both independently and in a team environment Strong initiative to find ways to improve solutions, systems, and processes

Eaton