Ayman Madkour, Developer in Cairo, Egypt
Ayman is available for hire
Hire Ayman

Ayman Madkour

Verified Expert  in Engineering

Cryptography Developer

Location
Cairo, Egypt
Toptal Member Since
April 30, 2018

Ayman is a professional Java developer with over eight years of experience—meaning that he's well versed with a variety of Java technologies (including Java SE, Java EE, JSF, EJB, JPA, Hibernate, Spring, Struts, etc.) as well as various databases (Oracle, MySQL, PostgreSQL, MongoDB). Ayman also is particularly skilled in front-end development involving HTML, CSS, JavaScript, and Angular.

Portfolio

Incorta
Apache ZooKeeper, Essbase, NetSuite, Oracle, Apache Derby, Oracle Database...
RMGS
Unix, FreeBSD, Apache Velocity, AngularJS, jQuery, JavaScript, CSS, HTML, Java
ASSET Technology Group
Oracle, Oracle Database, JPA, Hibernate, Spring, JSF, Apache Struts, Java

Experience

Availability

Part-time

Preferred Environment

Git, Eclipse, Linux

The most amazing...

...thing I’ve done was when, during my studies for my master's degree, I implemented several optimization and order-preserving encryption (OPE) algorithms.

Work Experience

Senior Software Engineer

2016 - PRESENT
Incorta
  • Contributed to the development, maintenance, and documentation of Incorta's multi-threaded ETL tool using Java and ZooKeeper, along with a team of three senior developers and one architect.
  • Analyzed, designed, developed, and documented Incorta's extensible data connector framework which provides a pluggable interface for data extraction connectors.
  • Evaluated, designed, and developed ETL data connector for a NetSuite web service (SuiteTalk) as well as a NetSuite ODBC (Suite Analytics) using Java. The connector was responsible for extracting data from NetSuite account database and injecting it into Incorta's data warehouse.
  • Analyzed, designed, and developed Oracle Essbase data extraction connector which is responsible for extracting data from Oracle Essbase cube using Java.
  • Analyzed, designed, and built cloud storage data extraction connectors (Google Drive, Dropbox and Box) using Java and OAuth.
Technologies: Apache ZooKeeper, Essbase, NetSuite, Oracle, Apache Derby, Oracle Database, MySQL, Apache Tomcat, Java

Senior Software Developer

2014 - 2016
RMGS
  • Joined a small team to develop a data backup solution for Asigra, using Java. The project involved some unusual FreeBSD tools and technologies such as VMs and disk arrays.
  • Led a team of five developers in the development and maintenance of several websites on the Clickability cloud CMS platform using HTML, CSS, JavaScript, jQuery, AngularJS, and Velocity templates.
  • Developed batch data processing tools for the Clickability cloud CMS using Java. These tools were used for batch importing/exporting content as well as batch content modification and publishing.
Technologies: Unix, FreeBSD, Apache Velocity, AngularJS, jQuery, JavaScript, CSS, HTML, Java

Senior Software Developer

2010 - 2014
ASSET Technology Group
  • Joined a small team that was responsible for the development of Vodafone Egypt's website using Oracle UCM. It was mainly an HTML template development project.
  • Contributed to the development and maintenance of Vodafone Egypt's Business Portal (Sherkety) application using Struts, Hibernate, WebLogic Portal and Oracle DB. It was a complex project that involved integration with multiple third-parties (web hosting, online accounting and CRM applications, etc.).
  • Analyzed, designed, and developed a store evaluation application for Etisalat Egypt using Spring, Hibernate, and Oracle Database. Responsibilities included leading a two-member team to implement the back-end, REST service and administration UI, and with another two-member team to implement the Android app used by onsite agents.
  • Worked with a large team in the build, maintenance, and customization of an e-government evaluation system using Struts, Hibernate, and Oracle Database. It was a long-running project that has been customized and re-sold for several governments in the Gulf area.
  • Worked with a new team on a new e-government evaluation system using JSF, JPA and Oracle DB; mainly for certain parts of the application involving complex logic such as formula parsing and evaluation.
  • Developed and maintained an eCommerce application for Etisalat Egypt using Struts, Oracle Database, and Konakart.
Technologies: Oracle, Oracle Database, JPA, Hibernate, Spring, JSF, Apache Struts, Java

Software Developer

2009 - 2010
Microtech
  • Contributed as a junior member of a large team to maintain and enhance the company's Infinity ERP system using Delphi and SQL Server.
  • Collaborated with a senior developer from Dezide (a partner company) to develop Dezide's document search engine. Responsibilities included the design and implementation the web interface using Java and Spring while another team member was responsible for the back-end (crawling, indexing, and more).
Technologies: Microsoft SQL Server, Spring, Java, Delphi

Communication Engineer

2007 - 2009
NTRA (Egypt)
  • Analyzed, designed, and developed a BTS station database with a web interface using Spring, Hibernate, and MySQL.
Technologies: MySQL, Hibernate, Spring, Java

Incorta ETL

Incorta is a very successful data analytics product that provides data analysts with a simple interface to collect data from multiple sources and collect it all in a central in-memory data warehouse; where they can run queries and build graphs, charts and other visualizations very quickly.

I was responsible for the ETL part of the product. I designed and developed a framework that allows pluggable components—called connectors—to be added to the product. A connector is responsible for extracting data from a specific source (e.g., a database or web service).

By creating an extensible framework for data extraction, it became possible to add dozens of new connectors easily.

Etisalat Egypt's Store Auditing Application

Etisalat Egypt is a mobile operator and it has stores in many locations. They wanted an application to be used by auditors who visit these stores for inspection.

The store auditing application had two parts: a back-end and administration interface part which was used by administrators to specify settings and auditing rules and criteria. The back-end also included a REST service.

The second part is an Android app that is used by the auditors onsite, where they could fill certain forms and submit them to the back-end via the REST service.

JGears Validator

https://github.com/jgears/jgears-validator/
JGears Validator is an open-source Java library for data validation. It supports different kinds of validation: primitive validation (numbers, text strings), regular expressions, size, collections of values, objects, and more. It also supports custom as well as default error messages for invalid input.

Languages

XML, HTML, Java, Java 8, Scala, CSS3, JavaScript, HTML5, SQL, CSS, Delphi, TypeScript, Python

Paradigms

Object-oriented Programming (OOP), Functional Programming, Concurrent Programming, Object-relational Mapping (ORM), REST

Other

Cryptography, WebLogic, Web Services, SOAP, EJB 3, NetSuite, Enterprise Java Beans (EJB)

Frameworks

Angular, Spring, JSF, Hibernate, JPA, AngularJS, Apache Velocity, Bootstrap, PrimeFaces, OAuth 2, Apache Struts

Libraries/APIs

Box API, Dropbox API, Facebook API, Google APIs, Spring REST, jQuery

Tools

Apache Tomcat, SoapUI, Git, GitHub, Eclipse IDE, Bitbucket, Java Concurrency, Apache ZooKeeper

Platforms

JBoss, Oracle Database, Windows, Linux, Eclipse, Oracle, FreeBSD, Unix, Android

Storage

PostgreSQL, MySQL, Apache Derby, Essbase, Microsoft SQL Server, MongoDB, Spring Data

2013 - 2018

Master's Degree in Computer Science

American University in Cairo | AUC - Cairo, Egypt

2010 - 2013

Graduate Diploma in Computer Science

Arab Academy for Science, Technology and Maritime Transport | AASTMT - Cairo, Egypt

2002 - 2007

Bachelor's Degree in Communication Engineering

Alexandria University - Alexandria, Egypt

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