Batoul Hodroj, home
All work
Live

Lead Full-Stack & AI Engineer · 2026

Miftah

A real estate marketplace — مفتاح means key.

  • Rust
  • Flutter
  • Claude API
  • actix-web
  • MySQL
  • OpenStreetMap
Miftah's public listing page in a desktop browser: a large photo of a modern apartment building, the price and location, key facts shown as tags (apartment, for sale, building age, Beirut), a short description and an "Open in the Miftah app" button.

The problem

People looking for property in Lebanon need one trustworthy place to search in their own language and follow up with the seller.

What I built

A bilingual Arabic and English property marketplace: an app for the web and phones, public listing pages, and an operations console for the company's team. Buyers search listings and book viewings, sellers and brokers publish and manage their properties, and the team handles verification, enquiries, deals and commissions. Listings from unverified sellers stay hidden from buyers.

  • Search with filters for price, city, installments and features like a garden or parking, in a list or a grid
  • Map search with price pins
  • Property pages with photos, key facts, favourites, sharing and a viewing request
  • Book a viewing: request, confirm, cancel and rate how it went
  • Share any listing as an image card with its photo, price and a QR code, in Arabic or English
  • Public listing, city and broker pages that search engines can read
  • Seller and broker sign-up with ID upload, and a four-step listing wizard with up to eight photos and a map pin
  • Listing performance for sellers: views, enquiries and favourites, not counting bots or their own visits
  • An operations console with daily work queues, an enquiry call centre, seller verification, deals and commissions, and accounting
  • Arabic and English throughout, with a full right-to-left layout

The AI inside

Sixteen AI features run on Anthropic's Claude. Buyers can search in plain words, like "villa in Beirut under 200k", in Arabic or English, and chat with an assistant that answers only with real listings. Sellers get help writing listing descriptions in both languages, tagging photos and improving their listings. The team gets a daily brief, scored enquiries and draft replies. Clear rules keep it honest: the AI is instructed never to recommend or predict a price, never to tell anyone which property to buy and never to invent facts about a listing. A monthly spending cap, a log of every AI call and a non-AI fallback for every feature keep it reliable.

Results

  • Live on the web, with a mobile app
  • Four kinds of users on one platform: buyers, sellers, brokers and the operations team
  • Sixteen AI features, each with a fallback so the platform keeps working if the AI is unavailable
  • Listings from unverified sellers never reach buyers

What I was responsible for

  • Product planning: scoping the rebrand to Miftah and prioritising buyer, seller, broker and operations features
  • Architecture: the Rust API with MySQL, the Flutter app for phones and the web, the operations console and the public pages
  • Backend: listings, search and filters, map search, viewings, buyer accounts, deals and commissions, disputes and accounting
  • AI integration: one AI client with a spending cap, usage logging, caching, rate limits and fallbacks, and 16 AI features with guardrails
  • The app: Flutter screens in Arabic and English with a right-to-left layout
  • The operations console: daily queues, enquiries call centre, verifications, deals, revenue and accounting
  • Search engines and sharing: public listing, city and broker pages, sitemap, and share images with QR codes
  • Security: role-based access, strong password hashing, rate limiting, an audit log and locked-down services
  • Testing: server unit and integration tests, API smoke tests, a pre-deploy acceptance script and app integration tests
  • Deployment and operations: automated builds, production rollout and rollback, monitoring, backups and scheduled security checks

Have an idea? Let's plan it.

Plan your project