Senior Software Engineer
Job Summary
The candidate will develop a high-quality reusable software component, for business to business integration, using international best practices and new best-in-class technologies, concepts, and philosophy and also design, code, test, analyse and manage software programs and applications that drive the company's strategy.
- Minimum Qualification: Degree
- Experience Level: Mid level
- Experience Length: 5 years
Job Description/Requirements
Strategy & Planning
• Works with other software developers, the software architect and designers in conceptualising and developing new software programs and applications
• Plans own work in phases of the software development life cycle (SDLC) for a variety of projects
• Assists in the preparation and documentation of software requirements and specifications
• Performs research on the requirements of software users and documents findings to serve
• Works closely with the Team Leader, Business Analyst and Product Owner for understanding the functional and system requirements
Acquisition & Deployment
• Conducts research on emerging application development software products, languages, and standards in support of procurement and development efforts
• Recommends, schedule, and performs software improvements and upgrades
Operational Management
• Consistently writes, translate, and code software programs and applications according to specifications and PCIDSS standards
• Integrate software components into a fully functional software application.
• Write and execute unit tests for developed software applications.
• Perform peer to peer code reviews.
• Participate and contribute to software architectural design sessions.
• Maintain and implement source control & version management.
• Create technical documentation for all software applications.
• Deploy all developed application to the development environment for QA and Testing.
• Guide & follow through on developed software applications to ensure successful UAT and subsequent shipment.
• Works closely with the QA team to ensure quality and timely software development within his/her responsibilities
• Runs and monitors software performance tests on new and existing programs for the purposes of correcting errors, isolating areas for improvement, and general debugging
• Administers critical analysis of test results and delivers solutions to problem areas
• Generates statistics and prepare and write reports for management and/or team members on the status of the programming process
• Monitor & manage project lifecycle on popular work management tool.
• Updates tasks on work management tool
• Ensures robust and sustainable enterprise social collaboration architecture for software development by monitoring matrices of the SOA, and fixing complaints/bugs logged by customers
• Assists in the development and maintenance of user manuals and guidelines for ease of use by the client/customers
• Installs software products for end users as required
• Creates and manages Application Programming Interface (API)
• Writes programming scripts to enhance functionality and/or appearance of company Web site and/or related Web applications as necessary
• Removes code script from company Web site and/or related Web applications as necessary
• Liaises with network administrators, systems analysts, and software engineers to assist in resolving problems with software products or company software systems
Key Performance Indicators/ Performance Goals:
• Expert level in Java Programming using Java 8 and above
• Understand how to develop Enterprise Solutions
• Understanding of Microservices Architecture
• Hands-on experience using Spring Boot Framework
• Hands-On experience using Ci/CD
• Hands-on experience with building cloud solutions
• Experience using ISO 8583
• Experience using ISO 20022
• Experience in development of Payment Solutions
• Understanding of Domain-Driven Architecture
• Should be able to guide and Mentor Junior Developers
• Hands-on experience with BDD Testing Framework
• Hands-on experience with Junit, Mockito, Hamcrest and AssertJ
EXPERIENCE AND QUALIFICATION
- Minimum of bachelor’s degree / HND in Computer/System/ Electrical/ Electronic Engineering/ Applied physics/ Computer Science or a related discipline
- Minimum of 5 years’ experience using Java and related technologies.