JOB DESCRIPTION: Software Engineer
Position: Software Engineer
Reports to: Software Team Lead
Location: Lagos, Nigeria
Experience: 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
Paga is a licensed financial services company and a leading payments company in Nigeria. 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 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
- 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.
- 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
NON-TECHNICAL VALUES & TRAITS
- Scope – Is able to take on specific, well defined, lower-complexity tasks and execute them effectively and to a high level of quality with supervision. May own small to medium features of the system from technical design through to completion with guidance.
- Initiative – Takes the initiative to reach out to superiors and senior peers whenever necessary for support and assistance. Takes initiative to effectively breakdown, prioritize and implement tasks tactically. Takes initiative to improve on design and strategic impact on the areas of responsibility in collaboration with feature stakeholders.
- Follow Through/Scrappiness/Grit/Availability – Sees tasks through to completion, focusing on quality and completeness rather than speed of execution. “Does what it takes” to marshal resources and support to drive tasks to completion efficiently.
- Mastery/Depth of Understanding – Is able to develop a sufficient understanding of the task at hand to execute it effectively. Develops strong, self-sufficient knowledge of a specific area of the system. Understands core system framework enough to be able to use them with minimal supervision. Capable of providing on-call support for areas of the system that they are familiar with. Understands company process and methodology well.
- Business Impact Awareness, Pragmatism – Takes direction effectively to implement tasks per instruction from managers. May make independent sensible design decisions that optimize business value of work. Avoids focusing on unimportant details and excessive bikeshedding.
- Vision & Strategic Perspective – Is able to understand the vision and strategic goals of the organization. Understands current business strategic goals and incorporates them in design and development decisions in an effective way. Demands an understanding of strategic motivations for their work
- Collaboration – Works well in a team environment composed of multiple product development skills. Is 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. Is comfortable with rapid change and is willing to take ownership to deliver results in a high-pressure product development environment. 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 – Shares technical and product-specific knowledge with team and company through 1×1 conversations, presentations, and support. 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.
To apply for this job please click on -> paga.bamboohr.com.