Abdo Daoud
Abdo Daoud
I code and I cook
image.png

I build apps and stuff.


I'm a Mobile developer

I primarily build Android apps in Kotlin (from the alpha days), Java, and even a bit of React Native. I build databases using Realm and SQL. I make your little screens do backflips while you're on the toilet.

 

I'm also a designer.

I design user interfaces, iconography, and a bit of animation. I transform ideas into designs that look pretty and feel right on different devices.

 

Back-end developer.

Check. But it's been a while. I built APIs with Node.js and designed databases using MongoDB. It can be pretty MEAN if you ask me. Recently had a scratch for it, but focusing mostly on Machine Learning using Python.

 

I did some stuff.


UpHabit: Your Personal CRM

A personal customer/contact relationship manager
Jan 2018 - Present
Built with Kotlin, Retrofit, Realm, Dagger2, RxJava2
Get it on Google Play!

A little more info
Currently working with an awesome team trying to solve the problem that we all face in this modern day and age where you meet tons of amazing people be it colleagues, professors, peers, mentors etc. but we’re all too busy to stay in touch with them. We aim to build healthier habits to keep in touch with the people that matter the most. As for me, my focus when I started was to architect and develop the Android app and launch it. With that out of the way, and with the Android team growing (although I’m still actively developing more features and maintaining it), I’m shifting my focus into practical approaches to implement machine learning to make a better experience overall.

 

Myki: Offline Password Manager & Authenticator

A password manager and authenticator
Feb 2017 - Jan 2018
Built with Java8, Kotlin, Socket.io, Realm, Dagger2, RxJava2
Get it on Google Play!

A little more info
With over 100,000 installs on the Google Play Store (while I was there),  myki is a decentralized secure password manager and authenticator. Upon starting with myki I was tasked to take their existing beta code, rearchitect and rewrite the entire codebase structuring it to be clean and testable using MVP. This was all achieved in a span of 2 months upon which we finally went out of beta and released to the public. Growth has been steady and it has been an exciting journey to showcase my best work to the public. myki was also a great space for me to mentor and guide other android developers under my leadership.

 

Startup Weekend Beirut: AI Bootcamp

Gave an introductory lecture on Machine Learning
Sep 2017 - Sep 2017
Built with Python, SciKit-learn, Tensorflow, and Android
Event hosted on Facebook
Fork me on GitHub!

A little more info
I gave an introductory lecture on machine learning using Scikit-learn. I displayed how we could use different classifiers to train our models and to predict with training data to determine the accuracy as well as writing out own classifier. The workshop concluded with the participants being introduced to Google's open source library for machine learning, Tensorflow, by attempting to complete the Codelabs Tensorflow for poets and Tensorflow for poets 2: Optimize for Mobile.

 

Alizz Islamic Digital Bank

A mobile banking app
Jun 2016 - Jan 2017
Built with Java8, Android ndk, RxJava, Dagger, SQLCipher
Get it on Google Play!

A little more info
My last project before departing Ubanquity was a rewrite version 2 of the codebase to a new version 3, along with giving it a facelift that adheres to Google's  Material Guidelines for their latest client Alizz Islamic Bank. As part of the design team, we came up with the new fresh layout and improved UX. As the lead Android developer, I was tasked with rearchitecting it to be easily testable. I used MVP. All the networking and database calls were abstracted into a C++ library to be shared with iOS and Android. I used the Android NDK and JNI to communicate with the library.

 

Merlin (Deprecated/No longer maintained)

A fun facts app
Oct 2015 - Dec 2015
Built with Kotlin, Anko, Gson
Get it on Google Play!
Fork me on GitHub!

A little more info
After reading "Kotlin for Android Developers" I decided to write my first open source app entirely in Kotlin. The is pretty simple and scrapes data from the subreddit r/todayilearned using Reddit's open API to display a curated list of interesting fun facts. Chrome custom tabs was also used to open sources in-app for which the facts came from. I took it as a learning experience to also integrate Google's in app billing as a donation jar if a user wanted to give money. All proceeds would then go to a charity of my choice to aid in children's education. Received 1,000 installs during the first week of launch.

 

Ubanquity's Android Banking Apps (Version 2)

A collection of mobile banking apps
Oct 2014 - Jun 2016
Built with Java, Retrofit, SQLCipher
Get them on Google Play!

A little more info
Ubanquity is an omnichannel Banking solution. As a software engineer at Ubanquity, I worked on their Android apps for their clients SGBL, Bank al Etihad, and the Jordan Ahli Bank. The apps all were built using the same codebase but were packaged by flavor to make it easier to skin each with its own unique design as well as their distinctive features. The apps allowed the Bank customers to log in using a pin or their fingerprint, access their accounts, loans, cards etc. Perform transfers, transactions, pay bills and even apply to any of the products offered by the banks without ever leaving the app. Among other things, it contained personal finance and the ability to securely upload Government documents to its digital vault to be easily accessible when filling out applications. A map was also integrated showing all locations of the branches and ATMs, along with opening hours, contact info and even integration with the Uber API to request a ride there. You could even log in to their web client on your computer by directly scanning a QR code from the mobile app.

 

