J

Principal Software Engineer

Johnson Controls
Full-time
On-site
Canada
Tech & Engineering

What you will do 
Join our team as a Principal Software Engineer and define and implement the strategy for BAS controls products. Help in strategically defining the projects that deliver the next generation of building control products enabling our customers to manage their comfort, energy usage, and security within commercial building environments.

Additional responsibilities include:  

  • Proven ability to define architecture requirements and product roadmap and strategies 

  • In depth knowledge of BACnet protocols for BAS products 

  • Demonstrated understanding and experience with networking, and protocol technologies  

  • Knowledge of software development methodologies, technologies, and tools 

  • Experience in using industry standard processes throughout the software development lifecycle 

  • An appreciation for working with diverse multi-disciplined, globally-located project teams 

How you will do it 

  • You will be leading a team of professionals to complete activities that could include any aspect of the software engineering lifecycle; examples of which are described below.  

  • Proficient in requirements, architecture, implementation, testing, troubleshooting, and documenting software applications for large Building Automation Systems (BAS) 

  • Expertise in BAS BACnet protocols and standards 

  • Leading BAS BACnet release and PR compliance roadmap and strategies 

  • Well-versed in embedded Linux-based control systems and networking protocols via Ethernet and RS485 

  • Collaborate with other Architects, Developers, Project Managers, and Engineering Managers to coordinate efforts and define and leverage best practices 

  • Leading the direction of the organization with Linux-based Product containerization 

  • Conduct and participate in software design, code, and documentation reviews 

  • Work with stakeholders to define requirements and provide high and low-level estimations based on the requirements and technically focused proof of concepts (POC) 

  • Analyze, trouble-shoot, and provide code fixes for reported problems and change requests 

What you will need 
Required  

  • Bachelor's degree in Computer Engineering, Software Engineering, Computer Science or equivalent  

  • 7+ years experience in object-oriented software development in C/C++ 

  • 7+ years experience in BACnet protocol, standards and Building Automation system knowledge 

  • (Embedded) Linux OS and tools 

  • Demonstrated technical leadership to lead collaboratively within scrum team as well as team members across the world. 

  • Solid analytical, problem-solving, and troubleshooting skills 

  • Automated testing philosophies and tools 

  • Multithreaded concepts for embedded, networked products 

  • Software build tools and processes (e.g. CMake, BitBake, Visual Studio Project, Jenkins) 

  • Software design languages, models, and diagrams (e.g. UML) 

  • Working knowledge of OSI Model with specifics in BACnet, Ethernet, RS485, Modbus 

  • Configuration and artifact management tools (e.g. GitHub, Artifactory) 

  • Agile development methods 

Johnson Controls’ Canadian subsidiaries are committed to providing reasonable accommodation to applicants, candidates and employees with disabilities, in accordance with applicable human rights legislation, and in Ontario, in accordance with the Accessibility for Ontarians with Disabilities Act (“AODA”). When requested, accommodation will be provided throughout all stages of the recruitment and selection process. To request accommodation, please contact us. Any information you provide related to accommodation measures will be treated as confidential. A copy of Johnson Controls’ applicable AODA policies are available on our website at www.johnsoncontrols.com for your reference, and can be made available in accessible formats upon request.