Right now is one of the most exciting moments to join Popsa. Deloitte named us one of the UK’s fastest-growing technology companies, and the Financial Times recognised Popsa among the Top 5 fastest-growing software companies in Europe.
We’re backed by world-class investors, and the world is noticing. Our iOS and Android apps are available in 12 languages, trusted by more than 12 million people who have created over 5 million photobooks shipped to 50+ countries. With more than 350,000 five-star reviews, we’re one of the highest-rated consumer apps anywhere.
But the real story isn’t the numbers, it’s the memories behind them.
We’re living in a time where we capture more photos than ever before. Billions of moments sitting unseen in camera rolls and clouds, mixed with screenshots, receipts, or where we parked the car. We are great at documenting life… but not so great at preserving the meaning in it.
Popsa is changing that.
Since launching in 2016, we’ve built an award-winning platform that removes every barrier to transforming your favourite memories into something beautifully tangible. No design skills. No time-sink. Just the joy of holding real stories in your hands. A celebration of the people and moments that make life worth living.
This is only the beginning.
👉 Learn more about what it’s like to work at Popsa
👉 Read about the technology we're building
👉 Take a look inside our Soho HQ
About the Role
You'll be building and improving a sophisticated memory curation platform that helps users discover their best moments, and create beautiful, personalised products automatically. The app intelligently curates photos from users' libraries, uses on-device ML for face recognition and photo analysis, and renders high-fidelity 3D previews of physical products. You'll work across features spanning photo selection, AI-assisted layout generation, payment processing, and immersive product visualisation.
Expertise
We’re primarily looking for recent experience developing high-quality, consumer-facing Android apps where finesse, performance, and delight are priorities.
Strong experience developing with Kotlin
Deep understanding of the Android app lifecycle, activities, fragments
Hands-on experience building UIs in Jetpack Compose
Deep knowledge of Composable functions and state management
Familiarity with Compose Animation APIs
Proficiency in handling resources, permissions, and responsive UI across devices
Mindset
A problem-solving, curious, and inquisitive attitude
Clear communicator with a keenness to work collaboratively
Constructive approach to code reviews and architectural discussions
Nice to Have
Custom drawing and advanced Compose UI/animations
Performance optimisation and profiling experience
Accessibility best practices
Familiarity with machine learning models or real-time collaboration features
Experience with graphics rendering pipelines
Tech Stack
Architecture & data
Multi-module Gradle project with a version catalog for dependency management
Protocol Buffers for efficient data serialisation with our backend
Realm Kotlin for on-device persistence, with a DAO-layer abstraction
Repository pattern for clean data access across network and local sources
Retrofit and OkHttp for networking, with Gson and Protobuf converters
Kotlin Serialization for type-safe data handling
Concurrency & reactive programming
Kotlin Coroutines and Flows for structured concurrency
RxJava 2 in established areas of the codebase, with coroutine adapters bridging the two
WorkManager for durable background tasks (image processing, uploads, notifications)
Graphics & on-device ML
LiteRT (TensorFlow Lite) with GPU acceleration for on-device inference
Custom ML models for face recognition, photo aesthetics scoring, and content labelling
ML Kit for face detection
OpenCV for computer vision processing
Firebase ML Model Downloader for OTA model updates
Photo library integration
MediaStore API for accessing and analysing user photo libraries
Custom photo picker supporting local and remote sources (Google Photos, Facebook, Dropbox, Instagram)
On-device ML pipelines for face embeddings and photo quality scoring
Third-party integrations
Firebase (Analytics, Remote Config, ML Model Downloader)
Sentry for crash reporting and performance monitoring
Stripe and Braintree for payment processing; Google Pay via Play Services
GrowthBook for feature flags and experimentation
Glide and Coil for high-performance image loading and caching
Mixpanel and Bloomreach for product analytics
Branch.io for deep linking
Leanplum for push notifications and messaging
Pusher for real-time event streaming
CI/CD & quality
GitHub Actions for automated builds, PR checks, instrumented tests, and signed release builds
Kotlinter (ktlint) for code style consistency
Custom Android Lint rules for project-specific checks
Paparazzi for snapshot / UI regression testing
Emerge Tools for APK size analysis and monitoring
Baseline Profiles for startup performance optimisation
Version control & collaboration
GitHub with pull request workflows and actions
If you’re the sort of person who cares about the detail, and stays kind under pressure, you’ll fit in.