Position: Middle JavaScript Developer (Node.js)
Company: Exadel
Category: Node.js
Experience required: 2y
English level: upper

We are looking for a back-end software developer to help flesh out the only payment platform in the world that turns every player in the e-commerce market into a winner. Designing and building new modules, or improving the existing parts of the API will be some of your daily activities. The projects are real and the challenges often require non-trivial solutions, making teamwork a critical factor for our fast paced scrum teams. 
There are exciting problems to be tackled in security, cryptography and artificial intelligence. Offering a global payment technology platform involves dealing with a number of third-party systems and services, so get ready to integrate a diverse range of external APIs!

**About the Customer**:
The Customer’s company was founded in 2014 to challenge the payments industry with innovative technology that merchants and financial institutions could use to process online payments in a way that was fit for the modern age. He created a future-proof platform that could grow with the evolving needs of today’s market.

In late 2018 the Customer’s company was acquired by one of the largest payment technology companies in the world. Their focus was originally mainly on the payment terminals you see in most shops, but with the acquisition of  the Customer’s company they are expanding their foothold in the online payments sector.

**About the Project**:

The Customer  delivers new payment technology that is designed to blow legacy solutions out of the water. Ecommerce businesses need a payment platform that offers complete control of the whole payment journey from a single touchpoint. That’s why the Customer’s team works on creating deep data insights, a rock-solid, scalable architecture, and builds global integrations with payment methods and banks. Combine that with the highest security and reliability standards and you get an idea of the type of work that our developers do. 
 
**Team Composition and locations**: 
1 Senior Business Analyst, 1 Java Architect, 1 Project Manager, 1 JavaScript (Node.js), 1 JavaScript (Angular).
 
**Project Stack**
NodeJS on the back, AngularJS on the front, Typescript, Javascript
different storage engines (or databases), SQL and noSQL
Redis, MapD
Kubernetes
Apache Kafka
gRPC
Protobuf
Jenkins, GIT
 
**Current Project Stage**: 
Development
 
**Project Duration**:  
6+months
 
**Project Advantages**: 
The Customer is always looking for the best stack, the best way to scale, and the practises that make sure the platform performs to the standards of giant global clients that process millions of transactions every day.
Working here combines an autonomous workstyle with cooperative teamwork with people from diverse backgrounds. 
Every Friday we have another Knowledge Sharing session, with topics from marketing to fraud and machine learning to global partnerships. One day you’ll host your own knowledge session to help the rest of us understand something you know everything about.

**Requirements**:
Node.Js / ES 
Understanding of asynchronous behaviour - usage of promises, async-await in parallel and sequential patterns
Basic understanding of event loop
We can add basic understanding of HapiJS, Express, or Fastify
Understanding of modules, scoping, variables (let vs const), arrow functions
Understanding of basic data structures in JS - Map, Set, Objects, Arrays, Symbols etc.
What are middle wares and how are they used
MongoDB - Understanding and hands-on experience in following: 
Aggregations
CRUD operations
Indexing
Redis
Basic get and set operations of key values should suffice for most of our use cases.
Typescript
Familiarity with types - variables, interfaces, type definitions and why they are used. 
Familiarity with use of Classes - class variables, methods, scope and inheritance  
Concepts / Methodologies  
 
Object Oriented Programming
Software design pattern + SOLID principles
Dependency Injection
Unit Testing - using one or more library (mocha, jasmine) 
At least understanding of these concepts: Mocking, Stubbing, Fixtures
Decorators - used in typescript as well as angular
 
**Other important skills**:
Have a deep understanding of the evolving needs developers have when working with APIs
Eager to develop and deploy skills in the payment arena and raise the bar of current technological functionality in that field
Love to challenge yourself by working in high-security and high-performance environments
RESTful API programming is in your blood, as you'll interact with a lot of third-party systems and services
Want to experience the latest developments in security, cryptography, artificial intelligence, databases, CI
Nice to have:
Open source contribution
Blogs showcasing in-depth knowledge 
 
**English level**:
Intermediate+

**Responsibilities**:
Code, test and operate Node.js based services
Build and design an API that developers find a joy to work with
Integrate new payment methods, supporting services and innovative solutions provided by third-party systems into the Customer’s platform
Deliver quality work in high-security and high-performance environments: The stakes are high. Customer’s clients expect the best