Скидка на вакансию
Скидка на первую вакансию
Акция до 22 декабря
👀 Бэкендеры, зовем на Публичное собеседование на Хабр Карьере! Для участия нужно → оставить заявку
Марк Арапов (withoutasecondthought), Россия, ЕкатеринбургМарк Арапов (withoutasecondthought), Россия, Екатеринбург

Марк Арапов

Бэкенд разработчикСредний (Middle)
От 300 000 ₽Не ищу работу

Контакты

Войти
Опыт работы: 3 года и 5 месяцев
Регистрация: 20.05.2022
Последний визит: 3 месяца назад
Гражданство:
Местоположение: Россия, Екатеринбург
Дополнительно: готов к удаленной работе
Знание языков:

Навыки

Golang
RESTful API
MongoDB
Базы данных
Docker
Git
SQL
TypeScript
gRPC
RabbitMQ

Опыт работы

  • Международный интернет-магазин одежды, обуви и товаров для дома
    Более 5000 сотрудников
    Golang dev
    Октябрь 2023 — По настоящее время (1 год и 3 месяца)
  • Startups
    Екатеринбург
    Backend Dev
    Февраль 2022 — Октябрь 2023 (1 год и 9 месяцев)

    During development, I was tasked with creating an authentication system. Several solutions were considered, but ultimately, I chose to use JWTtokens. Wanting to have full control over the situation, I decided to write it myself in order to have control over things such as prefixes. This took several hours, but I was able to understand and write my own middleware. In the future, I plan to add refresh token implementation.

    During project planning, we chose Mongo DB since we knew we would not be working with a large amount of data and had only one main entity to deal with, "mentors". However, during development, I encountered a problem with the lack of clear consistency, which led us to embed a structure where it should not have been. This was temporarily replaced with several structures in place of embedding, but later on, I discovered the `bson:, inline` instruction for the structure and implemented it cleanly.

    At one point, we needed to add images, but our budget didn't allow for having servers dedicated to hosting them. We began searching for a third-party service and eventually chose Cloudinary due to their well-documented API and the fact that they offered a free plan with up to 20,000 monthly uploads and editing capabilities, which was ideal for us at the start. We decided to transmit the images through base64 since it allowed for easy embedding into JSON.

    DockerGolangMongoDBSQLGitREST
  • Сервис для повышения продаж и автоматизации маркетинга
    МоскваОт 10 до 100 сотрудников
    React Developer
    Август 2021 — Май 2023 (1 год и 10 месяцев)

    Problems and Solutions:


    When I first joined, I was assigned to a new project to create a mobile application for a CRM system. The design was quite complex due to the fact that we were creating the app for multiple platforms, including iPad. One of the challenges we faced was the large amount of data that needed to be passed between screens. After reviewing the available options, I decided to prioritize Redux over Mobx, as it allowed data to be manipulated more strictly, helping to avoid accidental changes in the future.

    The layout consisted of 23 screens, among which it was difficult to reuse components due to the employer's design. However, I found a solution and used compound components. I created skeletons that I later reused and modified using`children`, although unfortunately many components had a lot of props.

    Another problem was with fields that had a ready-made selection. Some of them, employer requested to use as dropdowns, while others preferred a selection system similar to theirs. There were several issues with the selection system, as they varied, with some based on dates and others based on values, but all were supposed to look the same. I had to create two components that looked the same but functioned differently under the hood. While it was relatively simple for the value-based selection, I had to put in extra effort for the date-based selection due to a lack of well-functioning libraries and documentation. In the end, I managed to solve the problem by using different libraries for different platforms, and the task was completed successfully.

    Used languages, technologies, and tools: React, React Native, Figma, Redux, react-router-dom, etc.

    GitJavaScriptTypeScriptCSSБЭМSCSSSassReactReact Native

Дополнительное образование