Position: Node.js developer
Category: Node.js
English level: fluent
Years of experience: 5

- Create systems, first of all we design systems for other engineers and it must be easy to understand and maintain as well work stable and be available for users
- Improve application stability by covering vulnerable parts of a system with tests of different levels including unit, integration and e2e
- Launch features altogether and step by step
- Research to give a product team options
- Code review for peers, mentor trainees and juniors
NDA | Team Lead 
November 2021 - March 2023
- Design automated tests system
- Refactor Node.js app architecture
- Build React & Node.js app from scratch
- Write tech documentation, wiki
- Set up code guidelines, onboarding, precesses

NDA | Engineering Team Manager 
August 2020 - September 2021
- Own bugs monitor with assigning to engineers
- Implement “User Stories"
- Manage Kyiv’s team, code review
- Interview candidates

NDA | Software Engineer 
April 2019 - June 2020
- Tech design, estimation, development, testing
- Performance analysis and optimisation
- Code review
- Lead and mentor an engineer

NDA | Software Engineer
September 2018 - April 2019
- Develop new feature
- Refactor & fix bugs in existing system
- Work with the client for clarifying requirements

NDA | Software Engineer
November 2016 - February 2018
- Develop new UI component
- Create pixel-perfect responsive markup
- Design database schemas
- Develop RESTFul APIs covered with unit tests
### Important in a product
- Product features and requirements documentation, so anyone can access it and reference to make decisions on their own
- Use well known code guidelines like Google, Airbnb. Crucial, cause I have no desire wasting time on getting used to a custom guidelines that usually doesn’t have a lot of sense
- Engineering wikis, API docs, understanding of importance of tests coverage
- Clear responsibilities, duties, ownership, metrics
- Design: design system, using storybook is a great advantage, engineers can directly communicate with designers to balance solution complexity from engineering perspective and achieving product’s goal from design
- No development for Windows platform
- No gambling, games, dating apps

### Important in a team (mostly for me to understand during an interview):
- Conflicts are great and unavoidable, but ability to resolve conflicts, focus on common goal and separate it from themselves is crucial
- Clear thoughts and communication
- Gaslighting or denial issues. An example of great communication is “Ok, I see this is a problem for you. Let’s try to find out what can we do to resolve a conflict”
- Understanding how to split commits is a great advantage

### Technologies I wanna try:
- PostgreSQL, MySQL
- Redis, ElasticSearch
- Python, Go
- RabitMQ, Kaffka, Data Warehouses
- Progressive Web Application (PWA)

### Experience I wanna get:
- Microservices, event-based systems architecture
- Highload systems management
- Performance analysis and optimisations
- Data streaming
- Search engines, recommendation systems, knowledge graphs or graph databases
- Resources management
- Engineering team management
- Interviewing candidates

### The most attractive project could look like:
Get in the project where everything is a mess with responsibilities with goal to set up processes to deliver high quality stable features in time and to make a team to work effective; work with people and their desires and motivation; a little of coding with a lot of code review; a huge amount of communication; direct responsibilities in architecture and codebase maintainability, making a decision in lack of context, technologies maintaining, features planning → decomposition → delegation. Great advantage is English is the only language for communication