Job Requirements
Bachelor's degree in computer science, Electronics, Information Technology, or a related engineering discipline (or equivalent industry experience).
- 8+ years of hands-on experience in C++ software development.
- Good working knowledge of C# is desirable.
- Strong understanding and implementation experience with industrial communication protocols, including:
o DNP3 o SNMP o IEC 61850 o Modbus
- Hands-on experience implementing and supporting communication/file transfer protocols, including:
o FTP o FTPS o SFTP o TFTP o HTTP o ASCII o YMODEM o XMODEM
- Strong experience in ODBC driver implementation and database connectivity.
- Experience in protocol debugging, packet analysis, and troubleshooting communication issues using tools such as Wireshark, tcpdump, or other network protocol analysers.
- Ability to understand and configure devices using vendor-supplied instruction manuals and technical documentation.
- Strong analytical, debugging, and problem-solving skills.
- Excellent verbal and written communication skills with the ability to work effectively in cross-functional teams.
- Must have hands-on experience with Docker for containerizing, deploying, and managing applications.
- Understanding of DevOps practices, including CI/CD pipelines and container based deployment strategies.
Work Experience
Required Skills and Experience
Design, develop, and maintain software applications primarily using C++, with a strong focus on high-performance and reliable communication systems.
- Contribute to the implementation, enhancement, and maintenance of communication protocol stacks and device integration solutions.
- Analyze customer and system requirements, translate them into technical solutions, and participate in architecture, design, development, testing, and deployment activities.
- Develop and support communication interfaces for industrial devices and embedded systems.
- Implement, troubleshoot, and optimize industrial communication protocols and file transfer protocols to ensure seamless interoperability between devices and applications.
- Develop and maintain ODBC driver implementations and database connectivity components.
- Interpret vendor instruction manuals and technical documentation to configure, integrate, and validate third-party devices.
- Perform protocol analysis, debugging, and issue resolution across multiple communication interfaces.
- Collaborate with cross-functional teams, including product management, QA, and customers, to deliver high-quality software solutions.
- Participate in code reviews, technical discussions, and mentor junior engineers by sharing best practices and technical expertise.
- Ensure software quality through unit testing, integration testing, and automation wherever applicable.
- Contribute to continuous improvement initiatives by recommending enhancements to development processes, tools, and methodologies.
- Design and implement scalable, high-performance software solutions that support future enhancements and evolving business requirements.
- Ensure applications are developed with scalability, maintainability, and performance optimization as key design principles. Good to Have
- Experience with C# application development.
- Experience with automated testing, CI/CD pipelines, and software quality best practices. Exposure to industrial automation, SCADA, power systems, or embedded communication software is an added advantage