We are seeking a skilled and experienced Software Engineer (Devices) who will be responsible for the end-to-end development and support of sophisticated software for Windows and embedded platforms. The ideal candidate will be a proactive problem-solver who excels in a structured, full lifecycle development environment and is passionate about building robust, high-performance device software.
Key Responsibilities
- Full Lifecycle Ownership: Lead and participate in the complete software development lifecycle for device software, from requirements gathering and design through to deployment, maintenance, and support.
- Technical Design & Development: Design, develop, test, and maintain high-quality, object-oriented software in C++ for Windows and embedded environments (e.g., QNX, VxWorks, Linux).
- Documentation: Produce comprehensive technical documentation aligned with project standards, including Software Requirement Specifications (SRS), Design Specifications, Architecture Diagrams, and Operations Manuals.
- System Integration: Develop software components involving multi-threading, socket programming, and serial communication protocols to ensure seamless device interoperability.
- Stakeholder Collaboration: Liaise directly with users, stakeholders, and cross-functional teams to clarify requirements, resolve design challenges, and validate solutions.
- Application Support: Provide expert-level support for day-to-day application issues, ensuring high system availability and performance.
Qualifications & Requirements
- Bachelor’s degree in Electrical Engineering, Electronic Engineering, Computer Science, or a related field.
- Minimum of 5 years of professional experience in object-oriented software design and development.
- Demonstrated experience guiding projects through at least one full Software Development Lifecycle (SDLC).
- Experience in writing Requirements Specification, Use Cases, Design Documentation, object-oriented software design and UML modelling.
- Good knowledge and experience in C++ on Windows and/or Embedded (e.g., QNX, VxWorks, Linux etc.) platforms.
- Experience in multi-threading, socket programming and serial communication.
Key Competencies
- Good written and verbal communication skills in English.
- Self-motivated and a strong team player.
- Excellent analytical and problem-solving abilities.
- Experience with one or more of the following technologies will be an added advantage: HTML / CSS / JavaScript / | Three-tier software architecture | Database schema design and interfacing with ODBC, SQL query and MySQLiv.Virtualization Technologies (such as hypervisors) | MQ/MQTT | Secure Communications (e.g. FTPS, HTTPS, etc.).