Selected work
Fils
A personal finance app built around zero-based budgeting. It reads bank messages, categorizes expenses and produces reports to help you understand your finances.

The challenge
Every budgeting app dies the same death. You install it in January full of resolve, you type in your first eleven purchases by hand, and by week three you're a person who owns a budgeting app rather than a person with a budget. Manual entry is the whole problem. Nobody opens an app to log a 14 riyal coffee. The international apps solved this with bank API connections, which mostly don't reach Saudi banks, and when something does connect, the categories were written for someone buying groceries in Ohio. Meanwhile the actual record of every riyal you spend has been sitting in your phone the entire time, in the SMS inbox, unread and unusable.
What I did
Built Fils in Flutter and made the SMS inbox the data source instead of a keyboard. The app reads bank messages and turns them into structured transactions, so the ledger fills itself. The messy part is that no two banks write the same message. Different wording, different order, merchant names arriving as truncated Latin strings that mean nothing to anyone. So the parsing hands off to a model that reads intent rather than matching templates, and learns which category you actually put things in. Under two seconds per transaction, which matters more than it sounds, because the whole promise is that you never wait on it and never correct it twice. Chose zero-based budgeting on purpose over the usual spending-tracker approach. Tracking tells you what happened. Giving every riyal a job before the month starts is the part that changes behaviour, and it's the method with the best evidence behind it. Subscription detection came out of the transaction history almost for free, and it's the feature people react to hardest. The app watches for recurring charges and warns you before the renewal, not after, which is the only moment the warning is worth anything. Forgotten subscriptions are the cleanest money most people can recover. Reports are written as narrative Arabic rather than charts. A pie chart tells you 32% went to restaurants. A sentence tells you that you spent more on delivery this month than on fuel, and asks whether you meant to.
The result
Zero manual entry. Transactions categorized in under 2 seconds. Free with no hidden fees, original SMS messages discarded after analysis rather than stored, and the subscription detector surfacing recurring charges before they renew. The conversational financial advisor is still in development, not shipped.
