Position: Back-End Developer (Node.js)
Company: elastic.io
Experience required: 3y
English level: intermediate

**About us**
elastic.io is a Germany born product company. We develop the hybrid Integration Platform as a Service (iPaaS) for real-time data sync across disparate cloud-based and on-premise applications, platforms and databases. Our customers are big telecommunication companies, data management providers (f.e. Deutsche Telekom, Magic, Riversand), and many more.

In a nutshell, our platform helps customers easily integrate their business critical systems (f.e. databases, CRM, ERP, cloud services or whatever), and save money on infrastructure configuration and maintenance.

Basically, a customer can build your integration like a construction set where the pieces are connectors, which can be arranged according to the requirements. It requires a little technical skill and allows customers to stay clear of the programming layer. In more complex cases, the platform allows the customers to create their own integration components or modify the current ones if needed (we have SDK for Node.js and Java). Finally, one can also purchase our product as a white-label solution.

**Our Team**
Starting from two people in 2013, we have almost 40 people now in Bonn and Kyiv offices, and we’re growing further. Most of the development team is located in Kyiv, there are 25 people here: back-end and front-end developers, test and devops engineers, product designer, technical writer, support and integration engineers.

**Product Details**

--**Tech stack**--
**Backend:** Node.js / Express, Koa / JS, TypeScript
**Data storage:** MongoDB, ClickHouse
**Logging:** Graylog + Elasticsearch
**Message broker:** RabbitMQ
**Infrastructure:** each service runs as a docker container and is orchestrated by Kubernetes (Google, Azure, AWS or bare metal)
**CI:** CircleCI
**VCS:** GitHub

--**Our platform in numbers**--
• Up to 1000 running Docker containers simultaneously
• Near 100K containers’ starts/stops per day
• ~10M messages in RabbitMQ per day

**The Role**
We are looking for **Senior Backend (Node.js) developers** for our Kyiv office to enhance our Platform development team (7 back-end and 1 front-end developers now). 

You will be developing a core of the product, working on scalability, isolation, performance problems, etc. Please, note that you won’t have to implement actual integrations for customers, we have another dedicated team for that purpose.

**Requirements**
• JS/Node.js proficiency
• Thorough experience of RESTful service design, API design
• Knowledge of best practices for building resilient and maintainable distributed systems
• Solid understanding of *NIX operating systems
• Automated testing experience
• Сomputer science fundamentals
• Intermediate level of English (or higher)

**Will be a plus**
• Experience with RabbitMQ, Docker/Kubernetes, MongoDB
• Cloud applications development experience
• Deep knowledge of networking principles
• Any other programming language knowledge, in addition to JS

**Responsibilities**
• Designing and developing new functionality of the platform
   — Developing new services, redesigning and maintaining current ones
   — Cross-services communication mechanisms designing and implementation (REST API, RPC)
   — Integration with Kubernetes (e. g. Kubernetes operators development)
• Investigating and resolving the platform’s speed and performance problems
• Processes automation (building, deploying, testing)
• Refactoring, bug fixing, code reviewing

**We offer**
• Fully equipped workplace in the center of the city (Gulliver, tower B)
• 18 working days of paid vacation
• 5 work from home days per month
• Flexible working schedule
• Paid sick leave
• Salary tied to EUR
• Free English classes

**Our Traits**
• Flat hierarchy — you can easily communicate with C-level managers
• You can directly influence technical development of the product and architecture decision making
• We need engineers with wide technical background and ability to solve problems of any level of complexity, not just coders
• There is no such thing as „not my part” or „not my problem” — we help each other
• Great sense of humor is a must, modern memes knowledge is appreciated :)