Lead Full-Stack & AI Engineer · 2026
AI-Powered POS
A point-of-sale that answers your questions.
- Rust
- Flutter
- Claude API
- actix-web
- MySQL

The problem
Small cafés and shops in Lebanon trade in two currencies at once, at an exchange rate that keeps moving. A basic till can't tell the owner what they actually earned this week, what is about to run out, or who still owes them money.
What I built
A cloud point-of-sale for many shops at once. One app runs both as a Windows till and as a web app, with a café version for table service. It keeps every shop's sales, stock, expenses and debts in one place, in dollars and lira, and turns them into plain answers.
- Till with categories, bill, discounts, refunds and receipts
- Dollars and lira everywhere: prices, totals, debts, part-payments and two cash drawers
- End-of-day cash close: expected against counted cash for each currency, with profit and warnings
- Customer debts and supplier bills, paid in either currency
- Stock, expenses, and profit between any two dates
- Café table service with an open tab per table
- Staff roles for owner, manager and cashier
- Every label in English and Arabic side by side, for owners and staff who read different languages
- Six automatic insight reports, built on clear business rules: margins, stock running out, reorder timing, unusual refunds, overdue debts and currency exposure
The AI inside
Two features use Anthropic's Claude. With "Ask about your shop", the owner types a question like "how did we do last week?" in English or Arabic and gets a short answer about their own shop. Only totals ever leave the server — never customer names, staff names or single sales — and each shop has a daily limit so costs stay predictable. With invoice scanning, the owner photographs a supplier invoice in Arabic, French or English; the AI reads the lines, is instructed never to guess a number it can't read, and nothing is saved until the owner has checked it.
Results
- Many shops share one system, and each shop's data is kept apart — proven by 39 tests that pit two shops against each other
- 413 automated server tests, all passing (September 2026)
- Stock can't go negative, even when two cashiers sell the last item at the same moment
- Payments and checkouts are saved completely or not at all, and a café table can't be charged twice
Screens
Show larger: Scan Invoice, ready for a photo: the owner picks a picture of a supplier invoice and AI reads its items into a list to check. Nothing is saved until the owner has reviewed the lines and pressed Save.
Show larger: The Insights hub gathers the shop's reports in one place: profit margins, currency exposure, stock forecast, reorder suggestions, unusual sales, overdue payments, and Ask About Your Shop.
Show larger: End-of-day cash close with separate dollar and lira drawers: what should be in each drawer, a box for the amount actually counted, the period's profit, and warnings. Every label appears in both English and Arabic.
Show larger: Currency Exposure report: at today's exchange rate, what the shop is owed and what it owes in lira, and how much the falling lira has cost or saved it on unpaid balances.
Show larger: Stock Forecast: based on how fast each product actually sold over the last 30 days, the items that will run out soon and roughly how many days they have left.
What I was responsible for
- Product planning: turning shop owners' requests into a phased plan, such as the cash close and profit by date
- Architecture: the multi-shop data model, role and business-type permissions, and the dollar-and-lira ledger
- Backend development in Rust with actix-web and MySQL
- Flutter app development for the web and Windows
- AI integration: plain-language questions and invoice scanning on Anthropic's Claude, with the privacy guard, daily limits and usage records
- Security and data-integrity audit and fixes: shop isolation, crash fixes, stock and money integrity
- Testing strategy: integration tests against a real MySQL database and two-shop isolation tests
- Deployment and operations: Linux server, nginx, database migrations and rollbacks
- Documentation and handover: setup and deployment guides, a runbook, and Arabic and English user guides for shop owners
