ysf.slm
Full portfolio Résumé
Yousof Selim
FIG. 01 — YOUSOF SELIM

Portfolio / the short version

Yousof Selim

Mobile & Full-Stack Developer

Subang Jaya / Kuala Lumpur, Malaysia · Full-time internship — January to April 2027

Software Engineering student at Sunway University and Lancaster University, building products that reach real stores rather than demos that reach a repository. The work runs across a Flutter expense app live on the App Store and Google Play, native iOS and Android widget extensions written outside the framework, a local-first Electron and WebGL2 photobooth live in the browser and packaged for desktop, and the Firebase backends — Cloud Functions and Firestore Security Rules — sitting behind them. The through-line is end-to-end ownership: the data model, the rules that guard it, the interface, the tests, and the release that puts it in someone's hands. Not all of it is solo: four of these repositories are shared with other developers — including a redesign built inside someone else's Next.js codebase and merged to their main, and a game whose branch-and-pull-request workflow I set up for the team that used it.

The long version, with the case studies

Cross-platform mobile productsNative iOS and Android surfacesBackends, data and rulesReal-time graphics and desktopApplied AI in productsRelease and product operations

Get in touch See the work

01 At a glance

01Product live on the App Store and Google Play
03Cross-platform products owned end to end, solo
146Accounts registered in Bupples
61Hangouts real people created in it
117Tests protecting Adelante's content contracts
04Codebases shared with other developers
iOS · ANDROID · WEBPlatforms with something live and reachable
1.2.5Bupples on the App Store, released 27 July 2026
AUG 2027BSc Software Engineering (Hons) — Sunway University / Lancaster University
JAN—APR 2027Available for a full-time internship

02 Selected work

Each of these was designed, engineered, tested and released by me. Every number below is one I can show you where to check.

The Bupples profile screen on a phone. Below the member's name and handle sit two separate balance chips — "you're owed RM17.50" in green and "you owe USD 10.20" in red — above a grid of statistics: hangouts this month, biggest night, most split with, and a running weekend streak.

Bupples

February 2026 – Present

Group expense splitting with a cent-exact multi-currency ledger and scanned receipts.

RoleSole developer — product design, Flutter client, Firebase backend, security rules, release

iOSAndroid

  • Shipped, on both stores. Live on the App Store as a Finance app, free, minimum iOS 15.5, first released 2 July 2026, and on Google Play under com.bupples.bupples.
  • The scope one person carried. 656 Dart files and around 250,000 lines under lib/, roughly 30,000 lines of TypeScript in the functions codebase, 99 deployed Cloud Function handlers, 25 top-level Firestore collections with 30 nested rule blocks, 2,254 lines of security rules and 16 composite indexes.
  • Operational control without a store release. Fifteen Remote Config parameters gate the assistant, receipt scanning, nudges, the paywall, maintenance mode, a version gate and update prompts, with a client-side gate that renders maintenance, force-update and degraded states.

Flutter / DartRiverpodFirestore + Security RulesCloud Functions (Node 22, TypeScript)Firebase Auth, Storage, Messaging, Remote Config, CrashlyticsVertex AI — Gemini 2.5 FlashGoogle ML Kit text recognition (on device)RevenueCatSwift / SwiftUI / WidgetKitKotlin / Android RemoteViewsFirebase Hosting

The Adelante Today screen on a phone. A single quote — "When you hold power over someone, hold it the way you would hold water." — is set large in italic under a Religious category chip, with its source, Adelante · Original Adelante, beneath it, then share, favourite and reshuffle buttons. A row below reads "Customize your widget — Transparent Glass · style, source, and timing".

Adelante

June 2026 – Present

Widget-first motivation for iOS and Android, read from the Home Screen.

RoleSole developer — Flutter app, both native widget renderers, the content pipeline, and the backend design

