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
- Java/J2EE and Spring and other Java frameworks
- 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.
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 1x1 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.
go to method of application »
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
- Java/J2EE and Spring and other Java frameworks
- 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.
TECHNICAL EXPECTATIONS
- 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.
go to method of application »
Product development activities at Paga fall within the Product Development group, which has distinct, full-stack (from a resource perspective) teams dedicated to a functional organization unit. For example, one of the functional teams in the Product Development team is the Agent Network Team which is responsible for development and delivery of products used by the large network of financial service delivery point (agents), across the countries where Paga exists. As a full-stack team, this team includes project management, product management, software and database engineering, quality assurance, and UI/UX/Product-Design resources. All teams execute product development using Agile (Scrum) methodologies.
As a Product Manager at Paga, you will individually or jointly have ownership for the success for several specific products and/or features from the set of Products that Paga delivers to its external and internal customers.
This means:
- Driving strategic decision making for the products/features within your purview and driving tactical decisions for them
- Overseeing the development of new products and features.
- Curating and growing existing products
- Generally delighting your customers (both internal and external)
Paga has a distributed product development team with resources split between Lagos, Nigeria, Addis Ababa, Ethiopia, and now, Mexico City, so this role, comes with the expectation of very strong remote collaboration and self-management skills. There will be the expectation of occasional, but rare (twice a year at most) travel to some of the Paga office locations for training, team events, user-engagement and general market-empathy development.
At Paga, a product manager's role is both strategic and tactical. To be an effective product manager at Paga you must:
- Have good customer/market empathy to drive a consumer-centric design ethos
- Have very strong critical thinking skills to be able to translate user needs into meaningful products in a variety of diverse use cases
- Have the ability to multitask and effectively prioritize a competing number of objectives simultaneously
- Be comfortable with rapid change and be willing to take ownership to deliver results in a high-pressure product development environment
- Be able to work well in a team comprised of multiple product development skills including other product managers
As a distributed product development team member, communication and collaboration are key. You will need to be excellent at utilizing remote communication tools and applying clear communication and collaboration practices to effectively engage with your “customers”, team mates and other company stakeholders.
PRIMARY RESPONSIBILITIES
- Product development activities - Executing product-development activities (ideation, specification, design, development feedback, and post-deployment product curation) for specific products and features
- Market engagement - Engaging with end-users and marketing team to refine product vision.
- Product curation - Continuously improving existing product offerings through both qualitative and quantitative analysis of product performance and product/market fit.
- Partner Engagement – Working effectively with industry/ecosystem partners to accomplish product goals
KEY COMPETENCIES
- Strong strategic and critical thinking skills
- Excellent in team and cross team collaboration skills
- Great verbal/written communication skills
- Highly observant with an attentiveness to detail
- Strong multi-tasking and self-management skills
- Curious, self-driven and empathetic
KNOWLEDGE AND SKILL REQUIREMENTS
- 3+ years of product management or similar product development experience
- Agile product development methodology experience
- Bachelor’s degree