Ahmed Harmouche, Developer in Pécs, Hungary
Ahmed is available for hire
Hire Ahmed

Ahmed Harmouche

Verified Expert  in Engineering

Android Developer

Location
Pécs, Hungary
Toptal Member Since
February 1, 2022

Ahmed is a full-stack engineer with seven years of experience building applications for the photo and video editor apps and medical industry. He worked on award-winning Android applications with hundreds of thousands of monthly active users and has experience with the whole Firebase stack. Besides full-stack development, Ahmed enjoys low-level Android programming and graphics programming using Android NDK and OpenGL ES.

Portfolio

Fogale Optique
iOS, iOS Camera, Camera API, Unity, Virtual Reality (VR)
Marcin Tobala Digital Media
Android, Architecture, Kotlin, Firebase, Google Cloud, Amazon Web Services (AWS)
MySeat.com Media Inc.
Kotlin, Java, Android, Android Jetpack, Figma, Jetpack Compose

Experience

Availability

Full-time

Preferred Environment

MacOS, Git, Visual Studio Code (VS Code), Android Studio

The most amazing...

...thing I've developed is a multi-award winning photo editor application that has more than 10 million downloads.

Work Experience

iOS Developer

2024 - PRESENT
Fogale Optique
  • Researched and developed a GPU-based focus finder algorithm using Swift + Metal.
  • Architected and developed a photo stabilization algorithm using OpenCV.
  • Integrated a depth estimation neural network into the application.
  • Gave directions and suggestions to increase the efficiency of our development efforts.
Technologies: iOS, iOS Camera, Camera API, Unity, Virtual Reality (VR)

Senior Android Full-stack Developer

2024 - 2024
Marcin Tobala Digital Media
  • Wrote up the Firebase back-end architecture for a travel app with gamification elements.
  • Designed the NoSQL database schema, cloud functions, and storage layout.
  • Sketched out the offline behavior of the application.
  • Estimated the cost of the back-end services, including the DB, storage, cloud functions, and CDN.
Technologies: Android, Architecture, Kotlin, Firebase, Google Cloud, Amazon Web Services (AWS)

Senior Android Developer

2023 - 2023
MySeat.com Media Inc.
  • Developed features into various apps of the client's portfolio. I used Kotlin, Java, and Jetpack Compose combined with the classic Android View system.
  • Developed, tested, and deployed a major feature into one of the apps in the 1st week of the engagement.
  • Helped transition the codebase from legacy networking to Retrofit-based and from the Android View system to Jetpack Compose, and made various improvements.
Technologies: Kotlin, Java, Android, Android Jetpack, Figma, Jetpack Compose

iOS Developer

2023 - 2023
Honk Honk Punch Pty Ltd
  • Researched the Criminisi algorithm to implement it on Metal for iOS.
  • Ported a Lua and OpenGL-based Criminisi implementation to Metal for iOS.
  • Converted GLSL shaders to Metal Shading Language and translated Lua code to Swift.
  • Wrote a single-file Swift library that performs the Criminisi computation as a series of fragment shader executions. The library renders results to frame buffers and feeds intermediate buffers to subsequent computations.
Technologies: Image Processing, Machine Learning, Swift, Metal, iOS, ImageIO, Image Manipulation, 2D, WebGL, Shaders

Android Engineer

2022 - 2023
Cruise
  • Worked on the in-car experience team of Cruise. I was in charge of the in-car UX development of the Bolt and Origin vehicles.
  • Developed the first full-screen features of the in-car app in the Bolt vehicles deployed in San Francisco.
  • Built full-screen feature, a game that riders can play while they travel to their destination. I built it using Kotlin and Android Views. Kotlin Flows were used heavily.
  • Developed the FM music feature in the Bolt vehicle.
  • Wrote Jetpack Compose components for the new Origin vehicle's in-car experience. I developed the 1st trip experience and parts of Federal Motor Vehicle Safety Standards (FMVSS) self-certification.
Technologies: Android, Kotlin, Functional Reactive Programming, Android Architecture, Coroutines, Android Jetpack, Jetpack Compose, Mobile App Development, Mobile Development

