Software Engineer (Devices)
Responsibilities
Working in a team to design and develop a real-time, reliable and secured payment
devices that processes millions of public transport commuters’ cards daily.
3.1 The activities required to be performed shall include the following:
a) Requirements gathering;
b) Design, implementation and testing of the software for embedded devices
c) Implement and optimize communication protocols (e.g.TCP/IP, HTTPS, FTPS/SFTP) to establish secure and reliable connections between embedded devices and on-premises/cloud platforms.
d) Conduct thorough testing, debugging and troubleshooting of embedded devices to identify and resolve issues related to functionality, connectivity, performance and reliability.
e) Preparation and submission of deliverables throughout the Software Development Lifecycles (SDLC) such as Business Rules, Software
SPECIFICATION
Requirement Specifications, Software Architecture Document, Design Specification, Interface Specifications, Source Codes, Testing Specification, Operation and Maintenance Manual, Training Manual and other documents as required in the SDLC process.
f) Assist the Authority with day-to-day application support issues; and
g) Liaise with users on the requirement, design and production issues.
3.2 The qualifications required are as follows:
a) Recognised degree in Electrical / Electronic Engineering / Computer Science or a relevant discipline;
b) Been through at least one full Software Development Lifecycle;
c) Experience in writing Requirements Specification, Use Cases, Design Documentation, object-oriented software design and UML modelling;
d) Good knowledge and experience in C++ on Windows and/or Embedded (e.g. QNX, Vxworks, Linux, Java etc) platforms;
e) Experience in multi-threading, socket programming and serial communication;
f) Familiar with secure coding
g) At least 2 years' relevant experience in object-oriented software development;
h) Strong analytical and problem-solving skills;
i) Good written and verbal communication skills in English; and self-motivated and a good team player.
j) Added advantage if candidate is familiar with one or more of the following technologies:
i. Three-tier software architecture
ii. Virtualization Technologies (such as hypervisors or containers)
iii. Secure Communications (e.g. FTPS, HTTPS, etc.)