01Work 02Approach 03What I do 04About 05Let’s talk
Available for work · Cairo, Egypt

I find what slows people down — and build it out of their day.

I’m Abdelrahman — a Flutter developer who starts every app from a real problem, not a framework. Clean architecture underneath, a calm interface on top.

CS · Ain ShamsReal fundamentals
2+ years teachingInstructor at iSchool
5 appsBuilt end to end
Flutter · DartFirebase · FastAPI
The approach

Apps start as problems,
not features.

Every app here began with a moment of friction — a parent missing a dose, a day that vanished without a trace, a to-do list too rigid to be useful. I don’t start with “what can Flutter do.” I start with “what’s getting in this person’s way,” then engineer until it’s gone.

01

Start from the problem

I map the real friction before writing a line of code, so the app solves something that actually matters to the person using it.

02

Engineer the edge cases

No connection, a failed request, a race condition — the moments most apps ignore are the ones I design for first. That’s where reliability lives.

03

Build for the real user

Often that’s a tired parent or an older relative. Accessibility and clarity aren’t polish on top — they’re the point of the whole thing.

Selected work

Five products. Each one
started with a real problem.

Read the story, or open “under the hood” for the engineering. Every app is production-ready and runs fully on device — APK available on request.

MedCare
Patient home
SCREENSHOT 1
MedCare — patient home
MedCare
AI medical chat
SCREENSHOT 2
MedCare — AI medical assistant chat
MedCare Telemedicine + pharmacy
The friction

Healthcare is scattered — history in one place, appointments in another, the pharmacy somewhere else, and no easy way to ask a simple medical question. MedCare pulls it into a single app for three kinds of people at once: patients, doctors and pharmacies.

The engineering bet

Build a full multi-role platform with real business logic and zero paid backend — staying entirely on Firebase’s free tier by turning security rules themselves into the backend.

What I built

Patients get medical history, appointment booking, a pharmacy to buy from, and an AI assistant for simple questions. Doctors manage their appointments. Pharmacies run full inventory. Three roles, one codebase, no server bill.

Under the hood
FlutterFirebase AuthCloud FirestoreProvider / ChangeNotifierFastAPIREST
  • Security rules as backend. Complex Firestore rules enforce role-based access (patient / doctor / pharmacy) and let patients atomically decrement inventory with FieldValue.increment while categorically rejecting any tampering with prices or metadata.
  • Zero-cost cloud architecture. Deliberately migrated from local SQLite to a fully cloud-backed system while holding a strict no-paid-Cloud-Functions constraint on the Firebase Spark tier.
  • Reactive, flicker-free state. Composed multiple domain stores over live Firestore snapshots() streams with explicit loading states — a real-time UI without the flashes.
  • Self-hosted AI over typed REST. A custom FastAPI medical assistant on Railway, called through a typed JSON client that handles conversation context, timeouts and graceful typing / failure states.
  • Backend-free push. Appointment and medication reminders via Firestore listeners + local notifications instead of FCM — keeping the zero-cost promise intact.
Multi-role platform Runs on free tier APK on request
Sprinto
Projects & tasks
SCREENSHOT 1
Sprinto — projects and tasks
Sprinto
Glass UI · dark
SCREENSHOT 2
Sprinto — glassmorphism dark theme
Sprinto Task management
The friction

Most to-do apps are either too dumb to categorize anything, or so bloated with features you spend more time fighting the tool than doing the work. Sprinto is the middle: organized, fast, premium to touch, and nothing you don’t need.

The engineering bet

Ship a full-stack product where the hard parts are invisible — a real auth system and offline support that just work, so the app always feels instant and never logs you out mid-session.

What I built

A Flutter client on a custom FastAPI backend: projects and tasks with status and priority, real-time search, offline mode, light/dark theming, and a glassmorphism design system — all backed by a targeted test suite.

