Degree in Electrical / Electronics / Computer Engineering / Computer Science or a relevant discipline.
Developed software in at least one full Software Development Lifecycle.
Experience in writing Requirements Specification, Use Cases, Design Documentation, and designing software using object[1]oriented software design and UML modelling
Good knowledge and experience in C++ on Embedded platforms (e.g. QNX, Vxworks, Embedded Linux).
Experience in multi-threading, socket programming and serial/USB communication.
At least 5 years experience in object-oriented software development.
Experience in container development with docker in IoT devices.
Prior experience in following areas Scrum AGILE methodology process is a plus: o Scrum AGILE methodology process o Develop and integrate embedded devices with cloud platforms o Develop and integrate vehicle side Information Technology for Public Transport (ITxPT) services, like GNSS and AVMS services. Strong analytical and problem-solving skills
Good written and verbal communication skills
Self-motivated, independent and a good team player
Responsibilities:
Working in a team to design and develop a real-time, reliable and secured e-payment devices that processes millions of public transport commuters cards daily. The activities required to be performed shall include the following:
Requirements gathering.
Design and develop software applications for embedded devices.
Implement and optimize communication protocols (e.g.TCP/IP, HTTPS, FTPS/SFTP, MQTT-S) to establish secure and reliable connections between embedded devices and on-premises/cloud platforms.
Conduct thorough testing, debugging and troubleshooting of embedded devices to identify and resolve issues related to functionality, connectivity, performance and reliability.
Preparation and submission of deliverables throughout the Software Development Lifecycles (SDLC) such as Business Rules, Software Requirement Specifications, Software Architecture Document, Design Specification, Interface Specifications, Source Codes, Testing Specification, Operation and Maintenance Manual, Training Manual and others documents as required in the SDLC processes.
Assist day-to-day application support issues.
Liaise with users on the requirement testing and production issues