University Campus Guide

A mobile app to guide students on Campus
Jan 2013 - May 2013
Built with Java, Android, Google Maps v1 SDK

A little more info
Graduation project to showcase all of what we've learned throughout our undergraduate time at the American University of Beirut. My group and I built a platform to aid new students with courses, locations, and instructors on Campus. My core job was to build the Android app that communicates with a PHP server to retrieve data and store them onto the device. The  main feature consisted of a map of the campus (using the Google's Maps SDK) that overlayed markers of where certain classes were and where professor's office are with their office hours. I implemented Dijkstra's shortest path algorithm to display the shortest path from the user's current location to their desired destination.

 

Taure

No Windows? No problem, just watch me play it instead.

A 2.5D puzzle platformer
Nov 2012 - Apr 2013
Built with Photoshop, 3dsMax, and Unity3D
Play it on Windows

A little more info
Taure is a video game where you play as a tree spirit trying to save the forest from the destruction of machines. It's the brainchild of both I and my childhood friend Mohammad Maarouf. We wanted to make a video game during our senior year in university and decided to enter it in the Microsoft ImagineCup competition. We were awarded the Local Finalist in the Games Division.

I was the artist and co-game designer on the team. My job consisted of creating concept art using traditional and digital mediums, which in turn was used to create, texture, rig and animate models to be used as assets in the game. I was also in charge of coming up with the level design and game mechanics.

Rectangle.png

I've been through stuff.


I'm a self-driven Android Engineer with over four years of software development experience; developing and designing apps while keeping UI/UX, software architecture, security, and privacy in mind. I'm fascinated with machine learning and on a mission to build smarter, safer apps.

Skills & Tech

Networking: My go to has always been Retrofit and OKHttp when dealing with REST APIs. I've worked a lot using socket.io on past projects, and absolutely loved it. If there's any image loading involved, then I would tend to favour Picasso although ever since I switched to Glide, I haven't looked back.

Databases: On Android, I mostly work with Realm these days but I did use SQLite (and the extension SQLCipher) with previous projects. Dabbled a bit with Room, however, Realm is my go to. My professional database experience server-side has been with MongoDB.

Architecture: I started out using MVC back in the day like everyone else, but slowly shifted to MVP once I realized it was easier to write tests that way. Still trying to figure out MVVM and late into the ever blissful night you might witness me dabble with MVI. I'm also one of those masochistic people that enjoy building multi-module apps in order to maintain separation of concerns. Yes it means a lot of duplicated Gradle dependencies but I still believe it's worth it, especially in large projects.

Async: RxJava, RxAndroid, RxKotlin, RxAllTheThings...

Version Control: Git using either GitHub or GitLab (most of my work is in private repos). Mostly living in the command line using iTerm but sometimes I launch GitKraken for a pretty GUI.

Tools: macOS running Android Studio and Sketch for mobile design and dev, assets shared on InVison. Pixelmator, sometimes, if I'm ever feeling artsy. Sublime is my go-to editor for everything, although I occasionally run PyCharm for Python. Darcula always.

As well as: Gradle, XML, Firebase, Dagger, Kotlin Extensions, Auto-Value, POEditor, Outbound, Segment, Butterknife, Stetho, Leak Canary, JUnit, Mockito, Robolectric, Espresso, ZXing, Javascript. To be frank, I'm just shoving more keywords here.

 

Experience

Feb 2018 - Present: Senior Mobile Engineer @ UpHabit

  • Too busy building UpHabit's Android app to write anything here. Will eventually update this. Feel free to check it out right here!

Feb 2017 - Jan 2018: Lead Android Engineer @ myki

  • Built myki’s Password Manager & Authenticator with a heavy focus on encryption using Android’s KeyStore and Fingerprint API with end to end AES 256 encryption and cloudless decentralized authentication using RSA 2048.

  • Provided technical support, information and deciding on technologies about anything Android related as well as guiding team with upcoming features and other projects.

  • Mentored and guided other Android developers under my leadership.

Jun 2013 - Jan 2017: Software Engineer @ Ubanquity Systems

  • Started off in the development and testing a RESTful API built on the MEAN stack.

  • Moved to the Android project and with time became the lead for all the Android app related projects.

  • Effectively maintained the legacy code while migrated all existing clients and introduced new clients to the up-to-date software.

  • Designed and set up various features with a focus on security and encryption.

  • Developed from the ground up the company's latest app using MVP, with all the Android best practices for scaling, ease of use, and maintainability.

  • Trained and guided entry level developers with code reviews and in office lectures on best practices.

 

Education & professional Development

Sep 2014 - Nov 2014: Data Science Specialization @ Coursera
Fall 2009 - Spring 2013: B.S Computer Science @ American University of Beirut

 

Everything Else

Miscellaneous:

  • Agile

  • SCRUM

  • Test Driven Development (I try)

Languages:

  • English - fluent

  • Arabic - native

  • French - basic

  • Japanese - basic

 
Rectangle.png

Let's talk about stuff.


Name *
Name