Paga is a licensed financial services company and a leading payments company in Nigeria with a massive transformative purpose - to make it simple for one billion people to access and use money. It was founded on the simple belief that the ubiquity of mobile phones can be leveraged in building an ecosystem that enables people to digitally send and receive money and creating simple financial access for everyone.
We are recruiting to fill the position below:
Job Title: Software Engineer (Front-End)
Location: Yaba, Lagos
Work type: (Hybrid)
Department: Product Development
Reports to: Software Team Lead
Responsibilities
As a Software Engineer at Paga, you will take on responsibility for implementing high-quality functionality for well-defined functional or technical areas of the platform.
You will work within an agile functionally-aligned team across a broad range of technical platforms and frameworks.
You will participate in the full range of product development and product-maintenance activities including design, support, code review and training and be expected to engage consistently with other stakeholders across the organization within the functional areas that your work affects.
Knowledge and Skill Requirements
Candidates should possess a Degree in a related discipline
1 to 6 years of continuous experience working on software application development OR an advanced degree in a related discipline and at least 1+ years of continuous experience working on software application development
Experience working with team development tools and organization structures.
Technical Expectations:
Code Sophistication – Understands software, from core functional and object-oriented programming logic concepts up to fairly complex code constructs and applies them in their work. Can apply well-known and standard code routines and algorithms. Understands fairly complex code constructs, design patterns and frameworks and applies. May have depth of usage knowledge in one or two specific frameworks. May be able to understand and apply complex logical algorithms in their work
Code Performance and Optimization - Is aware of significant code performance "smells" and avoids them independently. May be adept at considering performance in their implementation and leverage well known patterns and tools to maintain performant code. Is capable of considering other optimizations such as memory and usability in their implementations.
Abstraction Knowledge – Understand basic code abstraction concepts (eg. separation of concerns, direction of dependence, working through interfaces, modularity, etc.) for the frameworks that they are familiar with and apply them through work with varying levels of guidance. Is able to translate real-world concepts for their specific area/domain of work into efficient software models/structures.
Technical Independence - Can execute well-defined technical tasks with little-to-no oversight and broadly defined technical tasks with oversight. Has a well-developed sense of when to seek assistance in design and implementation. Can debug and fix existing code proficiently. Follows prescribed security standards effectively
Code Testing (Manual, Auto, Unit) - Consistently produces high quality tests for own work products that support the continuous deployment cycle. Is able to perform manual testing for broad features following specifications and knowledge of intended functionality. Is able to write effective unit and automated tests for own work products
Bug Free Code - Produces bug-free code at a reasonable pace. Doesn't require much time or back-and-forth with testing to produce error-free code.
Debugging Efficiency - Is able to effectively debug own code and that of others at a fast pace and leverages thoughtful debugging tools and constructs to increase efficiency.
Code Review Quality - Effectively reviews code within their specific areas of knowledge and contributes to the code-review cycle meaningfully.
IDE/Tool Usage & Routine Automation - Can use IDE proficiently. Considers effective use of tools to maximize development efficiency. Considers and occasionally contributes mechanisms to improve the development practice, including automation and process improvements.
Process Adherence & Development - Follows defined development processes with little or no oversight. Works well in an iterative, agile development environment and adheres to processes effectively.
Aesthetic Design - Can follow broadly defined visual designs well without compromising aesthetic detail.