Datafin

Technical Lead: Mobile (Java & Kotlin)

Engineering/Technical
Johannesburg – Gauteng

ENVIRONMENT:
A rapidly growing FinTech company in Joburg wants you as their next Technical Lead: Mobile, who will be responsible for researching, designing, implementing, documenting and managing software programs, as well as fixing and improving existing software. The role also incorporates the management and mentorship of junior staff within the assigned working group.  You will need to have Android native (Java and/or Kotlin) and experience with object-oriented principles, methodologies, and patterns.
 
DUTIES:
The Technical Lead will need to work with fellow team members to:
    • Producing clean, efficient code.
    • Review existing code.
    • Performing code reviews.
    • Testing, deploying programs and systems.
    • Fixing and improving existing software.
    • Applying agile principles and tools in executing your daily responsibilities
The Technical Lead will need to offer:
    • Mentoring and monitoring team members daily.
    • Leading and taking accountability for the Mobile’s contribution to the Architecture across products.
 
You will be responsible for providing expertise in the software development life cycle, from concept, architecture, design, implementation, & testing by:
    • Attend all inceptions sessions scheduled by the Production Management unpack all relevant Client requirements.
    • Help design and implement functional requirements.
    • Gathering and evaluating user requirements, in collaboration with the product managers and engineers.
    • Take high fidelity concepts and turn them into usable components.
    • Complete all tasks in the agreed time by myself and my peers to ensure I never prevent another person from completing their tasks or doing their job.
    • Ensure unit tests are completed by the team.
    • Ensure all Pull Requests are completed and approved.
    • Ensure existing software is maintained and the platform is on the latest LTS version.
    • Ensure quality and reusable code is implemented to ensure the highest value is provided.
    • Ensure use of all tools required to execute tasks and keep the team up to date on the progress such as:
        • Allocated Jira tickets have estimated story points.
        • allocated b. Allocated Jira tickets are updated with progress and/or any blockers being experienced and/or assistance or context required.
        • Confluence is used to document all logic and technical context for work produced.
        • Microsoft teams is used for effective communication with team members.
    •  Ensure all work is documented:
        • Code comments – Where necessary.
        • Technical documentation.
        • Logic documentation.
        • Business rules documentation.
    •  Being a part of the one on one’s.
    •  Work closely with product owner/s, designers, data/business analysts, and front-end and back-end developers to ensure the platform is achieving its goals.
Secondary:
    • Ensure that together with delivering the core technical responsibilities the immediate team is aligned and is clear on all expectations.
    • Ensure to raise any problems preventing the team from doing the job and to ensure tasks are completed on time and business continues as usual and if required effectively communicate to production management if deadlines cannot be adhered to due to impediments.
    • Understand and be able to talk coherently about any processes we are implementing and their benefits to ensure the team is working together.
    • Work and collaborate with the team to ensure every person is valued and is contributing to the ultimate success of the team.
    • Be an advocate for the end-user.
    • Assertive when it comes to defending design decisions in both code and UI.
    • Knows how to say NO.
    • Has little ego, takes design criticism on the chin and seeks to improve rather than throwing toys out the cot.
    • Always seeks to improve his/her own craft.
    • Future thinker.
    • Make decisions with the architects on the way forward.
    • Articulate the angular and react roadmap.
    • Ensure the teams are achieving adequate levels of priority e.g., Jira ticket updates, productivity.
    • Ensure the teams are happy, feeling engaged, feeling like they are contributing, etc.
    • Mentoring and teaching of fellow teammates.
    • Ensure that uniform application wide standards are maintained.
    • Collaborating with other stakeholders to ensure the application is aligned with business objectives
 
REQUIREMENTS:
    • Android native (Java and/or Kotlin).
    • Experience with object-oriented principles, methodologies, and patterns.
    • Testing.
    • Experience with TDD or BDD is beneficial, but not a requirement.
    • Git.
    • Experience using Git Flow as a branching strategy is beneficial, but not a requirement.
    • MVVM Architecture.
    • Dagger 2 Dependency Injection.
    • Retrofit.
    • Room Database.
    • Unit testing with JUnit/Mockito or any other unit test and mocking framework.
 
Key Performance Indicators (KPIs)
    • Velocity – TBD
    • Quality of Code:
        • Simplicity.
        • Stability.
        • Testable.
        • Knowledge Sharing.
    • Promoter score gathered from various departments:
CE, Production, Managers through One on One’s.