iOS 16+Android

  • iOS builds current; the Android artifact is stale. build/ios/Release-iphoneos holds Runner.app and AdelanteWidgets.appex with dSYMs, both dated 2026-07-18. build/app/outputs/flutter-apk holds a release APK, but it is dated 2026-06-21 — before the nineteen commits of 2026-07-18 that rewrote the payload, tiering, rotation and the Android provider — so nothing on disk demonstrates the current Android code compiles.
  • Seven widget families from one set of views. The bundle declares systemSmall, systemMedium, systemLarge and systemExtraLarge plus accessoryInline, accessoryCircular and accessoryRectangular, and applies containerBackground(for: .widget) with a pre-iOS-17 fallback — which is what makes the same views legal in StandBy, since iOS 17 and later reuse those families there.
  • 12,828 entries, no duplicate text. The shipped library holds 12,828 entries with 12,828 unique ids and 12,828 unique texts across 20 categories, and five traditions clearing the 500-per-category floor the pipeline was built to reach: islam 599, judaism 559, christianity 559, hinduism 558, buddhism 552.

Flutter 3.44.1Dart 3.12.1Riverpod 3Swift / SwiftUIWidgetKitKotlinAndroid RemoteViewshome_widgetTypeScriptNode.js 20Firebase Cloud Functions (v2)Firestore

The Photoshoot capture window: a dark viewfinder marked REC with an ISO 400 · F/1.8 · ON-DEVICE readout, a row of effect swatches, a red shutter button, and a four-frame paper strip printed PHOTO·SHOOT alongside it.

Photoshoot

June 2026

A photobooth for desktop and browser that never sends a camera frame anywhere.

RoleSole developer — graphics pipeline, security model, both runtimes, deployment

Web (WebGL2 browsers)Desktop (Electron) — built from source, not released

  • Deployed, and current with the source. The web app is live and the deployment matches HEAD exactly: the served document references the same content-hashed filenames the local build produces, and the host's last-modified timestamp is thirteen seconds after the final commit.
  • Seventeen effects and eight face effects, all on-device. The registry holds 26 entries: one pass-through, 17 GLSL effects and 8 MediaPipe face effects, plus a 27th shader for the audited custom-filter program.
  • One runtime dependency, and no shipped assets. @mediapipe/tasks-vision is the only entry under dependencies; everything else is a devDependency.

TypeScript 5.6 (strict)Electron 31WebGL2 · GLSL ES 3.00MediaPipe Tasks Vision — FaceLandmarkeresbuildWeb Audio APICanvas2D · MediaRecorderIndexedDB · localStorageFirebase Hosting

03 What I can build

The things I can take from an empty repository to a release, and what I use to do it.

Cross-platform mobile products

Take a Flutter application from an empty repository to a listing on both the App Store and Google Play, including the signing, the store paperwork, and the update cadence afterwards.

FlutterDartRiverpodFirebaseXcode

Native iOS and Android surfaces

Leave the framework where the framework cannot go — Home Screen, Lock Screen and StandBy widgets written natively on each platform and wired back into a shared app.

SwiftSwiftUIWidgetKitKotlinAndroid RemoteViews

Backends, data and rules

Model the data, move the writes that decide anything into server-side functions, and constrain the rest with security rules instead of trusting the client.

FirestoreCloud FunctionsNode.jsREST APIsApp Check

Real-time graphics and desktop

Build interfaces that run on the GPU and ship as a desktop binary as readily as a web page, with the process boundaries locked down.

TypeScriptJavaScriptElectronWebGL2GLSLHTML/CSSGodot EnginePython

Applied AI in products

Put a model where it does a job a user can check — reading a receipt into structured line items, tracking a face on-device — rather than where it decides a number.

Vertex AIGeminiMediaPipe

Release and product operations

Run the unglamorous half — versioning, subscriptions, remote flags, design handoff, and the release itself — so a build can be shipped on a schedule rather than when it happens to be ready.

Git/GitHubRevenueCatRemote ConfigFigma

