Rabih Kodeih
Veteran Software Engineer
Fullstack Python/Javascript Engineer with Data Analytics and Machine Learning Background.
rabih.kodeih@gmail.com
Email Address
so:rabih.kodeih
Stack Oveflow Profile
gh:rabihkodeih
GitHub Profile
Education
-
American Universirty of Beirut
I graduated from AUB with a bachelor of engineering degree in computer and communication systems.
-
Beirut Arab University
I graduated form BAU with a master's degree in applied engineering mathematics.
Project Samples
-
Configurable Crawling Platform using Custom Selenium Scrappy Middleware | view
Company: esanjo.com | view
Technologies: Python Selenium Headless Chromium Scrapy
Project README file | view
At Esanjo, we were building camel.jobs, a curated jobs listing website. One of the major issues we faced early on was that we needed to crawl a big list of more than a 1000 company job board pages. Althoug we decided to use the powerful open source Scrapy framework, building lots of spiders for each job board was out of the question. We ended-up developing a sophisticated framework using x-path configuration files and a specially built Selenium python scrapy middleware to help crawl those highly dynamic job boards. We also built a set of comprehensive pipelines to normalize and filter job listing regions.
Role:
We designed and implemented the whole system, including deployment, containerization, logging analysis and deployment. -
Lunatap: Stripe Charger App | view
Company: esanjo.com | view
Technologies: Python Flask Django Stripe-API Redis React SeleniumFrom the lunatap website: You use Stripe for your online payments, why not take it everywhere else? Leave your bulky card machine behind. Login using your Stripe account, tap out an amount, type or scan your customer’s card and boom, money in your bank account.
Role:
We migrated the API of lunatap from an old php codebase to a modern Python/Flask code base. We wrote a whole suite of unit test and UI end-to-end test cases. We also implemented a backend for lunatap using Django with a multiple database configuration. Redis was also used to cache expensive requests and help scale the service. -
Online Dating Recommender System
Company: et3arraf.com | view
Technologies: Python Numpy RedisThis project was aimed at finding reliable recommendations for online daters from both genders. A specialized algorithm based on reciprocal collaborative filtering was used in addition to summary statistics per feature to generate the recommendations.
Role:
We designed and implemented the whole system. Including the web service, the actual logic, reporting and dashboard/UI. -
Online Dating Spam Detection
Company: et3arraf.com | view
Technologies: Python scikit-learnMost online dating sites have some spammers who try to lure non suspecting users into surrendering sensitive info as well as other potentially harmful activities. The main feature of this project was to reliably detect those spammers using a combination of hand engineered features such as text repeatability, occurrence of special words and a host of other minor features. A support vector machine was used to successfully detect the spamming activity in real-time.
Role:
We designed and implemented the whole system including the web-service, the dashboard/UI, reporting and alerting sub-systems. -
Muzeit | view
Company: Double-U | view
Technologies: Titanium Mobile VB.Net PythonOne of the more interesting projects I've worked on. The project mainly deals with music sharing as well as a song recommendation engine. There is an app (for all major mobile platforms) and a web-service along with a website for downloading and promoting the app. I was responsible for the backend development and scaling.
Role:
We designed and implemented the database sub-system including migrating data from Apple’s music datasource, the web-service, backup-scripts, caching, load-balancing/scaling. -
Hopecan
Company: Undisclosed
Technologies: Python Django jQueryThis is best described as a Kickstarter offshoot with a social twist.
Role:
We designed and implemented the whole system including front-end and back-end. -
TMSapp | view
Company: Tahwita Modern School | view
Technologies: Python Django jQuery BootstrapA school management system consisting mainly of an online agenda, scheduler, personalized teacher timetables and an online books section. An iOs/Android mobile application was also developed that mimicked the website functionality.
Role:
We designed and implemented the whole system including front-end and back-end, and the mobile app. -
SmartPlate
Company: Undisclosed
Technologies: Python CythonThe project's main aim was to design and implement a car number plate detection system in parking lots. I wrote very low level optimized code (using Cython) to implement and test a number of computer vision algorithms. We finally used a form of global energy minimization to detect the plate through recognizing adjacent plate numbers. Dynamic programming was used to perform the energy function minimization.
Role:
We designed and implemented the whole system including back-end web-service, reporting and dashboard/UI. -
Sentience
Company: taglogic | view
Technologies: Python Django NLTK jQueryThis is a typical machine learning project. We used a variation of Naive Bayes classifier to determine a continuous sentiment polarity of random sentences in the Arabic language. Supervised learning was used to train the system.
Role:
We designed and implemented the whole system including back-end web-service, reporting and dashboard/UI.