Senior Software Development Engineer
Job description
Our client is seeking a Senior Software Development Engineer with 5+ years of experience.
POSITION INFO:
Job Information Summary
Education Requirements:
- Grade 12 - Mandatory
- BSc in Electrical / Electronic / Mechatronic Engineering or BEng in Computer / Biomedical / Electronic or equivalent.
- Other advantages:
- Registration with a professional society.
Experience & Skills Requirements:
- Minimum of 5 years’ experience in programming languages such as C++, C, C#, Visual Studio, and Arduino IDE.
- Experience in software development, implementation, and maintenance of 2 or more projects / products.
- Minimum 2 years’ experience in system and architecture design.
- Experience in software and hardware integration and testing.
- Experience in software & firmware development and integration into hardware.
- Proficiency with software configuration management tools, defect tracking tools, and code reviews.
- Familiarity with adhering to a Quality Management System (QMS), especially for Devices certification.
- Experience with source control systems (e.g., Git).
- Experience in software documentation as part of the Software Development Life Cycle (SDLC).
- Experience in managing a team of developers.
- Beneficial:
- Advanced computer literacy, including MS Project.
- Experience with Step 7 Scada.
Knowledge & Abilities:
- Proficient in C++.
- Knowledge of the Software Development Life Cycle (SDLC).
- Familiarity with documentation (specifications and quality management system).
- Experience with unit testing, performance analysis, resource loading, and end-to-end integration tests.
- Exposure to API integration.
- Advantages:
- Knowledge of medical devices and regulatory compliance.
- Understanding of wireless communications.
Job Purpose:
- Design, develop, and maintain software and hardware applications, software systems, and architectures.
- Manage or co-manage the software department, including resource management.
Key Result Areas:
- Design & Develop Software / Hardware Applications:
- Create specification documents and project plans.
- Generate functional, architectural, and interface documents.
- Develop software applications.
- Perform regular testing and reviews with the project team and/or end users.
- Produce Acceptance Test Instructions (ATI) and Acceptance Test Results (ATR).
- Ensure proper validation of issued software to production.
- Deliver outputs on time.
- Design & Develop Software / Hardware System Architectures:
- Analyze needs and propose system architectures.
- Initiate development of specific applications.
- Deliver outputs on time.
- Lead efforts in new software development, particularly in image processing and visualization.
- Act as a mentor and expert in new technology areas.
- Software and Hardware Maintenance and Support:
- Maintain existing software/hardware by fixing bugs and updating documentation.
- Support production and service personnel as required.
- Adhere to change processes.
- Compliance & Regulatory Related:
- Log all new and updated software applications/modules to VCS/GitHub.
- Oversee general PC hardware and software needs of the development department.
- Ensure adherence to company policies like OHS.
- Perform tasks such as electronic firmware hardware C&I as required.
- Adhere to processes required to maintain certification and create new processes if needed.
- Provide inputs to technical files and ensure compliance with development processes.
- Lead and manage development tasks and projects.
- Mentor team members to ensure tasks and projects are completed timely and with high quality.
- Participate in the development and implementation of team Individual Development Plans (IDPs).
- Conduct performance appraisals and monitor KPIs.
- Provide 360° feedback and score direct reports and manager on a 5-point scale.