Senior Mobile Engineer, Flutter Jakarta, Indonesia ·

Ilham Taufiqurrahman Salim

I build and migrate Flutter apps, and stay with them after release.

Since 2020 I've worked on Flutter apps for car rental, retail, healthcare and now hotels. Much of that work was migration: TRACtoGO from React Native, and Majoo from native Android. I also own the release side, from store builds to app protection.

Portrait of Ilham Taufiqurrahman Salim
Now
Mobile Developer at Sentinel Tech
Experience
6+ years in mobile, four companies
Shipped
7+ production apps
Contact
Email, Resume (opens in a new tab)

01

About

Most of my work has been on apps that were already live. I moved them to Flutter and kept them running for the people who use them every day.

I started with Flutter at Majoo in 2020, helping move a native Android point-of-sale app to Flutter for both phones and tablets. Since then I've taken over a healthcare app from a previous vendor at Aleph Labs, helped migrate TRACtoGO from React Native at SERA, and now work on a white-label hotel app at Sentinel Tech.

I care about code the next engineer can work in. In practice that means a clear architecture, and fixing production issues at the cause instead of around it.

How I work

  1. Migrate without stopping the product

    Features keep working while the codebase changes underneath. I've done this with React Native, native Android and Kotlin apps.

  2. One codebase, many shapes

    Layouts that respond to the space they get, and brands that come from configuration instead of forks.

  3. Release is part of the job

    I handle store releases and app protection, and I stay on to fix what breaks after launch.

  4. Leave the code better

    Refactoring inherited code so the next feature costs less to build.

I studied Computer Science at Binus University (B.Sc., GPA 3.61).

02

Experience

  1. May 2026 – Present Current

    Sentinel Tech

    Mobile Developer

    • Collaborating on a white-label Flutter app for hotel brands: one codebase with CMS-driven theming (colors, fonts, icons, assets) and per-brand builds, so a new hotel app ships through configuration rather than new code.
    • Built and maintain internal support applications, including systems already migrated or being migrated to Flutter.
    • Contributed to migrating the Membership Admin application from Kotlin to Flutter.

    Flutter, Dart, Kotlin, CMS integration, shell scripting, CI/CD

  2. May 2024 – May 2026 2 yrs

    PT Serasi Auto Raya (SERA)

    Mobile Developer

    • Contributed to migrating the TRACtoGO app from React Native to Flutter, through to a stable production release on the App Store and Google Play.
    • Strengthened app security with anti-tampering mechanisms and other app protection measures.
    • Maintained and improved existing features through bug fixes, UI improvements and production issue resolution.

    Flutter, Dart, Bloc / Cubit, Dio, REST APIs, platform channels, App Store, Google Play

  3. May 2023 – Nov 2023 6 mos

    Aleph Labs Indonesia

    Flutter Developer

    • Took over development of U by Prodia for Health Experts from the previous vendor and kept delivery on track.
    • Refactored existing Flutter code to improve code quality, maintainability and architecture.
    • Optimized UI performance for a smoother, more responsive experience.

    Flutter, Dart, REST APIs, WebSocket

  4. Feb 2020 – Jan 2023 3 yrs

    Majoo

    Senior Mobile Engineer

    • Contributed to migrating the Majoo app from native Android to Flutter, establishing a cross-platform codebase.
    • Built responsive layouts so the same app works well on both tablets and smartphones.
    • Built and maintained point-of-sale and business transaction features, including UI, API integration and ongoing fixes.

    Flutter, Dart, Android (Java / Kotlin), REST APIs, POS hardware integration, platform channels

03

Selected work

Three projects in more depth, then the other apps I've shipped. Screenshots are from the published apps.

Sentinel Tech

2026 – Present

In development

One Flutter codebase, many hotel brands

Problem
Each hotel brand needs its own app with its own name, colors, fonts, icons and bundle ID. A separate codebase per brand would multiply every fix and feature.
My part
Worked with the backend and CMS teams to bring brand configuration into the app, and wrote the shell script that applies a brand's configuration before the build runs.
Result
A new branded app is a configuration change, not a fork. CI/CD builds every brand from the same source with its own settings.
  1. CMS Brand configuration colors · fonts · icons · assets · bundle ID
  2. Pre-build script Applies the brand to the project no source changes per brand
  3. CI/CD One build per brand same codebase, own store listing

SERA · TRAC (Astra)

2024 – 2026

Moving TRACtoGO from React Native to Flutter

Problem
A live rental app for business trips and family holidays had to be rebuilt in Flutter without losing its core features, and be stable enough to replace the version already in the stores.
My part
Built features and API integrations in Flutter, fixed bugs through the migration, and added anti-tampering and other app protection.
Result
The Flutter version shipped as a stable release on Google Play and the App Store. I stayed on to maintain it and resolve post-launch issues.

Flutter, Bloc / Cubit, Dio, platform channels

TRACtoGO home screen with rental services and promos TRACtoGO car rental search results TRACtoGO login screen TRACtoGO splash screen

Majoo

2020 – 2023

A point-of-sale app for phones and tablets, from one codebase

Problem
Majoo's business app for Indonesian SMEs (POS, inventory and analytics) was native Android. It had to move to Flutter and serve phones and tablets, whose layouts are very different, without separate implementations.
My part
Rebuilt features in Flutter, and built responsive layouts from reusable components that adapt to the available screen space rather than the device type. Built and maintained POS and transaction features.
Result
The app moved to Flutter with phone and tablet interfaces in the same codebase, which reduced the need for device-specific implementations.

Flutter, Android (Java / Kotlin), platform channels, POS hardware integration

Majoo cashier screen on a phone Majoo on tablet: customer loyalty features Majoo on tablet: staff attendance Majoo store banner: complete business app for entrepreneurs

Other shipped apps

04

Expertise

Building the app

Bloc / Cubit, clean architecture
State and layers that stay readable as the app grows; refactored inherited code at Aleph Labs.
Responsive phone & tablet UI
Majoo's POS, with layouts that adapt to the available space.
REST with Dio, WebSocket
API integration in every app; real-time chat in U by Prodia.
UI performance
Smoother, more responsive screens in an existing codebase at Aleph Labs.

Migrating & native

React Native → Flutter
TRACtoGO, through to production on both stores.
Android (Java / Kotlin) → Flutter
Majoo's POS app; Membership Admin at Sentinel Tech.
Platform channels
Native code where Flutter alone isn't enough, including POS hardware.

Shipping

App Store & Google Play
Store releases across 7+ production apps, and post-launch support.
App security
Anti-tampering and app protection on TRACtoGO.
CI/CD, white-label builds
Per-brand configuration applied by script before each build.

Also worked with Firebase, push notifications, payment gateways and SwiftUI.

05

Contact

If you're building something in Flutter, or planning a move to it, I'd like to hear about it.