Open to work or a PFE internshipReact Native developerKairouan, Tunisia

RayenSbai.

Mohamed Rayen, if we're being formal

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.

Mohamed Rayen Sbai in profile against a blue sky
rayen.ts
1// hi, i'm mohamed rayen
2const rayen = {
3role: "React Native developer",
4yearsBuildingApps: 6,
5native: ["Kotlin", "Java", "Swift"],
6appsOnGooglePlay: 4,
7openTo: ["Work", "PFE"],
8};
6years building mobile apps
4apps shipped to Google Play, on my own
5,000+installs of Mentrick, my 20 mind games for one phone
59merged pull requests to 13 public repos, including Expo and Sketchware Pro

Built it. Shipped it.

Apps I published on Google Play, React Native libraries on npm and a few tools for developers.

I send fixes upstream

Merged pull requests to projects I don't own: 59 across 13 public repos, plus 10 in Pocketly's private repo.

More on GitHub
  • expo/expo

    Fixed Expo Router async routes that stayed broken after one failed chunk download. #51741

    Five Android fixes in review

    Merged2026
  • react-native-biometrics

    Fixed Android biometric prompts and the iOS public key format, in three pull requests that shipped in v0.17.0.

    3 mergedSep-Oct 2026
  • margelo/react-native-tgfx

    Made scaleDown shrink images larger than their box, fixed hit-path indices after clustering and sent two performance pull requests.

    4 mergedNov 2026
  • Pocketly

    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.

    10 mergedJun-Sep 2026
  • React Native Directory

    Added my libraries to the directory and updated their entries: react-native-inkpad, react-native-codepad and react-native-otpkit.

    5 merged2024-2026
  • Sketchware Pro

    Pull requests to an open source Android IDE, including R8 and AAPT2 build tooling and a ViewEditor refactor.

    37 merged2021

Where I've been

Two internships so far, and the final year of my IT degree.

Experience

Agro Sbai

January 2026
Intern

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.

STB Bank

Jan-Feb 2025
Introductory internship

Société Tunisienne de Banque, Hajeb El Ayoun branch.

Education

ISET Sidi Bouzid

2024-2027
Higher Institute of Technological Studies

Bachelor's degree in IT (Licence TI), Multimedia and Web Development track.

Lycée Abou El Kacem Chebbi

2024
Hajeb El Ayoun

Baccalaureate, Computer Science section.

What I work with

Mostly mobile, right down to the native layer.

Native modules for React Native

I write the Android and iOS code behind React Native libraries, on the New Architecture, and fix native bugs in other people's.

  • Native modules (Kotlin, Swift)
  • Kotlin
  • Swift
  • Jest
  • Git
  • GitHub Actions
  • react-native-codepad

    16 npm packages on Nitro Modules, with one set of test vectors that both the Kotlin and Swift engines run

  • react-native-inkpad

    An ink canvas on androidx.ink and PencilKit, with a Canvas 2D renderer for the web

  • react-native-biometrics, shipped in v0.17.0

    iOS now returns X.509 SPKI public keys, and Android re-prompts once when Keystore drops the signing operation

  • margelo/react-native-tgfx

    Two performance pull requests that push animated values and JS-thread writes from the shared slot block

React Native and Expo apps

I build Expo apps from the data layer to the Google Play release.

  • React Native
  • Expo
  • Expo Router
  • TypeScript
  • JavaScript
  • Reanimated
  • Gesture Handler
  • FlashList
  • NativeWind
  • Tamagui
  • SQLite (Drizzle)
  • Firebase
  • Pocketly

    Raw Drizzle calls from about 40 files moved into a repository layer, tested against real in-memory SQLite

  • expo/expo #51741

    Failed async route loads can be retried instead of staying broken until a reload

  • Encore

    A flashcard app on Google Play with 533 tests

  • Chmeta

    A party card game on Google Play with 281 tests

Android, natively

I still write Android natively: Java first, Kotlin and Jetpack Compose today.

  • Kotlin
  • Java
  • Jetpack Compose
  • Android SDK
  • Gradle
  • R8
  • Mentrick

    20 games in Kotlin and Jetpack Compose, split into 33 Gradle modules

  • Moon Meet

    The Java original of the chat app, before the React Native rewrite

  • Sketchware Pro

    37 merged pull requests, including AAPT2 binaries for Android 11 and an R8 compile helper

On the web

On the web I work with React and its frameworks, including Next.js.

  • React
  • Next.js
  • HTML
  • CSS
  • PHP
  • Angular

I started on a phone

How I got from Sketchware to Kotlin and Swift.

  1. 2016-2017

    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.

  2. 2019

    Moon Meet started the same way, in Sketchware on my phone.

  3. 2020

    Moon Meet moved to Android Studio once I could export the project to a PC, and I dove into mobile development.

  4. 2021

    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.

  5. 2024

    I published otp-input before the baccalaureate and made Mentrick, first called PlayScope, after it. I earned four HackerRank certifications the same year.

  6. 2026

    I moved to macOS, with Xcode and Swift next to Android Studio, and published three React Native libraries.

HackerRank certifications2024

  • Software Engineer
  • Problem Solving
  • SQL
  • Python

Work or PFE?Let's talk.

rayensbai2@gmail.com

The short version

01

What are you looking for?

A job or a final-year internship (PFE) in mobile development.

02

When can you start?

A PFE can start in January 2027. For a job, let's talk.

03

Where?

On site in Sousse or Nabeul, or remote.

04

Which languages do you speak?

Arabic (native), English (professional) and French (basic).