Software Engineer (Mobile)
Job Summary
This is a remote position.
- Build and maintain applications using React Native or equivalent frameworks.
- Develop reusable cross-platform components.
- Integrate native Android functionality into cross-platform applications.
- Develop native modules where platform-specific functionality is required.
- Manage platform-specific behaviour.
- Maintain consistency between native and cross-platform components.
- Define mobile application architecture.
- Design state-management strategies.
- Establish networking and API integration patterns.
- Define reusable components.
- Make informed native vs cross-platform decisions.
- Maintain code quality and technical consistency.
Where applications support financial transactions:
- Implement transaction initiation and confirmation.
- Handle processing success failure timeout and unknown states.
- Prevent duplicate submissions.
- Display accurate transaction status.
- Implement transaction history and receipts.
- Recover correctly from interrupted application flows.
Applications must work reliably under poor network conditions.
You will design for:
- Intermittent connectivity.
- Network switching.
- Request timeouts.
- Retry strategies.
- Background processing.
- Application termination.
- Interrupted workflows.
- Recovery from uncertain transaction states.
Implement appropriate mobile security controls including:
- Secure token and credential storage.
- Biometric authentication.
- Secure API communication.
- Certificate/public-key pinning where appropriate.
- Protection of sensitive data.
- Secure local storage.
- Root/jailbreak risk detection where appropriate.
- Screenshot/screen-capture protection for sensitive screens.
- Optimise application startup.
- Reduce memory consumption.
- Improve rendering performance.
- Reduce unnecessary network requests.
- Optimise application size.
- Investigate device-specific issues.
- Test against low-spec Android devices.
- 58 years of professional mobile development.
- Strong native Android experience.
- Strong Kotlin experience.
- Strong Android architecture knowledge.
- Production experience with React Native or another cross-platform framework.
- Strong understanding of asynchronous programming.
- Experience integrating APIs and third-party services.
- Experience with mobile application security.
- Experience debugging production applications.
- Strong understanding of application lifecycle and state management.
- FinTech or banking applications.
- Payment applications
- Biometric authentication
- Mobile CI/CD.
- Mobile application security testing.
- Offline/network-resilient application design.
You should be able to demonstrate:
- Native Android applications you have shipped.
- Cross-platform applications you have built or maintained.
- How you decide between native and cross-platform implementation.
- How you integrate native functionality into React Native.
- How you handle interrupted transaction flows.
- How you manage application state.
- How you approach mobile security.
- How you diagnose production crashes.
- How you optimise applications for constrained devices.
Remote-First
- Work fully remotely from anywhere.
Competitive Pay
- Strong compensation for experienced engineers.
Meaningful Technical Ownership
- Own significant engineering surfaces rather than isolated tickets.
- Participate in architecture and technical decisions.
- Work on production systems and real-world technology products.
Professional Engineering Environment
Learning & Growth
Flexible Contract Engagement
High-Impact Work
Required Skills:
Required Experience 37 years of backend engineering experience. Strong Javascript and TypeScript experience. Strong Database experience. Experience building production financial payment wallet banking or transaction systems. Strong understanding of distributed systems. Practical understanding of idempotency. Experience handling transactional consistency and failure recovery. Experience designing and consuming APIs. Strong debugging and problem-solving skills. Experience working with production systems. What We Look For We care about engineering depth and ownership not just years of experience. You should be able to explain: How you prevent duplicate transactions. How you handle an unknown transaction state. How you design transaction recovery. How you maintain ledger integrity. How you handle external dependency failures. How you diagnose a production incident. Why you made the architectural decisions in systems you have built.