Case study

JoinBeUs.

An audio-first language-learning platform, built across a Flutter mobile app, a Next.js admin system and a FastAPI backend — across two contracts and five months, both closed at 5.0.

Engagement
Two fixed-price contracts, Jan – Jun 2026
Role
Sole engineer — architecture through release
Platforms
iOS, Android, web admin
Outcome
5.0 on both contracts, relationship extended

The problem

The client had a language-learning product that needed to work as an audio-first experience on mobile, and an operations team that needed to run it without a developer in the loop. That second half is where this kind of project usually stalls: the app ships, and then every content change, every role change and every subscription question comes back to engineering.

What I built

A Flutter application for iOS and Android on Clean Architecture with Bloc, backed by a FastAPI service. Then the part that made it operable: a Next.js admin spanning 70+ role-based pages with an 11-role access-control model, two-factor authentication, and Stripe subscription billing wired end to end.

The AI work was speech scoring — evaluating a learner’s spoken response and returning a usable score rather than a raw model output. That meant setting a confidence threshold, deciding what happens below it, and making the failure mode quiet rather than wrong.

The result

The first contract delivered the platform. The client came back for a second to build out the admin area, which is the honest measure of how the first went. Both closed at 5.0, and the client endorsed the work for solution orientation, clear communication and accountability for outcomes.

“As we come to the end of this contract, I want to take a moment to thank you for the work you’ve done on JBU…”

Client review, Upwork · contract two of two · 5.0

Stack

Flutter · Dart · Bloc · Clean Architecture · FastAPI · Python · PostgreSQL · Next.js · Stripe · 2FA · AI speech scoring

Building something with a similar shape?

Start a conversation

Have a product worth building?

Tell us what you're building, where you are today, and what you're trying to achieve.

Book A Call