Ameer Nasrallah, Developer in Ramallah, Israel
Ameer is available for hire
Hire Ameer

Ameer Nasrallah

Verified Expert  in Engineering

Technical Leadership Developer

Location
Ramallah, Israel
Toptal Member Since
January 25, 2017

Since 2013, Ameer has worked as a software engineer developing many end-to-end features. He is a self-motivated, quick learner who focuses on delivering high-quality and maintainable components. Most of Ameer's experience is in Java, and he is paving a fast path to full-stack development using the Spring Framework and modern JavaScript libraries such as React.

Portfolio

Freightos
Hibernate, Spring, SuiteScript 1, NetSuite, Apache Camel
Exalt
ELK (Elastic Stack), Apache Kafka, Spark, Hadoop, Docker Swarm, Docker, MongoDB...
Freightos
GWT, Google Cloud SDK, Google Cloud Datastore, Sass, JavaScript...

Experience

Availability

Part-time

Preferred Environment

Sublime Text, Visual Studio, IntelliJ IDEA

The most amazing...

...thing I've built is an online marketplace payment system, including proper fallback mechanisms.

Work Experience

Senior Software Engineer

2018 - PRESENT
Freightos
  • Built a REST API using Spring and Apache Camel that integrates with a NetSuite SuiteScript to download a statement of account for marketplace customers.
  • Worked closely with the finance department to integrate marketplace operations with NetSuite financial transactions and ensure data integrity.
  • Built a REST API to integrate with Kantox Dynamic Hedging which helps to manage the risk of foreign exchange in the marketplace.
  • Added a Hibernate validation layer to the existing integration framework (which uses Apache Camel).
  • Exposed NetSuite resources as REST APIs to be used from any team/project.
Technologies: Hibernate, Spring, SuiteScript 1, NetSuite, Apache Camel

Senior Software Enigeer

2017 - 2018
Exalt
  • Designed and implemented the back-end to work on the microservices architecture using Spring Boot, MongoDB, and Netflix opensource projects.
  • Built REST APIs and managed the security using OAuth2 and JWT tokens (verification using RSA private/public keys).
  • Designed the architecture for a back-end integration with a BI tool. This will be used to enable SSO and to embed BI dashboards on the front-end.
  • Supported the fast deployment of the back-end using Docker Swarm.
  • Worked a little with big data technologies (e.g., Hadoop, Cloudera Impala, Spark, and Kafka) which form the lower layer in the project.
Technologies: ELK (Elastic Stack), Apache Kafka, Spark, Hadoop, Docker Swarm, Docker, MongoDB, Spring Boot

R&D Engineer

2014 - 2016
Freightos
  • Developed components while building a web framework using Java and GWT (similar to the Ruby on Rails framework).
  • Designed and implemented customers' features from end-to-end.
  • Refactored old areas to increase their usability; e.g., used the strategy design pattern to redesign a certain client component—enabling it to be used seamlessly across the system.
  • Designed and implemented a marketplace payment system (using the Stripe Java API).
  • Won the award, the Freightos Code Ninja 2016 which meant that with every task, I had fixed related code and improved the system; not only code but the documentation too!
Technologies: GWT, Google Cloud SDK, Google Cloud Datastore, Sass, JavaScript, Jakarta Server Pages (JSP), Google App Engine, Docker, Java

Software Developer

2013 - 2014
Exalt
  • Developed web applications using mainly GWT and ASP.NET MVC.
  • Generated business PDF documents using XSL templates.
  • Worked a little on Android projects.
Technologies: Spring, GWT, C#, XSL, Java

Integrated a Payment Workflow for a Marketplace

Developed a payment system for a freight marketplace (Ship.freightos.com) using Stripe Payment Gateway and Zoho Invoice.

The first part of the project was to enable business and person entities (vendors/shippers) to send/receive payments either online (Stripe Java API) or by wire transfer through our platform (the marketplace & the SaaS site but mainly the marketplace). This part included making a proper design that ensures secure payments and confidentiality—a proper data model that integrates easily with the existing business model and can be tracked easily for cases of failure.

The other part was to integrate with a SOR (system of records) to keep track on all the balances of our customers.

It was done by the integration with Zoho Invoice API.
Two challenges here:
1) A mapping between our data model and Zoho invoice model to ease transactions; handled by a transformation layer (not very efficient included only field names).
2) Catching failure scenarios without affecting user experience; handled efficiently by designing a fallback mechanism on the main scenarios (highest layer) that alerts by email failure received and point of failure (with data) enabling product and development teams to handle the issues.

Burger Shop API

https://github.com/AmeerGN/BurgerAPI
This was a small project that I had to work on as a proof of concept. Its purpose was to build a back-end to serve API requests (regardless of the client) for a burger shop (menu items, orders, statistics, and others).

In this project, it was required to build the API using Django REST framework. Before starting with the project, I had little knowledge about Python and zero knowledge about Django. I had to finish it within one working (in another company) week including research.

I prepared the environment on the first day, managed to learn Django and Django REST framework within three days, and then I worked on the project for two days.

Even though I lacked basic knowledge (as you will see in the repository) about the requirement text and naming conventions (such as burger_api instead of API) but other standards including coding and modeling went very well.

Bittorrent Simulation | University Project

In a networking course, we were asked to simulate P2P file sharing using socket programming.

I built this project using Java that uses threads to simulate a tracker with the communication with many peers, chunks, and acknowledgements with each other on downloading a certain input file.

The project will eventually be uploaded to GitHub.

Solved Complex Scenarios in Browser Compatibility Issues

During my experience with the front-end, some difficult and unexpected problems appeared which affected the main user experience scenarios.

For example, I solved an issue causing a crash in a specific request to Google maps API on IE 10 by finding a bug in error-handling in the GWT library.

Another example, there was a problem when we adopted the "number" type input for our website to enhance a mobile user's experience. The problem caused unacceptable behavior (from the business perspective) on both modern and old desktop browsers so I had to read how each browser intercepts and validates the "number" input. Then I implemented a solution that preserved the old experience for desktop users and kept the new experience for mobile users (with known limitations).
2009 - 2014

Bachelor's Degree in Computer Systems Engineering

Birzeit University - Birzeit, Palestine

Libraries/APIs

Stripe API, Zoho API, Java Servlets, REST APIs, React, React Router, Spark Streaming

Tools

Zuul, Docker Swarm, Git, Java Concurrency, Tableau, Bitbucket, Jira, Docker Compose, IntelliJ IDEA, Visual Studio, Sublime Text, Eureka, ELK (Elastic Stack), Impala

Frameworks

Spring Boot, GWT, Spring 4, JSON Web Tokens (JWT), Bootstrap 3, Hadoop, Spring Security, Jakarta Server Pages (JSP), Spring, Spark, Hibernate, Django, OAuth 2, Apache Camel

Storage

Spring Data MongoDB, Google Cloud Datastore, Google Cloud Storage, MySQL, MongoDB, Google Bigtable

Languages

Java, SuiteScript 2, XSL, C#, SuiteScript 1, Python, Sass, JavaScript

Platforms

Apache Kafka, Docker, Google App Engine, Google Cloud SDK

Paradigms

Microservices Architecture, Agile Software Development, Management

Other

Technical Leadership, Reflection, Regular Expressions, DOM, Spring Cloud, NetSuite

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