Android Developer

2022 - 2022
Berbix
  • Worked on the client's Android SDK and refactored legacy code to modern standards for the image processing pipeline.
  • Reduced memory usage by architecting a reusable buffer system.
  • Resolved long-standing bugs related to memory exhaustion.
  • Prototyped a machine learning system for automatic object detection and recognition.
Technologies: Android, Android App Design, SDKs, Android Architecture, Architecture, Kotlin, Gradle, Image Processing, Firebase, Mobile App Development, Mobile Development

C++ Software Engineer

2021 - 2022
Varian Medical Systems International
  • Contributed to high and low-level parts of the software stack, wrote and designed UI elements in C++ and Qt, and worked on the DICOM layer.
  • Fixed numerous bugs in the Android app running on a handheld device.
  • Improved the overall responsiveness by eliminating ANRs and modernized the outdated app codebase.
Technologies: Qt, C++, Ubuntu, Linux, Android, Android SDK, Gradle, Git, Jenkins, Optical Systems, User Experience (UX), Full-stack, C++14, C++17, Mobile App Development, Leadership

Android Developer | Co-founder

2016 - 2021
VIMAGE App Ltd.
  • Developed a photo editor Android application and helped it become a leader in mobile photo animation, reaching more than five million downloads and winning multiple awards.
  • Trained and deployed a neural network with PyTorch that selects the sky on a photo. Wrote tools in Python and Java to scrape training data, process the scraped images, train the network, convert the network to TorchScript, and generate data for QA.
  • Developed a path-based animation tool using OpenGL ES and OpenCV for triangulation. To avoid the need to rewrite our whole rendering pipeline, I wrote a bridge to bring this tool into our Canvas-based library.
  • Built the asset handling stack, including the admin tools for asset uploading (JavaScript, Firebase SDK), the back end for asset processing mechanism (Node.js, Firebase Cloud Functions, DigitalOcean Spaces), and Android side asset caching.
  • Wrote a prototype iOS app that can apply dynamic GLSL shaders to photos. Wrote bridges to connect SwiftUI with GLKView and Swift with the underlying C++ rendering engine.
  • Brought a spin-off app from conception to production. Being the sole developer of the app, it reached more than 100,000 downloads. Built a cross-platform rendering engine in C++, wrote shaders, and built tooling scripts in Python.
  • Wrote a shader editor in JavaScript using Web Components, built a code editor with full GLSL syntax highlighting based on CodeMirror, and wrote automatic UI generation for the uniform parameters in the fragment shader.
  • Led a team of five developers, conducted the technical screening of our applicants, and came up with and evaluated the take-home exercises.
Technologies: Android SDK, Android NDK, OpenGL ES, PyTorch, Firebase, Node.js, JavaScript, Kotlin, Java, Gradle, JSON, HTML, CSS, HTML5, User Experience (UX), RxJava, GitHub, Android Development, Google Play Store, App Store, Android App Design, AVFoundation, Core Image, UIKit, Video Editing, React, 3D Graphics, Amazon Web Services (AWS), Full-stack, Electron, Xcode, Mobile App Development, Mobile Development, Image Processing, Machine Learning, Metal, Image Manipulation, Leadership, FFmpeg, Skia, x264, 2D, Technical Leadership, Shaders

Windows Phone Developer

2014 - 2016
Bitnet Group Ltd.
  • Developed online shopping applications for multi-national companies. Implemented multiple check-out mechanisms and worked with the PayPal API. Implemented an automatic background polling mechanism to sync the users' virtual basket with the back end.
  • Introduced a way to implement real-time barcode scanning in Windows Runtime apps. Before that, there were no working real-time solutions for barcode scanning, only for Silverlight applications.
  • Wrote an app with fully dynamic UI, where all the UI elements, screen flow, and actions were described by a JSON. Wrote a custom rich-text parser and renderer as part of this project.
Technologies: C#, Visual Studio, .NET, Mobile Development

VIMAGE App

