We are looking for a Senior Software Engineer, DataFlow (Android), to focus on core Android components responsible for storage and movement of data between Oura’s mobile app and cloud.
We’re looking for exceptional people. If you lack “senior-level” experience but are otherwise highly capable please do apply. Staff+ engineers will also be considered, though make that clear in your application.
This role is hybrid, as you'll work a day or so a week at the Helsinki Office at Pohjoisesplanadi 37. We don't have any strict policy on this as a company, but as a team we appreciate spending some time face to face.
Team size: 6-10
DataFlow team core mission:
- Reduce the effort required to store and query data that needs to be available in Oura’s app and across the cloud
- Empower feature teams to develop end-to-end features without the need to involve backend engineers.
- Evangelize compliance with standardized data schemas, data quality and data lifetime management.
- Ensure our systems are performant, scalable and cost-efficient, able to handle millions of active users and PBs of data.
The dataflow team is a platform team - most of the work is internal-facing. UI work is rare.
The team includes android, iOS, backend, and “full-stack” engineers that do both app-side and backend work.
This role:
You will be one of the core Android engineers for this team. The focus area may naturally shift over time but the following provides an idea of the work being done:
- Writing kotlin code (for the most part)
- Improving app-cloud data sync, including: reliability, latency, performance, observability.
- Improving app-side data storage: performance, data access api design, data migration systems, etc.
- Implementing automation and codegeneration layers.
- Supporting a variety of work in the platform domain, including data management and more.
You will participate in both design and implementation work. This being a platform team with internal users, we expect team members to be proactive in identifying opportunities for improvement at feature and architecture level.
Technologies:
- Android: Kotlin, (with some C++ libs, mostly in other domains), RealmDB (we’re migrating away from it), Sqlite
- Backend: Python, Rust, AWS
- Misc: some TypeScript
We believe great engineers have a solid understanding of the fundamentals and learn quickly. Hence it’s more important that you can showcase excellence than having experience with specific tech.
What we’re looking for:
- Experience with mobile development
- Ideally, proficient in Kotlin programming and modern Android app architecture. iOS experience is also considered.
- Previous experience solving challenging technical problems.
- Broad knowledge of software fundamentals, testing, concurrency, databases, and system design.
- Ability to take ownership of projects, design technical solutions, drive implementation, and deliver results with limited guidance.
- Ability to mentor other engineers and increase developer productivity across teams.
- Ability to produce high quality code quickly (with and without AI) - you identify yourself as a prolific programmer.
- Driven by value creation and overall impact.
- Team player with great spoken and written communication skills.
- Motivated to learn and further develop your skills
Not required but potentially relevant:
- Knowledge of distributed systems, data syncing mechanisms and challenges (data consistency, etc).
- Experience with HTTP API design: if interested, there is potential to work on both the backend APIs and the Android integration for new features
- Experience with JNI and C/C++ code.
- Experience writing highly performant code at lower and higher level, including application profiling.
- Knowledge of iOS - if interested, there is potential to contribute on both Android and iOS.