Agro Sbai
January 2026An agricultural supplies company in Tunisia. I built the company's product catalog app in three weeks as my internship project, with Expo Router, Uniwind and HeroUI Native.
I've been building mobile apps for six years, and I had apps on Google Play before the AI era even started. I began on Android. Today I write native libraries for React Native in Kotlin and Swift, send fixes to Expo, and I've shipped four apps to Google Play on my own. I'm in the final year of my IT degree.

Apps I published on Google Play, React Native libraries on npm and a few tools for developers.
20 mind games for one phone.
A party card game where players caption Tunisian memes.
A spaced-repetition flashcard app.
A chat app with stories that disappear after 24 hours.
A native code editor for React Native.
A native ink canvas for React Native.
A one-time code field for React Native.
A CLI that turns any git repo into a printable PNG poster.
A hook that flags docs a code edit just made wrong, and patches them before the commit lands.
A Claude Code plugin that keeps AI fingerprints out of your git history and GitHub activity.
Merged pull requests to projects I don't own: 59 across 13 public repos, plus 10 in Pocketly's private repo.
More on GitHubFixed Expo Router async routes that stayed broken after one failed chunk download. #51741
Five Android fixes in review
Fixed Android biometric prompts and the iOS public key format, in three pull requests that shipped in v0.17.0.
Made scaleDown shrink images larger than their box, fixed hit-path indices after clustering and sent two performance pull requests.
An expense tracker on Google Play, built with Expo. I moved database access out of about 40 files into a repository layer tested against in-memory SQLite and added versioned migrations, fixed an Android-only bug that stopped users from saving filters, switched the busiest list to FlashList v2 and parallelized the settings load at startup.
Added my libraries to the directory and updated their entries: react-native-inkpad, react-native-codepad and react-native-otpkit.
Pull requests to an open source Android IDE, including R8 and AAPT2 build tooling and a ViewEditor refactor.
Two internships so far, and the final year of my IT degree.
An agricultural supplies company in Tunisia. I built the company's product catalog app in three weeks as my internship project, with Expo Router, Uniwind and HeroUI Native.
Société Tunisienne de Banque, Hajeb El Ayoun branch.
Bachelor's degree in IT (Licence TI), Multimedia and Web Development track.
Baccalaureate, Computer Science section.
Mostly mobile, right down to the native layer.
I write the Android and iOS code behind React Native libraries, on the New Architecture, and fix native bugs in other people's.
16 npm packages on Nitro Modules, with one set of test vectors that both the Kotlin and Swift engines run
An ink canvas on androidx.ink and PencilKit, with a Canvas 2D renderer for the web
iOS now returns X.509 SPKI public keys, and Android re-prompts once when Keystore drops the signing operation
Two performance pull requests that push animated values and JS-thread writes from the shared slot block
I build Expo apps from the data layer to the Google Play release.
Raw Drizzle calls from about 40 files moved into a repository layer, tested against real in-memory SQLite
Failed async route loads can be retried instead of staying broken until a reload
A flashcard app on Google Play with 533 tests
A party card game on Google Play with 281 tests
I still write Android natively: Java first, Kotlin and Jetpack Compose today.
On the web I work with React and its frameworks, including Next.js.
How I got from Sketchware to Kotlin and Swift.
I wrote my first code as a kid: HTML, CSS and JavaScript on a phone, with no laptop. Then I built Android apps in Java with Sketchware Pro, which I count as practice.
Moon Meet started the same way, in Sketchware on my phone.
Moon Meet moved to Android Studio once I could export the project to a PC, and I dove into mobile development.
Sketchware was unmaintained, so I reverse engineered it to add .aab support and new signing (load an app's own classes as a jar, decompile, recompile, back to smali). Sketchware Pro merged 37 of my pull requests. Then I switched to React Native and rebuilt Moon Meet.
I published otp-input before the baccalaureate and made Mentrick, first called PlayScope, after it. I earned four HackerRank certifications the same year.
I moved to macOS, with Xcode and Swift next to Android Studio, and published three React Native libraries.
A job or a final-year internship (PFE) in mobile development.
A PFE can start in January 2027. For a job, let's talk.
On site in Sousse or Nabeul, or remote.
Arabic (native), English (professional) and French (basic).