Under the hood
FlutterBLoC / CubitDiogo_routerget_itfreezedHiveFastAPIJWT
  • Custom auth backend. FastAPI with JWT access/refresh tokens, refresh-token rotation and server-side revocation, deployed to a cloud host.
  • Single-flight token refresh. A Dio interceptor that catches concurrent 401s with a deduplication guard — no redundant refresh calls, no mid-session logouts — with unit tests written for the concurrency paths specifically.
  • Clean Architecture, enforced. Strict inward dependencies (presentation → domain ← data) with a pure-Dart domain. Proof it paid off: offline caching was added entirely inside the data layer without touching UI or business logic.
  • Optimistic updates with rollback. Mutations feel instant, then auto-revert on failure so the UI never drifts from the server.
  • Design system, not just styles. A reusable glassmorphism system with theme-aware tokens via Flutter ThemeExtensions, full light/dark.
  • Tests where they matter. Focused on failure paths — refresh concurrency, optimistic rollback, cache fallback — over chasing coverage. Clean, phased Git history with conventional commits.
Full-stack Tested failure paths APK on request
Heft
Where the day went
SCREENSHOT
Heft — daily time breakdown
Heft Time tracking
The friction

“Where did my day go?” You can’t fix a habit you can’t see. Heft makes you track what you’re actually doing right now — the first real step to taking your time back.

Under the hood
FlutterBLoCHiveClean Architecture
  • Clean architecture + BLoC with Hive local storage — fast, and fully usable offline.
  • Neumorphic, high-contrast UI with soft shadows, built with accessibility in mind so the data is easy to read at a glance.
Production-readyAPK on request
Money Tracker
Balance · AR / EN
SCREENSHOT
Money Tracker — balance overview
Money Tracker Personal finance
The friction

Clarity on your own money, without a spreadsheet. An offline-first tracker with precise calculations, fluid motion, and full Arabic + English support.

Under the hood
FlutterCubitHiveFirebaseFirestoreClean Architecture
  • Offline-first with cloud sync. Hive for local NoSQL caching plus Firebase Auth + Firestore for real-time sync across devices.
  • Built for correctness and reach. Precise financial calculation logic, fluid animations, dark/light, and full English + Arabic (RTL) localization.
Production-readyBilingual · RTLAPK on request
What I do

The same tools,
aimed at outcomes.

Frameworks are table stakes. What clients actually hire is the judgment about how to use them. Here’s what that looks like.

Product thinking

where every project starts

I translate a fuzzy problem into a product decision. The reason my apps feel focused is that I decide what not to build as carefully as what to build.

Architecture that scales

Clean Architecture · feature-first

Layered, testable, easy to extend without fear. Proof: added offline caching to Sprinto entirely in the data layer — UI and logic untouched.

Flutter craft

design systems · motion · a11y · RTL

Custom design systems with theme tokens, fluid animation, and interfaces built for real people — including full Arabic / right-to-left support.

Backend & cloud

FastAPI · JWT · Firebase

I build the API too when it’s needed — custom FastAPI services with proper auth, or cost-optimized serverless on Firebase that runs a real product for free.

Offline-first reliability

Hive · optimistic UI · graceful failure

Apps that stay fast and honest with no connection: local caching, instant optimistic updates with rollback, and failure states that tell you what to do next.

About

A builder who can
explain the build.

AE
YOUR PHOTO HERE
Abdelrahman Eldaly

I studied Computer & Information Science at Ain Shams University, which gave me the fundamentals most self-taught developers spend years back-filling — data structures, systems thinking, the why behind the framework.

Then I spent over two years as a technical instructor at iSchool, teaching engineering concepts to other people. That’s the part clients tend to value most: I explain technical decisions clearly, I communicate on time, and I don’t disappear. If you’ve ever worked with a developer who couldn’t tell you what they were doing, you already know how rare that is.

Everything I build comes back to one instinct — notice the friction in someone’s day, then engineer it away. That’s what turns an idea into an app people actually keep.

Oct 2023 – Dec 2025 Technical Instructor — iSchoolTaught engineering fundamentals to students for 2+ years.
Ain Shams University Computer & Information ScienceStrong CS foundations — the layer beneath the framework.
Clear communication

You always know what’s happening and why — no black boxes.

Milestones, not surprises

Work ships in visible pieces you can check as we go.

Code you can build on

Clean architecture and real tests, so the next dev thanks you.

Let’s talk

Have a problem
worth solving?

I’m open to freelance projects, contract work, and full-time roles — the kind where there’s a real problem worth engineering away. Tell me what’s slowing your users down.