https://play.google.com/store/apps/details?id=com.vimage.android
VIMAGE is an Android application that can animate photos.

I played a key role in handling the effect uploader, OpenGL ES-based rendering tools, our on-device sky segmentation neural network on PyTorch, Firebase back end, and admin tools. I led a team of five developers.

Expose App

https://play.google.com/store/apps/details?id=com.vimage.expose
Expose is a Koltin-based Android application that can apply GLSL shaders to photos, with the core rendering engine written in C++ to make it reusable and cross-platform.

I built a prototype shader editor in JavaScript, a prototype iOS app to showcase the cross-platform engine, and Python-based utility tools for shader processing.

MedNES

https://github.com/wpmed92/MedNES
An open-source, cross-platform NES emulator written in C++. It has 200 stars on GitHub and contributions received from other users. I ported it to the web by compiling it to WebAssembly using Emscripten.

Radiosheets

https://github.com/wpmed92/xreport
Radiosheets is a structured reporting platform for radiologists. It is a form builder tailored specifically to radiological use-cases.

I built a template builder and scripting language in JavaScript and shipped it as a library bundled with webpack. The app itself is a SPA built with Angular. I wrote an article about it in a peer-reviewed scientific journal called SoftwareX, made it open-source, and published it on GitHub.

Porting Stable Diffusion to tinygrad WebGPU

https://github.com/softwiredtech/stable-diffusion-webgpu
I ported Stable Diffusion to WebGPU using tinygrad. For this, I added support for multi-input model export and wrote f16 to f32 conversion WebGPU kernel for fast client-side model decompression. The model is exported in three parts: text model, diffusor, and decoder. These three nets are invokable separately from JavaScript. The number of steps and guidance are controllable parameters. The model is cached on the client side in IndexedDB. Only decompression is needed to run the model when cached so it won't be re-downloaded.

tinygrad WebGL Back End

https://github.com/tinygrad/tinygrad/blob/master/extra/backends/ops_webgl.py
I built a WebGL2 back end by emulating a general-purpose graphics processing unit (GPGPU) using textures and fragment shaders.

Runtime: https://github.com/tinygrad/tinygrad/blob/master/extra/backends/ops_webgl.py

GLSL CodeGen: https://github.com/tinygrad/tinygrad/blob/master/extra/backends/cstyle.py

YOLOv8 demo: https://github.com/softwiredtech/yolov8-tinygrad-webgl/tree/main
2017 - 2022

PhD in Medical Imaging

University of Pécs - Pécs, Hungary

2011 - 2017

Doctor of Medicine in Medicine

University of Pécs - Pécs, Hungary

Libraries/APIs

React, OpenGL ES, Node.js, Core Image, WebGL, FFmpeg, PyTorch, RxJava, WebGPU, Skia, x264, Three.js, Camera API

Tools

Android Studio, Android NDK, Gradle, NPM, GitHub, Git, Emscripten, Visual Studio, Jenkins, Webpack, Angular CLI, Android Jetpack, Xcode, Figma

Frameworks

Android SDK, UIKit, Electron, .NET, Qt, Angular, Metal, ImageIO, Unity

Languages

JavaScript, Kotlin, Java, C++, Python, Swift, C++14, C++17, C#, HTML, HTML5, CSS, TypeScript

Paradigms

Mobile Development, Functional Reactive Programming, GPGPU

Platforms

Firebase, Android, iOS, Amazon Web Services (AWS), MacOS, Visual Studio Code (VS Code), Ubuntu, Linux

Storage

JSON, Google Cloud

Other

Android Development, Video Editing, Image Manipulation, Mobile App Development, Stable Diffusion, Architecture, Google Play Store, Android App Design, Image Processing, AVFoundation, Full-stack, Jetpack Compose, Machine Learning, Shaders, Medical Imaging, WebAssembly, CTO, Leadership, User Experience (UX), Optical Systems, App Store, SDKs, Android Architecture, Coroutines, 3D Graphics, 2D, Technical Leadership, iOS Camera, Virtual Reality (VR)

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring