Amr Shahin
Verified Expert in Engineering
Software Developer
Amr is a hands-on software engineering manager with over 14 years of experience in technology, managerial, and data science. Amr has a Master's degree from Concordia University in Montreal; his Master's thesis was about using NLP to determine movie genres.
Portfolio
Experience
Availability
Preferred Environment
JetBrains, Linux
The most amazing...
...thing I coded was a neural network to determine movie genres based only on the script.
Work Experience
Data Engineer
Verdant Environmental Technologies
- Scaled the system to able to handle 100+ requests/second for tracking purposes.
- Introduced apache Kafka for stream processing to enable accessing stats about the system in a scalable manner.
- Designed and coded the client-side firmware, with responsible including OTA, reporting, alerts, and settings updates.
- Replaced the classic MySQL-based reporting system with Spark-based solution which exponentially increased the report generating speed.
- Built a plethora of reports based on sensor data collected from an IoT network, helping the sales and marketing present tangible numbers to the clients.
- Refactored out parts of the system into microservices.
- Distributed the system data into more agile storage services, including Redis and Dynamo.
- Supported the website http://www.thermostatsolutions.com both in terms of servers and code.
- Replaced outdated and unsuitable technologies with more modern and scalable systems.
- Created and implemented database designs and data models.
- Installed, upgraded, configured, and tuned Kafka, Node.js, and Docker systems and all associated middleware in LINUX and Windows environments.
- Built a data model to predict the savings our system could potentially save the client using machine learning.
Technical Consultant
Accu Solutions
- Managed the rewriting of hajezonline.com, a website that handles hotels booking specifically in the Middle East region.
- Trained the team members to use the latest technologies and use them properly.
- Introduced benchmarking tools to measure the performance, specifically PHP's Xdebug and Apache's JMeter.
- Switched the current classic architecture to microservice based architecture.
- Refactored the database to have a more modern schema, moved some of the data to MongoDB where appropriate.
- Recommended technology upgrades and complementary products that could improve security.
Head Of Software Engineering
JRD Group
- Coordinated efforts of 12 team members engaged in JRD Group project for solution development to hurdles to Propspace delivery.
- Introduced Agile methodology for handling internal and external requests.
- Introduced git-flow as the standard tool for branching and merging the code.
- Standardized the request process and requirement specifications to get the technical team focused purely on technology and innovation.
- Moved dedicated single-server hosting into N-tier cloud server setup.
- Replaced all single-server services to load-balanced services.
- Replaced single master MySQL database with MariaDB Galera Cluster.
- Created a production-matching local development environment to minimize bugs related to environment differences.
- Changed the deployment to be Docker-based.
- Refactored some of the outdated parts of the system to small scalable services.
- Introduced different data storage engines that suited the application more; most notably MongoDB and Elasticsearch.
- Replaced all-real-time setup with queued-oriented architecture to speed up the response time for the end-user.
- Developed team communications and information for daily meetings.
Technical Lead
Fetchr
- Designed the infrastructure for both local development and production environments to make the developer's' life easier.
- Designed and planned customizations for OpenERP to support logistics requirements and shipment tracking as well as Magento-OpenERP integration based on the event model Magento supports, for real-time order and status-management updates.
- Built Magento to support various stores for various clients with bi-lingual support.
- Presented business leaders with cost-benefit and return-on-investment estimations to drive project planning and execution.
Solution Architect
Vardot
- Led the team to rebuild idtag.com using Magento for the sake of ease of adding feature and much better reporting.
- Provided consultation to the client on deciding what features to add to idtag and with what priority.
- Tasked with finding, assigning topics, and arranging weekly sessions about the latest trends in web development.
- Started a company-wide code-sharing initiative by having an internal pear library where engineers shared their code.
- Participated in code reviews, with a focus on the code being reusable and unit-testable.
- Created the company-wide coding standard document.
- Provided consultation to various teams regarding coding standards and performance optimization.
- Worked with customers or prospective customers to develop integrated solutions and lead detailed architectural dialogues to facilitate the delivery of a comprehensive solution.
- Presented roadmap and technology infrastructure to customers, demonstrating deep familiarity with APIs, platform infrastructure, security, and integration capabilities.
Senior Software Engineer
Yahoo!
- Led the team responsible for releasing Yahoo! ysafe, the first product under yahoo.com to be released from the office in Amman.
- Rebuilt Yahoo people mover (the tool that Yahoo! user use to import contacts from other services), resulting in an exponential growth in successful imports and very high user satisfaction.
- Participated in building Yahoo! mail autocomplete menu, with the best speed and user experience possible.
- Provided consultation for the mail team on supporting Arabic in particular, and right-to-left languages in general.
- Built various features into Maktoob mail, including a new rich text editor, introducing jQuery to the codebase.
- Redesigned the infrastructure to use open source IMAP server dovecot and STMP postfix.
- Started the Maktoob coding-contest to spread good coding standard and healthy competition within the team.
- Built a new registration system from the ground up with full support for Arabic usernames.
- Tested troubleshooting methods, devised innovative solutions, and documented resolutions for inclusion in the knowledge base for support team use.
- Coordinated with the team leads to evaluate and improve software interfaces.
Associate Software Engineer
Arabic Textware
- Optimized parts of the software by rewriting the code or changing the compiler configuration which increased the system speed.
- Created a common Arabic mistakes handler which dramatically increased the search results without affecting the accuracy.
- Rewrote the query parser to provide more accurate results to the end user.
- Introduced the usage of latest technologies; most notably Libboost (was the hot new library back then) and perlcc.
Experience
Master's Thesis
The advent of natural language processing (NLP) and deep learning allows us to achieve tasks that sounded impossible about 10 years ago. One of those tasks is genre classification for large bodies of text. Movies, books, novels, and various other texts, more often than not, belong to one or more genres. The purpose of this research is to classify those texts into their genres while also calculating the weighted presence of this genre in the aforementioned texts. Movies, in particular, are classified into genres, mostly for marketing purposes, and with no indication on which genre is the most autocratic.
In this thesis, we research various methods of classifying movies based on their script using deep neural networks. The results were obtained by training convolutional neural networks (ConvNet or CNN) and hierarchical attention networks (HAN) and compare their performance to the de-facto architectures for NLP, namely recurrent neural networks (RNN) and attention models.
The model was able to achieve 92% test accuracy and correctly labeled movies like “Godfather” to drama + action, “Dumb and Dumber” to comedy, and “Lincoln” to politics + action.
Packet Analyzer
Propspace CRM
http://www.propspace.comSkills
Languages
PHP 7, Python 3, Java, Scala, Python, PHP, JavaScript, C, C++
Paradigms
Agile
Platforms
Linux, Docker, OpenERP, Magento
Storage
MySQL, Elasticsearch, MongoDB, MariaDB, Redis
Frameworks
Spark, Spring
Tools
JetBrains, Xdebug, Apache, Apache JMeter
Other
OOP Designs
Education
Master's Degree in Computer Science
Concordia University - Montreal, Quebec, Canada
Bachelor's Degree in Applied Computer Science
Hashmite Unversity - Amman, Jordan
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring