Amr Shahin, Software Developer in Montreal, QC, Canada
Amr Shahin

Software Developer in Montreal, QC, Canada

Member since August 13, 2019
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.
Amr is now available for hire

Portfolio

Experience

Location

Montreal, QC, Canada

Availability

Part-time

Preferred Environment

Linux, JetBrains IDE

The most amazing...

...thing I coded was a neural network to determine movie genres based only on the script.

Employment

  • 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: Java, Python, Scala, Spark
  • 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: PHP, Xdebug, Apache, JMeter, MongoDB
  • 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: PHP, MariaDB, Java, Python, Docker, Redis, Elasticsearch
  • 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: Python, OpenERP, Magento
  • 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: PHP, Magento, MySQL, MongoDB
  • 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: PHP, MySQL, JavaScript
  • 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++

Experience

  • Master's Thesis (Other amazing things)

    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 (Development)

    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 (Development)
    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.

Skills

  • Languages

    PHP 7, Python 3, Java, Scala
  • Paradigms

    Agile
  • Platforms

    Linux
  • Storage

    MySQL, Elasticsearch, MongoDB
  • Frameworks

    Spark, Spring
  • Other

    OOP Designs

Education

  • Master's degree in Computer Science
    2017 - 2019
    Concordia University - Montreal, Quebec, Canada
  • Bachelor's degree in Applied Computer Science
    2002 - 2006
    Hashmite Unversity - Amman, Jordan

To view more profiles

Join Toptal
Share it with others