Senior Android Engineer
Posted
- We’re looking for a Senior Android Engineer to take ownership of the mobile application at the heart of this experience
- You’ll join a small, cross-functional engineering team building something new, with the opportunity to shape the architecture, influence technical decisions and see your work make a tangible difference. We work with a high degree of autonomy and embrace AI-augmented development to help us build and iterate at pace
- You’ll own the Android application from architecture and implementation through to release and ongoing reliability. It’s the part of the product that athletes, coaches and teams interact with directly - the application that captures data, coordinates devices, manages sessions and transfers information back to the wider system
- The challenge is making all of this work reliably in the real world
- Our products are often set up and operated by users who have never used them before. They may be working on unreliable internet connections, managing multiple devices and operating in environments we cannot control. That means intuitive setup, clear feedback, resilient data transfer and graceful recovery from failures are fundamental to the product, not features to add later
- You’ll work across the full Android stack, from camera capture and local storage to device-to-device communication, background processing and release management. You’ll also integrate native C++ components developed by our computer vision engineers, helping bring advanced tracking capabilities into a dependable mobile experience
- Own the Android application: Lead the design, architecture and implementation of a production-ready mobile application, taking responsibility for quality, maintainability and performance
- Build the capture experience: Develop and maintain the camera and media capture layer, including camera configuration, session management, recording and local storage
- Coordinate connected devices: Build the mechanisms that allow multiple devices and on-site edge units to operate as a single system, including communication, setup, synchronisation, shared state and recovery when connections fail
- Make unreliable networks manageable: Design robust data and media transfer, with prioritisation, queuing, retries and partial-failure handling built into the application
- Integrate native components: Connect C++ computer vision components through the Android NDK and JNI, owning the Android application functionality and integration around them
- Own the release lifecycle: Manage releases across environments, including Google Play submissions, internal testing tracks, remote configuration and release signing
- Build for reliability in the field: Implement crash reporting, diagnostics and observability so that issues can be understood and resolved without someone needing to be physically present
- Design for real devices: Account for battery consumption, thermal behaviour, background execution restrictions, permissions and differences across Android versions and device types
- Collaborate across disciplines: Work closely with backend, design and computer vision engineers, managing dependencies and ensuring the application integrates effectively with the wider system
- Maintain high engineering standards: Write testable, maintainable code that other engineers can understand, extend and confidently build upon
- Help the team deliver: Contribute to planning, estimation and task breakdown, identifying risks and dependencies early
- Build with AI: Use AI-assisted and delegated development tools as a standard part of your workflow, within our security and intellectual property guidelines
- As the team grows, there may also be opportunities to mentor other engineers, take technical leadership of mobile development and establish the standards and practices that shape the discipline
- Our technology
- Our stack includes Kotlin, C++ using the Android NDK and JNI, Protocol Buffers, REST and WebSocket APIs, AWS, Git, GitHub Actions and Jira
Benefits
- Flexible & Remote Working
- Generous Annual Leave
- Company Reward Schemes
- Onsite Gym
- Free Access to Unmind App
- Sony Discounts
- Pension Scheme
- Health & Wellness Activities
- This is a role for an engineer who enjoys owning complex problems end to end, making thoughtful architectural decisions and building software that works beyond the ideal conditions of a development environment
- You’re comfortable working independently, making sound technical decisions and collaborating with engineers outside your specialism. You take pride in delivering production-quality software and are motivated by solving practical problems that have a direct impact on users
- You’re an experienced Android engineer who enjoys taking ownership of an application from the first architectural decisions through to production release
- You understand that great mobile engineering is about more than functionality. It’s about building an experience that remains reliable when devices behave differently, networks drop out and users encounter situations you couldn’t have anticipated
- At least 4 years of mobile application development experience, including substantial delivery of native Android applications using Kotlin
- Experience taking applications through the full development lifecycle, from project creation and architecture to release signing and store approval
- A degree in a software-related technical discipline, or equivalent practical experience
- A portfolio of applications shipped and available on Google Play
- A willingness to learn new technologies, tools and platforms
- Mobile camera and media systems, including capture pipelines, codecs and local storage management
- Building resilient applications for unreliable networks, including background transfers, queuing, retries and partial-failure handling
- Device-to-device communication and data serialisation, including technologies such as Wi-Fi Direct and Protocol Buffers
- You’ll have expert-level knowledge of:
- Native Android development using Kotlin
- Git, code management and code review practices
- Web service integration and API contracts
- Task and ticket management tools such as Jira
- Writing unit and integration tests
- Mobile CI/CD and automated release pipelines
- Android device lifecycle constraints, including thermal behaviour, battery usage, background execution limits, permissions and differences across OS versions and device tiers
- You’ll also be comfortable with:
- Mobile application architecture and design
- You don’t need to have worked with every technology listed. We’re interested in strong native Android fundamentals, sound engineering judgement and the ability to learn and solve unfamiliar problems
- It would be beneficial to understand:
- Real-time and latency-sensitive data delivery
- Integrating native computer vision or machine learning components into an Android application
- Kotlin Multiplatform and its potential as a future route to iOS
- Coordinating multiple devices as part of a single system
