Software Engineer
The Software Engineer leads important projects and possesses capability to make breakthroughs in design, development, testing, debugging and implementing software applications or specialized utility programs in support of end users' needs on platforms. He/She plans and coordinates regular updates and recommends improvements to existing applications. He identifies and resolves issues which have organisztion wide and long-term impact. He identifies security risks, creates requirements to capture security issues, and performs initial threat modelling to ensure coding standards meets security requirements. He develops and maintains the software configuration management plan and oversees the building, verification and implementation of software releases. He provides guidance and technical support to the quality testing teams. He works in a team setting and is proficient in programming languages required by the organization. He is familiar with software development tools and standards, as well as the relevant software platforms on which the solution is deployed on. The Software Engineer is imaginative and creative in exploring a range of application designs and solutions. He is able to engage and support others in the team, readily put forth his ideas in a clear and compelling manner.
Skills and Competencies
Technical Skills & Competencies
Generic Skills & Competencies
Critical Work Functions and Key Tasks
• Validate user requirements and design specifications
• Translate user requirements into technical specifications
• Formulate software requirement specifications
• Recommend approaches that balance security, stability, and performance needs
• Provide technical guidance on proposed solutions and alternatives
• Design software components and modules
• Determine design alternatives and perform trade-off analysis
• Create multiple views of the software system and design high-level organisation of a software system
• Facilitate software design reviews
• Lead static analysis tasks to evaluate design quality
• Develop and use simulation and prototypes to evaluate software design quality
• Assist in the selection of processes, models, languages and tools for software construction
• Perform code re-factoring
• Review detailed designs and code to ensure quality requirements are met
• Establish project standards for designs and codes
• Leads code reviews and inspections
• Identify stakeholders participating in testing activities
• Design software test plan and criteria for regression testing
• Design the test environment and test case scenarios
• Specify test cases for the selected testing technique
• Analyse defect arrival rate and failure intensity data
• Identify security risks and create requirements to capture security issues
• Perform initial threat modelling
• Model threats and associated risks of new and modified systems
• Identify the attack surface of new and modified systems
• Establish project coding standards to avoid security vulnerabilities
• Review and approve coding standards to avoid security vulnerabilities