04 Education

  1. Expected August 2027

    Bachelor of Software Engineering (Hons)

    Sunway University / Lancaster University · Subang Jaya, Malaysia

    In progress

    Programming Principles (A+)Software EngineeringObject-Oriented Programming FundamentalsDatabase Management Systems (A−)Web Fundamentals (A−)Networking Principles (A−)Operating System FundamentalsComputer OrganisationComputer Mathematics

  2. May 2023 — Aug 2024

    Foundation in Information Technology

    Multimedia University · Cyberjaya, Malaysia

    Completed — CGPA 3.41

    Mini IT Project (A+)Problem Solving and Program Design (A−)Introduction to Computing Technologies (A−)Multimedia Fundamentals (A−)Introduction to Digital SystemsMathematics I (A) · II · IIIPrinciples of Physics

  3. 2022

    Cambridge IGCSE (9–1)

    Cambridge Assessment International Education · Al-Kon International School

    Completed

    Computer Science (8)Biology (8)Physics (7)Mathematics (6)English as a Second Language (6)

05 The record

  1. Feb 2026 — Present

    Sole developer

    Independent products · Subang Jaya, Malaysia

    Three products taken from an empty repository to a release, each owned end to end — product design, client, backend, security rules, store paperwork and the update cadence afterwards.

    • Bupples · Feb 2026 — Present. Built and launched a social expense-sharing product for iOS and Android, owning product design, Flutter development, Firebase backend architecture, security, and release workflows.
    • Adelante · Jun 2026 — Present. Built a privacy-first motivation app with native WidgetKit/SwiftUI and Android RemoteViews widgets for the Home Screen, Lock Screen, and StandBy — without accounts, analytics, or ads.
    • Photoshoot · Jun 2026 — Present. Built and deployed a browser and desktop photobooth with single-shot, four-shot strip, and video modes, plus 17 real-time GLSL effects and 8 on-device MediaPipe face effects.
  2. Jan 2026 — Present

    Digital Marketing Executive

    Sunway Cybersecurity Club · Subang Jaya, Malaysia

    • Planned 10+ LinkedIn posts and campaign assets, coordinating the club's content calendar for recruitment, events, awards, and industry activities.
    • Produced recruitment, industry-visit, award-announcement, and event-recap graphics in Canva while collaborating with the committee and external partners.

    CanvaLinkedIn

06 Right now

Building

  • Bupples Maintaining the shipped product.
  • CodeAtlas Evidence for what a code change actually does — a change-intelligence system for TypeScript and JavaScript that maps a change through the codebase, picks the tests that can explain its impact, compares behaviour across base and head, and packages the result as a signed Change Passport. *In design and documentation, not a service:* there is no hosted app, no GitHub App, and the runner is local-only.
  • Adelante Widget-first motivation app for iOS and Android: native WidgetKit and RemoteViews surfaces over a scheduled Firebase content pipeline, with no accounts, analytics or ads.
  • Photoshoot Shipped in June 2026 and live in the browser: a local-first Electron and WebGL2 photobooth with 17 real-time GLSL effects and 8 on-device MediaPipe face effects.

Studying

  • BSc Software Engineering (Hons) — Sunway University / Lancaster University Software Architecture, Data Structures, Mobile Development, Databases, and UI/UX Design.

Looking for

  • A full-time software engineering internship, January to April 2027 Subang Jaya or Kuala Lumpur, Malaysia.

Exploring

  • Inference that runs on the device MediaPipe face effects executing locally in Photoshoot, so a camera frame never has to be uploaded to become useful.
  • Model output as structured data, not prose Gemini receipt extraction in Bupples: the model reads a photographed receipt into line items, and the ledger still does the money.
  • Widgets as the product surface Home Screen, Lock Screen and StandBy as places a product lives rather than shortcuts into it — which means two native implementations instead of one shared screen.

07 Contact

Available for a full-time software engineering internship, January to April 2027, in Subang Jaya / Kuala Lumpur, Malaysia.

yousofselim2@gmail.com

This is the short version. The full portfolio carries the case studies — the problem, the architecture, what each decision cost, and how it was tested.

Designed and built by hand · 2026 · Full portfolio