Job Description
<div style="text-align: justify;"><span style="letter-spacing: 0.4px;">Reporting to the Unit Head, the Software Development Senior Professional will be responsible for designing, developing and maintaining high-quality, innovative software solutions that meet business requirements. This role requires strong technical expertise, problem-solving skills, and the ability to collaborate effectively with cross-functional teams to deliver high-quality products.</span></div>
Key and Critical Responsibilities
<div style="text-align: justify; "><b>1. Software Development:</b></div><ul><li style="text-align: justify; ">Designs, develop, and modify software applications using appropriate programming languages and technologies.</li><li style="text-align: justify; ">Collaborates with product managers, business analysts, and other stakeholders to gather and analyze requirements.</li><li style="text-align: justify; ">Writes clean, efficient, and maintainable codes that follows best practices and coding standards.&nbsp;</li><li style="text-align: justify; ">Being familiar with design patterns, common architectural principles and other approaches to writing robust, lean, performant code.</li><li style="text-align: justify; ">Conducts code reviews to ensure code quality, performance, and adherence to architectural guidelines.</li><li style="text-align: justify; ">Utilizes TDD and automated testing when building software.&nbsp;</li><li style="text-align: justify; ">Be experienced with modern testing frameworks and practices, such as unit testing, integration testing, end-to-end testing and front-end testing.</li></ul><div style="text-align: justify; "><b>2. Technical Expertise:</b></div><ul><li style="text-align: justify; ">Staying up-to-date with emerging technologies, programming languages, and frameworks relevant to the organisation's software development stack.</li><li style="text-align: justify; ">Demonstrates experience with AI-driven techniques for software development.</li><li style="text-align: justify; ">Applies industry best practices and software engineering principles to develop scalable and robust software solutions.</li><li style="text-align: justify; ">Identifies and recommends improvements to existing software applications and systems.</li></ul><div style="text-align: justify; "><b>3. Collaboration and Communication:</b></div><ul><li style="text-align: justify; ">Collaborates with cross-functional teams, including product management, design engineering, and quality assurance, to ensure the successful delivery of software projects.</li><li style="text-align: justify; ">Communicates effectively with team members and stakeholders to understand requirements, provide updates, and address technical challenges.</li><li style="text-align: justify; ">Participates in agile development processes, including sprint planning, daily stand-ups, and retrospectives.</li></ul><div style="text-align: justify; "><b>4. Troubleshooting and Problem Solving:</b></div><ul><li style="text-align: justify; ">Debug and resolve software defects and issues, ensuring the stability and performance of software applications.</li><li style="text-align: justify; ">Identifies root causes of problems and implement effective solutions to address them.</li><li style="text-align: justify; ">Conducts thorough testing and quality assurance activities to ensure the reliability of software applications.</li></ul><div style="text-align: justify; "><b>5. Documentation and Knowledge Sharing:</b></div><ul><li style="text-align: justify; ">Creates and maintains technical documentation, including design specifications, user guides, and test cases.</li><li style="text-align: justify; ">Shares knowledge and expertise with team members, contributing to the continuous learning and growth of the software development team.</li></ul>
Key Competencies
<div style="text-align: justify; "><b>Knowledge &amp; Experience:&nbsp;</b></div><ul><li style="text-align: justify; ">At least 5 to 7 years experience in software development, with a focus on designing and developing software applications.</li><li style="text-align: justify; ">Strong proficiency in programming languages and technologies relevant to the organisation's software development stack.</li><li style="text-align: justify; ">Solid understanding of software development methodologies, best practices, and quality assurance processes.</li><li style="text-align: justify; ">Excellent problem-solving and analytical skills, with the ability to debug and resolve software defects.</li><li style="text-align: justify; ">Effective communication and collaboration skills, with the ability to work effectively in a team environment.</li><li style="text-align: justify; ">Attention to detail and a commitment to delivering high-quality software solutions.</li><li style="text-align: justify; ">Knowledge of agile development processes, such as Scrum or Kanban.</li><li style="text-align: justify; ">Familiarity with version control systems and collaborative development tools.</li><li style="text-align: justify; ">Understands web technologies, architectures and API integrations.</li><li style="text-align: justify; ">Continuous learning mind-set and a passion for keeping up with industry trends and advancements.</li></ul><div style="text-align: justify; "><br></div><div style="text-align: justify; "><b>Education/Accomplishments:&nbsp;</b></div><ul><li style="text-align: justify; ">Bachelors Degree in Computer Science, Software Engineering, or a related field.</li><li style="text-align: justify; ">Proficiency in programming languages and tools such as: Python, .NET, PHP (Laravel), MSSQL, Postgre, Mongo DB, JavaScript (Node.js) and (React.js), Docker, Kubernetes and Kotlin.</li><li style="text-align: justify; ">Proficiency in code and configuration management using Git.&nbsp;</li></ul>