Amazon Web Services
Work as part of the AWS commerce platform team which generates, computes and adjusts the AWS services and AWS marketplace bills.
Software Development Engineer at AWS Commerce Platform - Berlin, Germany.
August 2019–August 2020
Work as part of the AWS commerce platform team which generates, computes and adjusts the AWS services and AWS marketplace bills.
Software Development Engineer at AWS Commerce Platform - Berlin, Germany.
August 2019–August 2020
Generate managing system for maintain the new EC2 service and Adding new features for EC2 core platform.
Software Development Engineer Intern at AWS EC2 - Cape Town South Africa.
August 2018–November 2018
Re-designed two existing EC2 APIs with a new logic and technologies for reading and creating Placement Groups, one of the core EC2 resources, in a new EC2 web service.
Software Development Engineer Intern at AWS EC2 - Cape Town South Africa.
August 2017–November 2017
ACM chapter algorithms training camp - 3 months at Alexandria University (Summer 2015).
Introduction for phone development by INOVA - 1 month at Alexandria University (Summer 2016) .
See where I spent time studying and gained early knowledge to prepare for my professional life.
Computer and Systems Engineering
2013 - 2019
IGCSE
2010 - 2013
See where I spent time studying and gained early knowledge to prepare for my professional life.
Graduation Project: Raven is a End-to-end encryption smart messaging android app with functionality: Emoji
prediction on text provide five emojis related to what user typed and Smart reply on text analyzes the incoming message and
suggests replies.
Technologies: android, Java, firebase, spark, REST API, E2EE, ML, nodejs/javascript, c++
A Drawing and Painting with Design and implement a GUI that
allows the following functionality for the user on all the shapes : Draw Color, Re size, Move,
and Delete. And allow the user to undo or redo any action performed, Dynamic Application
Extensions and plugins, Save and load Provide an option in GUI to save the drawing in XML
and JSON files.
Technologies: Java
Simple UI for using the database with complete
log of the operations done on the database through the DBMS, Operations include initiating
DB connections, query execution, errors and warnings, connections closing and Operations
timestamp by the use log4J package.
Technologies: Java
A Two pass assembler that converts SIC/XE instructions into object code
to be run using a SIC/XE simulator.
Technologies: C++
Syntax Directed Translation Scheme to convert Java code
to Java bytecode, performing necessary lexical, syntax and static semantic analysis (such as
type checking and Expressions Evaluation).
Technologies: C++
Pintos is a simple operating system framework for the 80x86 architecture. It supports
kernel threads, loading and running user programs, and a file system, but
it implements all of these in a very simple way.
Technologies: C
It is single player-game in which each clown carry two stacks of plates, and there
are a set of colored plates queues that fall down and he tries to catch them, if he
manage to collect three consecutive plates of the same color, then they are
vanished and his score increases. Complete log of the operations done on the game (e.g., user actions, objects
intersections, creation or reusing of objects) by Log4j package. The game support 3 levels of difficulties with so many criteria for difficulty.
Technologies: Java
SFG solver enable the user to draw the graph's nodes and put the gains on the edges by a very simple friendly GUI with all the modification function edit, delete and redraw nodes and edges. And a result view by all details needed to know the answer.
Technology used : Java
A Cmd user-interface Connect Four game implemented in C language, with the following features:
Computer player with a Minmax AI Algorithms and Two Player.
Player can undo and redo during playing.
Player also can save game and load Multiple of plays at any time.
Save and display a list with high scores achieved.
XML formatted configuration file.
Technology used : C
A Qt application with two versions to desktop and android. Features included:
rotation, zooming, saving and cropping of the image.
Technologies: C++
Android mobile application that uses the accelerometer sensor in the phone to calculate steps count, distance, speed and calories.
Technology used : Android
A command-line interpreter that provides a traditional user interface for the Unix operating system. It supports Interactive and Batch modes.
Technologies: C
A simulation of news bulletin board system. In this system there are several processes accessing the system, either getting the news from the system or updating the news. The system consist of a server and several remote clients that communicate with the server using the TCP/IP protocol suite.
Technologies: Java
E-library Android Mobile Application uses Google books API as the main database source with User customized features like a recommendation system based on history of the previous user session, favorite books and search to Show suggestions.
Technologies: Android, Java, REST-API and Spark
Programming Languages: Java, Ruby, C, C++, JavaScript
Design Concepts: API Design, OOP, UML, Design patterns
Software Development Frameworks: Agile/Scrum Methodology, TDD
AWS: S3, IAM, AWS Lambda, Amazon SWF, AWS Cloud Formation, Amazon CloudFront
Operational: CI/CD, Infrastructure as Code
Database Technologies: MySQL
Data Access Technologies: Spring Data JPA, Hibernate
Back-end Frameworks: Java Spring Framework, Google Guice
Front-end Frameworks: React, Redux, Saga
Mobile Technologies: Android
Source Code Control: Git
Operating Systems: Windows, Linux (Ubuntu), Mac OS
Other Technologies: LATEX, Unix tools and commands
Get in touch with me if you would like to do business together, share an idea or just say hello.