Jawad Khan

React Native Developer · 6+ years · Ingolstadt, Germany

TypeScriptiOS & AndroidOffline-first architectureOn-device ML
About

Two products, both platforms.

I'm a React Native developer based in Ingolstadt. At 247 FactoryNet I'm responsible for the mobile side of two products: MICA, an app for people with phenylketonuria, and 247 UPTIME, a maintenance platform for industrial equipment. Both are used in places with no mobile signal, so both are built to work offline.

I studied software engineering in Pakistan, moved to Germany and completed my master's at TH Deggendorf. I joined 247 FactoryNet as a working student during my studies and became a full-time developer in November 2021.

I also build and publish my own apps. Fifteen are live on Google Play, four of them in German. Publishing them myself is how I learned release management, store compliance and in-app purchases.

The work I find most interesting involves unreliable networks and processing data on the device instead of sending it to a server.

Jawad Khan
Education
MSc Computer Science, Technische Hochschule Deggendorf, 2021
BSc Software Engineering, COMSATS University, 2017
Languages
English C1
German B1 — Goethe-Zertifikat, Goethe-Institut München
Urdu, native
Work
247 FactoryNet

247 FactoryNet GmbH

React Native / React Developer · Ingolstadt, Germany

Working student September 2019 · full-time since November 2021

MICA

Healthcare · rare disease

An app for people with phenylketonuria, a rare metabolic disorder. It helps them manage a low-protein diet, track daily phenylalanine intake, and request prescriptions from their metabolic centre.

  • Built the nutrition tracker: a food diary with a large ingredient catalogue, custom ingredients, meals and shakes, and cascading ingredient-to-meal updates
  • Designed the offline-first command-queue sync layer so diet, prescription and remittance workflows keep working without a network connection
  • Integrated Socket.IO chat, Firebase push and analytics, and biometric app lock across a multi-profile family app
  • Led the React Native 0.86 upgrade on iOS and Android, and shipped DE/EN localisation and deep-link authentication
React NativeTypeScriptSocket.IOFirebaseFace IDi18n

247 UPTIME

Industrial · B2B

A platform industrial companies use to organise machine incidents, planned maintenance, execution workflows and operational documentation across equipment, sites, areas and equipment pools.

  • Implemented workflow-based task execution and reporting with attachment handling, role-based access control and subscription-aware feature gating
  • Built authenticated REST integration with Axios interceptors and token refresh, plus Zustand store slices for offline-capable field work
  • Integrated Firebase Cloud Messaging, Socket.IO and MQTT for real-time fault and maintenance notifications
React NativeMQTTZustandAxiosRBACFCM

Gleason

Client secondment · Munich · 2022

Six months modernising a machine-tool manufacturer's legacy frontend.

  • Migrated a legacy AngularJS codebase to Angular 13, rebuilding the component and service layer with unit and integration tests in a TDD environment
Angular 13AngularJSTDD
How it works

Works with no connection.

Both platforms I work on are used where there is no signal — machine halls, clinic basements. Actions are stored locally as commands instead of being sent straight to the API, so the screen never waits on the network and the queue replays in order once the connection returns.

The console below runs that pattern. Press Go offline, keep using the buttons, then reconnect and watch the queue clear.

Online Pending 0

Actions from MICA

Each press writes a command locally first. The screen responds immediately whether or not there is a network.

Local command queue

Queue empty — press an action.
Simulation of the sync layer shipped in MICA and 247 UPTIME. Runs entirely in this page.
The problem

Technicians work in machine halls with no reception. Patients open the app in clinic basements. If a write fails because the network dropped, the user loses work they already did — and in a medical context they may not notice.

The approach

Nothing writes straight to the API. Every user action becomes a command persisted locally first, so the interface can respond immediately. A network listener drains the queue when the connection returns, replaying commands in the order they were created.

On-device

Speech to text. Zero bytes uploaded.

Model
Whisper Tiny, quantised for mobile
Runtime
ExecuTorch via react-native-executorch
Input
Recorded or imported MP3, M4A, WAV, OGG, MP4 from private local storage
Network use
None. No audio and no transcript leaves the device.
Shipped

Fifteen apps on Google Play.

I handle architecture, implementation, monetisation, store compliance and releases myself. Four are written in German. Seven of the fifteen are below; each opens its live listing.

Leben in Deutschland Test 2026

German market300+ questions · fully offline
Play ↗

Citizenship-test preparation with 300+ BAMF-based nationwide and state-specific questions, fully usable offline with federal-state selection. Four learning modes including a timed exam simulation, with per-answer feedback and progress tracking.

TranskriptGo: Sprache zu Text

German marketOn-device Whisper · no network
Play ↗

Whisper Tiny running locally through ExecuTorch. Reads MP3, M4A, WAV, OGG and MP4 from private storage, transcribes on the phone and exports plain text. No audio leaves the device.

Earthquake Alerts – Live

Live EMSC data · geofenced alerts
Play ↗

Real-time monitoring on EMSC data with map and list views, magnitude indicators and country filtering. Custom geofenced alert zones backed by a Cloudflare Worker that registers devices, polls live seismic data and dispatches targeted push notifications.

FeedNest: Baby Tracker

Local-first · in-app purchases
Play ↗

Feeding, sleep and diaper tracking with growth charts and multi-baby support, on local-first storage using Zustand and encrypted MMKV. RevenueCat purchases, Notifee push and PDF export.

Darf ich parken?

German marketCamera sign scanning
Play ↗

Scans German parking signs with the camera and tells the driver whether parking is allowed — reading restrictions, Parkscheibe requirements and permitted times. German-language interface throughout.

Spritpreise in der Nähe

German marketLive prices · geolocation
Play ↗

Compares current petrol and diesel prices and finds filling stations nearby, using live pricing data and the device's location. Built entirely in German for drivers in Germany.

Gold Calculator – Live Price

Finance · live spot pricing
Play ↗

Calculates gold value from live spot prices across all karat purities and major currencies, with a dark interface built in NativeWind. A companion Silver Calculator shares the same pricing and conversion engine.

See all on Google Play ↗

Toolkit

Toolset.

Mobile
  • React Native
  • TypeScript
  • React Navigation
  • React Native Paper
  • NativeWind
  • Internationalisation (DE / EN)
Device
  • Biometric auth (Face ID / Fingerprint)
  • Camera & media
  • Document & signature capture
  • Whisper via ExecuTorch
State & data
  • Zustand
  • Redux
  • React Context
  • Encrypted MMKV
  • AsyncStorage
  • REST
  • Axios
Realtime
  • Socket.IO
  • WebSockets
  • MQTT
  • Firebase Cloud Messaging
  • Notifee
Release
  • App Store Connect
  • TestFlight
  • Google Play Console
  • Staged rollouts
  • Store compliance
  • CI/CD pipelines
Testing
  • Maestro (end-to-end UI flows)
  • Unit & integration tests
Web & services
  • React JS
  • Angular 13
  • JavaScript ES6
  • Cloudflare Workers
  • RevenueCat
  • AdMob
  • MongoDB
  • MySQL

Let's talk.