The Senior Engineer – Developer is responsible for designing, developing, testing, implementing, and maintaining software applications and systems to support the organization's business operations and digital transformation initiatives. This role involves developing scalable and reliable software solutions, integrating systems, troubleshooting technical issues, and ensuring code quality and application performance. The Senior Engineer – Developer will work closely with business stakeholders, system analysts, and cross-functional technical teams to translate business requirements into effective technical solutions.
Job Responsibilities
1. Software Development & Implementation
- Design, develop, test, and maintain software applications in accordance with business and technical requirements.
- Write clean, efficient, maintainable, and reusable code following established coding standards and best practices.
- Translate business requirements and technical specifications into functional software solutions.
- Develop new features, enhance existing applications, and support system upgrades and improvements.
- Participate in the full software development lifecycle, including requirement analysis, design, development, testing, deployment, and maintenance.
- Ensure software solutions are scalable, reliable, secure, and aligned with business objectives.
2. System Integration & Application Enhancement
- Develop and maintain system integrations, APIs, and interfaces between internal applications and third-party platforms.
- Ensure seamless data exchange and system interoperability across different business applications.
- Identify opportunities to improve application functionality, performance, and operational efficiency.
- Troubleshoot integration issues and resolve technical problems affecting system reliability.
- Collaborate with relevant teams to ensure system enhancements meet business and technical requirements.
- Support the implementation of new technologies and application solutions to facilitate digital transformation.
3. Testing, Debugging & Quality Assurance
- Conduct unit testing, integration testing, and other relevant testing activities to ensure software quality and reliability.
- Identify, investigate, and resolve software defects, bugs, and performance issues.
- Perform code reviews and provide constructive feedback to improve code quality and maintainability.
- Ensure developed solutions meet functional requirements, technical specifications, and established quality standards.
- Document test results, technical issues, and corrective actions.
- Work with QA teams and business users to support user acceptance testing and resolve identified issues before deployment.
4. Application Maintenance & Technical Support
- Maintain and support existing applications to ensure system availability, stability, and performance.
- Investigate and resolve application incidents, production issues, and recurring technical problems.
- Perform root cause analysis and implement corrective and preventive measures to minimise recurring issues.
- Monitor application performance and identify opportunities for optimisation.
- Support application releases, system upgrades, bug fixes, and deployment activities.
- Maintain technical documentation, including system configurations, application specifications, integration details, and troubleshooting procedures.
5. Technical Collaboration & Project Delivery
- Work closely with business stakeholders, system analysts, project managers, and other technical teams to understand requirements and deliver appropriate solutions.
- Participate in technical discussions, solution design reviews, and project planning activities.
- Provide technical guidance and support to junior developers where required.
- Collaborate with infrastructure, security, and operations teams to ensure applications are deployed and operated effectively.
- Ensure development activities comply with established software development standards, security requirements, and project timelines.
- Provide regular updates on development progress, technical challenges, and delivery risks.
6. Continuous Improvement & Best Practices
- Stay updated on emerging technologies, development frameworks, programming languages, and software engineering practices.
- Identify opportunities to improve development processes, application architecture, code quality, and system performance.
- Apply appropriate security practices throughout the software development lifecycle.
- Support the implementation of version control, automated testing, CI/CD pipelines, and development tools where applicable.
- Contribute to technical knowledge sharing, documentation, and continuous improvement initiatives.
- Recommend technical solutions that improve application scalability, maintainability, reliability, and cost efficiency.
Job Requirements
- Bachelor's Degree in Computer Science, Software Engineering, Information Technology, or a related field.
- Minimum 5 years of experience in software development, application engineering, or a related technical role.
- Strong programming skills in one or more relevant programming languages and development frameworks.
- Experience in developing, testing, deploying, and maintaining software applications.
- Good understanding of software development lifecycle methodologies, coding standards, and software engineering best practices.
- Experience developing and integrating APIs, web services, and enterprise applications.
- Familiarity with relational databases, SQL, data structures, and database optimisation.
- Experience with version control systems such as Git and collaborative development workflows.
- Understanding of software testing, debugging, code reviews, and application performance optimisation.
- Familiarity with application security principles, secure coding practices, and common software vulnerabilities.
- Experience with cloud platforms, containerisation, CI/CD pipelines, or DevOps practices is an advantage.
- Strong analytical, troubleshooting, and problem-solving skills.
- Good communication and collaboration skills, with the ability to work effectively with technical and non-technical stakeholders.
- Ability to manage multiple development tasks and deliver quality solutions within agreed timelines.
- Experience mentoring junior developers or providing technical guidance is an advantage.