Responsibilities:
- Implement and optimize multi-threaded applications, utilize socket programming for network communication, and manage serial communication protocols effectively
- Implement secure coding practices to mitigate potential vulnerabilities and ensure the integrity and confidentiality of software systems.
- Lead or participate in all phases of the Software Development Lifecycle (SDLC), from requirements gathering and analysis to design, implementation, testing, deployment, and maintenance.
- Produce comprehensive documentation including Requirements Specification, Use Cases, Design Documentation, and UML models to ensure clear understanding and maintainability of software systems.
- Utilize expertise in object-oriented programming to design, develop, and maintain high-quality software solutions.
Requirements:
- At least 5 years' relevant experience in object-oriented software development;
- Been through at least one full Software Development Lifecycle;
- Experience in multi-threading, socket programming and serial communication;
- Experience in writing Requirements Specification, Use Cases, Design Documentation, object-oriented software design and UML modelling;
- Familiar with secure coding;
- Good knowledge and experience in C++ on Windows and/or Embedded (e.g. QNX, Vxworks, Linux, Java etc) platforms;
- Good written and verbal communication skills in English; and Self-motivated and a good team player.
- Strong analytical and problem-solving skills;
Added advantage
- if candidate is familiar with one or more of the following technologies:
- Three-tier software architecture
- Virtualization Technologies (such as hypervisors or containers)
- Secure Communications (e.g. FTPS, HTTPS, etc.)