Thaheen | ذهين — الرياض - منطقة الرياض — دوام كامل
Mid-Level Flutter Developer
Thaheen — Engineering · Fully Remote
About Thaheen
Thaheen (ذهين) is a Saudi education platform for university students in the health sciences, including medicine, nursing, pharmacy, and preparatory-year subjects.
The platform was founded by health-sciences students who experienced these courses themselves. Students can purchase individual subjects or discounted bundles and study at their own pace through recorded lectures delivered by specialist instructors, supported by practice questions modelled on real exams.
Thaheen is already live and serving paying students. We are now building the next stage of the product: the student mobile app, the web portal, and the backend powering both.
Our product is Arabic-first, and our team is still small.
About the Role
We are looking for a Mid-Level Flutter Developer to help build the Thaheen student mobile app for iOS and Android.
The Flutter codebase is still young. The foundations are in place, but most of the product is still ahead of us. You will build features end to end—from the user interface to API integration—while working directly with the founders and a small engineering team.
This is a hands-on role in an early-stage company. You will have real influence over how the app is built, broad ownership, and a direct connection between your work and students already paying to use the platform.
Working Setup
This is a fully remote role.
You will work directly with the founders and the engineering team through regular check-ins, without a calendar full of unnecessary meetings.
We care about what gets shipped and about clear, early communication—not fixed hours at a desk. You can organise your day in the way that works best for you, provided that you keep the team informed and raise problems while they are still small.
What You Will Do
• Build and ship features for our Flutter app on iOS and Android, including course browsing, video lessons, practice questions, and purchases.
• Develop features end to end, from the UI through to API integration.
• Integrate REST APIs and handle authentication, sessions, access tokens, refresh tokens, and secure user flows.
• Manage application state using the patterns already established in the codebase.
• Build consistent loading, empty, error, and success states.
• Create Arabic-first layouts with correct RTL behaviour across phones and tablets.
• Implement local storage and caching so the app performs reliably on weak connections.
• Investigate bugs, crashes, and performance issues, identify their root causes, and fix them properly.
• Write clear and maintainable code.
• Add tests where they provide real value.
• Participate in code reviews.
• Understand the existing architecture before proposing major changes.
What You Will Own
You will own the mobile app as a whole, including:
• The quality of released features.
• Technical decisions within the features you build.
• Application stability and production performance.
• The complete flow of each feature, including state management, failure cases, and unexpected API responses.
Architectural changes affecting the entire codebase will be discussed with the team before implementation.
What We Are Looking For
• 2+ years of practical experience with Flutter and Dart.
• At least one Flutter application that you helped release to real users.
• Experience integrating REST APIs and working with JSON, authentication, access tokens, and refresh tokens.
• Practical experience with at least one state-management solution, such as Riverpod, Bloc/Cubit, Provider, or a similar tool.
• Comfortable using Git, pull requests, and code reviews.
• Able to understand and contribute to an existing codebase without needing every step explained.
If you have slightly less than two years of experience but have shipped solid production work, we still want to hear from you.
How You Work
Because we are a small team in an early-stage company, how you work matters as much as what you know.
• You take strong ownership and carry features from the first commit through to release.
• You do not wait to be told every next step.
• You raise blockers early instead of going quiet when something is stuck.
• You are comfortable working without detailed instructions for every task.
• You ask questions when something is genuinely unclear.
• You can clearly explain the reasoning behind your technical decisions.
• You care about the entire user flow, not only the screen.
• You consider state, failure cases, performance, and unexpected API behaviour.
Nice to Have
None of the following are required, but they would be useful:
• Experience publishing apps to the Apple App Store and Google Play.
• Experience building RTL or bilingual Arabic-English applications.
• Experience with e-learning, course-based, or subscription products.
• Experience with push notifications, payment integrations, video playback, or protected streaming.
• Experience with offline functionality and caching strategies.
• Experience building tablet layouts alongside phone layouts.
• Experience writing unit or widget tests.
• Experience with CI/CD for mobile applications.
What We Offer
• Real ownership of a core part of the product—not fragmented tickets.
• Direct collaboration with the founders and the entire team.
• Short feedback loops with no unnecessary management layers.
• Visible impact, with your work reaching real users quickly.
• Room to grow as the company and engineering team expand.
• Increased scope and responsibility over time.
• A fully remote setup with genuine flexibility in how you organise your day.
• Equity or ESOP as part of the package, discussed openly during the hiring process.