Amr Shahin, Developer in Montreal, QC, Canada
Amr is available for hire
Hire Amr

Amr Shahin

Verified Expert  in Engineering

Software Developer

Location
Montreal, QC, Canada
Toptal Member Since
June 24, 2020

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

Verdant Environmental Technologies
Spark, Scala, Python, Java
Accu Solutions
MongoDB, Apache JMeter, Apache, Xdebug, PHP
JRD Group
Elasticsearch, Redis, Docker, Python, Java, MariaDB, PHP

Experience

Availability

Part-time

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

2017 - PRESENT
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.
Technologies: Spark, Scala, Python, Java

Technical Consultant

2016 - 2017
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.
Technologies: MongoDB, Apache JMeter, Apache, Xdebug, PHP

Head Of Software Engineering

2013 - 2016
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.
Technologies: Elasticsearch, Redis, Docker, Python, Java, MariaDB, PHP

Technical Lead

2013 - 2013
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.
Technologies: Magento, OpenERP, Python

Solution Architect

2011 - 2013
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.
Technologies: MongoDB, MySQL, Magento, PHP

Senior Software Engineer

2007 - 2011
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.
Technologies: JavaScript, MySQL, PHP

Associate Software Engineer

2006 - 2007
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.
Technologies: C++, C

Master's Thesis

Abstract:
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

With thousands of thermostats reporting at a fast pace, we needed a solution that can handle such amount of requests and still be near real-time. The project included introducing a very light-weight microservice whose job is solely storing data into Kafka and writing a series of consumers, each with a very specific job that rendered the old monolithic method obsolete and increased the request processing time by almost 40%.

Propspace CRM

http://www.propspace.com
With the client constantly needing to change the structure of a certain entry in the system to match their needs, using a classical CRM database was not sufficient. In Propspace, we used a plethora of technologies to guarantee that the system would satisfy all the client's needs while performing at lightening fast speed.

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

2017 - 2019

Master's Degree in Computer Science

Concordia University - Montreal, Quebec, Canada

2002 - 2006

Bachelor's Degree in Applied Computer Science

Hashmite Unversity - Amman, Jordan

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