All projects
Case study: AFYTI

Promised one month. On the App Store in 25 days.

AFYTI is a telemedicine platform in Palestine. Another team had worked on it for months with slow progress and missed deadlines. I took over as Tech Lead, committed to going live within a month, and shipped a redesigned patient app, a brand new doctor app, and the infrastructure behind them.

Role
Technical Lead
Delivery
Both app stores
Platforms
iOS, Android, Web
Stack
Flutter, Node.js, Next.js, AWS
AFYTI
25 days
From kickoff to the patient app on the App Store
11 days
Doctor app, from first commit to the App Store
1st try
Approved on Google Play on the first submission
1,000+
Automated backend tests, up from zero

The challenge

AFYTI reached me through a referral from a client I was already working with. A previous team had been building the platform for months, but progress was slow and the deadlines they gave kept slipping.

The codebase I inherited had no automated tests. The business needed a live product, not another missed date.

The promise

I started with a code audit, then made one commitment: go live within a month. That meant deciding fast what to keep, what to rebuild, and what could wait until after launch.

What we shipped

Patient app, redesigned

Flutter app for iOS and Android: find a doctor, chat, voice and video consultations, prescriptions, payments, and push notifications, in English, Arabic, and Hebrew with full RTL.

Doctor app, built from scratch

A new Flutter app for doctors: consultations, chat, video and voice calls with native call screens, prescriptions, and earnings. First commit to the App Store in 11 days.

Backend and web portal

Node.js and Express API on MongoDB with real-time chat over Socket.IO, push and VoIP notifications, card payments, OTP verification, and a web portal for doctors and pharmacies.

Two super admin dashboards

We kept the existing super admin running for daily operations while building its replacement: a new Next.js super admin in a Turborepo with shared UI and translation packages.

Landing page and blog

The marketing site at afyti.co and a blog system for health articles reviewed by doctors.

Infrastructure and quality

I set up the AWS architecture so that releases stopped being risky events. In week two, a production crash caused by building the app on the server itself pushed us to move every build into CI. That incident is why every deploy now ends with a health check and an automatic rollback.

  • CI/CD with GitHub Actions: builds run in CI and deploy to EC2 through AWS SSM, with no SSH access to servers.
  • Separate staging and production environments, with health checks on every deploy and automatic rollback in production.
  • CloudFront in front of the API, website, and dashboards, with AWS WAF rate limiting.
  • Encrypted, versioned S3 storage for medical files, managed with Terraform, plus daily AWS Backup.
  • Checks on every pull request: lint, type checks, Flutter tests, and translation key parity.
  • 1,000+ backend unit tests and 230+ Flutter tests.
  • Mobile builds from CI to TestFlight, Firebase App Distribution, and the Google Play internal track.
  • Right-sized the production server in the first week, cutting its size by two tiers.

Team and process

A small cross-functional team, with tasks and sprints managed in ClickUp and QA sign-off before every release.

  • Technical Lead (me): architecture, AWS, mobile and backend development, code review, and releases.
  • UI/UX designer: the patient app redesign and the new doctor app.
  • Backend developer: APIs and integrations.
  • QA engineer: testing every release before it reached the stores.

Launch

The doctor app went live on the App Store 24 days after we started, and the patient app followed the next day.

Google Play approved both apps on the first submission. Apple approved them on the second, under a new organization developer account we set up for AFYTI. Both apps have kept shipping regular updates since launch.

The apps

Patient app
Patient app
Patient app
Patient app
Patient app
Patient app
Doctor app
Doctor app
Doctor app
Doctor app
Doctor app
Doctor app

Website and blog

afyti.co landing page
afyti.co landing page
Patient features
Patient features
Automation features
Automation features
Health articles blog
Health articles blog

See it live

Is your project stuck too?

I take over slow or stalled projects and get them shipped. Tell me where yours is.

Get in touch