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 of:
Job Title: Senior Software Engineer
Location: Yaba, Lagos
Department: Product Development
Employment Type: Full-Time
Position: Senior Software Engineer
Reports to: Software Team Lead / Software Architect
- Our purpose at Paga is to make it simple for 1 billion people to access and use money. We do that by delivering innovative financial services to the mass market across large, underserved markets.
- We were founded on the simple belief that the growing ubiquity of the internet and mobile phones enables us to build an ecosystem that empowers everyone to digitally send and receive money and to use simple but meaningful financial services.
- At Paga we value above all else, Collaboration, Ownership, Results Orientation, Integrity and Innovation (CORII).
- As a Senior Software Engineer at Paga, you will take on ownership for the implementation and technical effectiveness of broad functional and/or technical areas of the platform. You will be expected to contribute meaningfully to the design and improvement of the solutions you work on. You will be expected to contribute to the development of the improvement of the software development practice as a whole through peer leadership, code review, technical training, process improvement and technical thought leadership.
Knowledge and Skill Requirements
- A Degree in a related discipline
- 6+ years of continuous experience working on enterprise software application development OR an advanced degree in a related discipline and at least 4+ years of continuous experience working on enterprise software application development
- Solid experience working with team development tools and organization structures.
- Ability to multitask very well
- Comfort and experience providing technical leadership in a software development team
- Code Sophistication – Understands a wide range complex code constructs, design patterns and frameworks proficiently and is able to navigate and apply them in their work. Is able to adapt third party frameworks to work better within their own domain of work. Is able to conceive of and implement custom frameworks that improve product development for themselves and others.
- Code Performance and Optimization – Is a “performance-maven”, consistently applying performance-optimization considerations in work products. Actively contributes to the improvement of product design from a technical perspective including usability, security, memory management, manageability, reliability and performance.
- Abstraction Knowledge – Has mastery of most abstract software engineering concepts, applies them broadly across their work and improves the work of junior peers by applying these concepts in feedback.
- Technical Independence – Has end-to-end product development ownership for broad products/features/framework or product areas. Engages and provides constructive input into platform-wide technical and architectural discussions.
- Code Testing (Manual, Auto, Unit) – Contributes to the overall improvement of code testability and code testing tools and processes.
- Code Review Quality – Consistently performs in-depth code review within areas of responsibility, with feedback that goes beyond typical error-checking to include overall structure, performance, reliability and maintainability of the platform & code base.
- IDE/Tool Usage & Routine Automation – Implements automation to improve the development practice individually and across the team. Implements useful tools to improve development practices.
- Process Adherence & Development – Helps oversee process adherence across the team and contributes meaningfully to process improvement.
- Aesthetic Design – Contributes to improvement of overall product design through insightful feedback and implementation. Oversees aesthetic standards of more junior peers.
Non-Technical Values & Traits:
- Scope – Owns end-to-end responsibility of medium-sized or relatively complex projects including engagement with project stakeholders. Requires little-to-no supervision of day-to-day work and consults senior architects when appropriate. Manages other more junior engineers contributing to their area of work.
- Initiative – Independently identifies technical problems and proposes solutions across the platform, particularly in their areas of mastery. Seeks out ways to improve the system and product development practice and proposes them to the team leadership. Seeks out opportunities to improve the work-products of their peers. Own the technical testing and performance planning side of their projects
- Follow Through/Scrappiness/Grit/Availability – Drives high-quality completion of their products fairly independently with little-to-no supervision. Influences stakeholders in their areas effectively to bring solutions to life. Is highly available in urgent moments to solve technical problems.
- Mastery/Depth of Understanding – Is the go-to expert in some significant area(s) of the code base. Has basic understanding of all key system frameworks and components and deep understanding of some. Has strong business-knowledge in one or more business functional areas. Thoroughly understand company processes and methodology well and promote understanding with others. Has sufficient knowledge of broad areas of the platform to provide intelligent technical input to the business
- Business Impact Awareness, Pragmatism – Understands the tradeoffs between technical, analytical and product goals, and strive to create solutions that satisfy all of these goals
- Vision & Strategic Perspective – Engages in the strategic decision-making process and provides useful input to strategy. Consistently provides strategic context and understanding to junior team members
- Collaboration – Courteous, tactful and diplomatic. Responds positively to request for help from internal and external partners. Does his/her share of tasks. Takes on additional work, when asked, to help a colleague out. Keeps people informed of progress on key tasks.
- Ownership & Results Orientation – Demonstrates self-motivation and initiative taking in personal and professional level. Takes decisive and accurate action to deliver value. Accepts responsibility for outcomes even when elements are not within his/her control, providing a balanced and objective explanation. Supports and encourages others to adopt a constructive attitude to the successful completion of work responsibilities. Share own successes and praise others for motivation. Motivates colleagues through their own enthusiasm and willingness to learn.
- Integrity – IS honest without fail. Treats everyone with respect. Expresses an interest in the way people behave, recognizing the importance of attitudes and motives. Acknowledges the good work of others. Pays close attention to the needs of others.
- Policy Adherence – Keeps up to date with rules and regulations. Applies policies, processes and procedures to daily working. Identifies and proposes solutions for improvements to ways of working.
- Communication – Expresses ideas or facts clearly. Good written and verbal communication skills. Promotes two-way communication with others through correct interpretation of messages and appropriate responses. Communicates in a non-threatening way. Shows empathy.