Data Engineer2017 - PRESENTVerdant Environmental Technologies
Technologies: Spark, Scala, Python, Java
- 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 Consultant2016 - 2017Accu Solutions
Technologies: MongoDB, Apache JMeter, Apache, Xdebug, PHP
- 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 Engineering2013 - 2016JRD Group
Technologies: Elasticsearch, Redis, Docker, Python, Java, MariaDB, PHP
- 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 Lead2013 - 2013Fetchr
Technologies: Magento, OpenERP, Python
- 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 Architect2011 - 2013Vardot
Technologies: MongoDB, MySQL, Magento, PHP
- 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 Engineer2007 - 2011Yahoo!
- 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 Engineer2006 - 2007Arabic Textware
Technologies: C++, C
- 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.