Position: Middle Backend Developer
Company: it-dimension.com
Category: Node.js
Experience required: 2y
English level: intermediate

IT-Dimension is working on the project that includes the mobile application and related backend that aggregates videos from various social networks and then offers the users the most suitable content for watching based on AI and other algorithms depending on users past activity.

In addition to the application, there is also a complex backend. The Scraper searches for videos on various social networks (now it's Instagram, TikTok, and Google Places). On social networks like Google Places (where there are no videos), the system searches for places and attached photos, then it makes a video with the taken pics and also adds music from TikTok and Instagram trends. The history of the user's activity inside the app is tracked and is used inside the algorithms that provide the list of the suggested videos for the user. Depending on them, the algorithmic part of the backend builds lists of recommended videos. When the mobile app requests a new portion of the video to watch, the backend returns the most relevant results for the user.

For now, we have an almost-ready Scraper. The backend development is planned to start in 1 week. We are in need of one more developer for the team.﻿

**Requirements﻿:** ﻿Node.js, JavaScript, TypeScript, Apache Kafka, AWS S3, AWS CloudFront, REST, GraphQL, Python

**Upcoming tasks:**
**✔** Compilation of thematic lists of videos;
**✔** Development of a service for storing the history of users actions;
**✔** Service for making recommendations (it consists of several parts as well);
**✔** Web API for mobile application﻿;
**✔** Microservice infrastructure for backend, documentation;
**✔** Implementation of microservices according to the provided algorithms. There are ready-made algorithms on Python, so we have a few options: either pull Python scripts from Node.js or write wrapper-microservices over algorithms on Python (and the rest of the infrastructure on Node.js). And another more challenging option is to implement something like converting Python code to C ++, making npm modules, and writing microservices on Node.js based on this code (this is all being discussed now).
**✔** Web service for a mobile application, either REST or GraphQL.

**What else is important for us**
﻿Ability to keep in touch, maintain a dialogue, and have an interest in synchronizing work with the team. It is important to be able to defend one's point of view providing arguments, if there is an understanding that the position is correct or the decision is logical. The fact that the team members feel comfortable and are friendly with each other is really fundamental for us.

**Interactions**
﻿Internal UA team communications are in Ukrainian, Russian, and English. There are daily stand-up meetings at the beginning of the working day. Local-level decisions are discussed with the Tech Lead of UA Team or developers from other teams. For daily communication on this topic - Slack is used. The internal UA team communications are on Telegram.

**The process**
﻿﻿Optionally, there may be a test task. Interview in Ukrainian or Russian, whichever is more comfortable. The CV will be reviewed directly by the CTO of ﻿the company. ﻿Stages: ﻿﻿Screening with Iryna Tech interview with CTO and Team Lead Feedback and/or Offer.

**The work schedule is flexible, remotely.**

**﻿Interested, pls apply your CV**
﻿﻿**Talk soonr** 😉