There will be some travel to Canada that is required
ROLE SUMMARY
We are seeking a highly skilled and motivated Senior Software Engineer with expertise in C, C++, and Java programming languages, as well as experience with PLC (Programmable Logic Controller) and RTAC (Real-Time Automation Controller) systems. As a Senior Software Engineer, you will be responsible for designing, developing, and maintaining software solutions for our organization's automation systems. This is an excellent opportunity to work on cutting-edge technology and contribute to the advancement of our automation offerings. The ideal candidate will have a deep understanding of industrial automation systems, strong programming skills, and the ability to lead complex projects from conception to implementation.
ESSENTIAL JOB FUNCTION & RESPONSIBILITIES
- Regular attendance, by the company's attendance policy and supervisory assignment, is an essential job duty requirement for this position.
- Software Development:
- Design, develop, and implement software applications using C, C++, and Java programming languages.
- Collaborate with cross-functional teams to gather requirements and translate them into software designs.
- Write clean, efficient, and maintainable code following coding standards and best practices.
- Participate in code reviews and ensure adherence to best practices and coding standards.
- Develop and implement control algorithms, communication protocols, and user interfaces.
- PLC and RTAC Integration:
- Interface with PLC and RTAC systems to develop software modules that control, monitor, and optimize automation processes.
- Implement communication protocols and interfaces (e.g., Modbus, DNP3.0, Profibus, Ethernet/IP) for seamless integration with automation systems.
- Develop software solutions for data exchange and synchronization between automation systems and external devices or software interfaces.
- Testing and Debugging:
- Conduct thorough testing and debugging of software applications to ensure reliability and quality.
- Collaborate with the QA (Quality Assurance) team to ensure optimal performance, functionality, and user experience.
- Identify and resolve software-related issues promptly and efficiently. Troubleshoot and resolve software issues in a timely manner.
- Conduct system integration, testing, and validation to ensure seamless operation.
- Documentation and Reporting:
- Create, and maintain comprehensive technical documentation, including design specifications, user manuals, release notes, and technical guides.
- Provide regular reports and updates on software development progress to the project team and stakeholders.
- Maintain accurate and up-to-date documentation of software development activities.
- Continuous Learning and Innovation:
- Stay updated with the latest trends and advancements in software engineering, PLC, and RTAC systems.
- Continuously explore and propose innovative ideas to improve software functionality, efficiency, and performance.
- Provide technical guidance and mentorship to junior engineers and other team members.
- Stay updated with the latest industry trends and advancements in automation technology.
- Participate in code reviews and ensure adherence to best practices and coding standards.
- Lead and manage multiple projects, ensuring they are completed on time and within budget.
- Collaborate with cross-functional teams to define project requirements and specifications.
REQUIRED QUALIFICATIONS
- Education: Bachelor’s or master’s degree in computer science, electrical engineering, power systems, software engineering, or a related field.
- Years of Experience: 7+ years of experience
- Strong proficiency in C, C++, Python and Java programming languages.
- Experience in developing software solutions that integrate with PLC and RTAC systems.
- Familiarity with communication protocols and interfaces such as Modbus, DNP, OPC UA/DA, Profibus, or Ethernet/IP.
- Solid understanding of software development principles, methodologies, and best practices.
- Strong analytical and problem-solving skills.
- Experience with SCADA systems and HMI development.
- Experience with software testing, debugging, and maintenance.
- Knowledge of version control systems (e.g., GitHub) and software development tools.
- Proficient in Jira, DevOps &?Agile project management tools.
- Excellent teamwork and communication skills to work collaboratively with cross-functional teams.
- Excellent problem-solving skills and attention to detail.
- Ability to manage multiple tasks and prioritize effectively.
- Proven track record of leading successful projects in an industrial automation setting.
- Experience with safety-critical systems and compliance with industry standards (e.g., IEC 61508, ISO 13849).
- Experience with cloud-based monitoring and control solutions.
- Knowledge of NERC CIP standards.
- Experience in PV, Wind & BESS EMS/SCADA product development.
Job Type: Contract
Experience:
- C++: 5 years (Required)
- SCADA: 1 year (Required)
- PROTOCOLS: 1 year (Required)
Work Location: On the road