Специалисты
Ключевые навыки
- JavaScript (ES6+) - Typescript - CSS/CSS3 - HTML/HTML5 - SQL - React.js - Redux - Next.js - MobX - Material-UI - MUI styles - Ant Design - Styled-Components - Eslint - Stylelint - Underscore - Lodash - Redux-Saga - Redux-thunk - Redux Toolkit - Axios - Bootstrap - Moment.js - Animate.css - SASS (SCSS) - LESS - Stylus - PostCSS - jQuery - Jest - Faker - React-test-utils - Apache - Nginx - MySQL - PostgreSQL - AWS - Heroku - s3 bucket - Google Maps - Unit testing - e2e testing - Git - Webpack - REST - Gitlab - Agile - Scrum - Kanban - Figma - Docker - K8s - Gitflow - SOLID - Adaptive Web - Responsive Web Development - Service Workers - MVC - Ajax - XML - JSON - Unix- SSH
NDA
Роль: Frontend-разработчик Описание проекта Данный проект - платформа для помощи строительства инфраструктурных объектов перед газо/нефтедобычей. Содержит навигацию по разделам приложения с отображением информации в таблицах AgGridReact с кастомными сортировкой и фильтрацией. Детальная информация об объекте строительства помогает спрогнозировать сроки постройки инфраструктурных объектов для инфраструктуры добычи нефти и газа, которая отображается на графиках. Что было сделано На проекте велась работа с той частью платформы, где отображались данные по созданным объектам строительства. Был реализован режим редактирования объекта строительства(с запретом на одновременное редактирование разными пользователями), предварительный перерасчет объекта строительства при переходе по его вкладкам в режиме редактирования, логику сохранения и пересчета параметров объекта строительства. Также велась работа по рефакторингу кода предыдущей команды разработчиков, оформлении компонентов согласно утвержденному макету, правка возникающих багов.
React / Redux-Toolkit / TypeScript / Lodash / Apollo GraphQL / Consta UI Kit
Июнь 2023 – Июль 2024 месяца
NDA
Цель проекта – создание универсального терминала, разработанного специалистами биржи для участников торгов на срочном рынке. Используют внутренние сотрудники банков и организаций, которые торгуются на бирже. Что было сделано - Доработка UI kit системы, добавление новых компонентов, редактирование старых - Верстка, отрисовка данных в таблицах на множестве страниц системы - Верстка не только базовых ui-эллементов, но и сложных форм с множеством валидаций и связей
Javascript / React, Redux Toolkit, Astra common, Untdesign, Moment, Decimal JS, Chart JS Интеграции: AWS S3 / Social networks / Payment Systems / AWS Elemental MediaConvert / Complex data through APIs (Google Analytics) / Twilio
Апрель 2022 – Май 2023 месяца
Компания, занимающаяся кибербезопасностью
Роль: Frontend-разработчик Что было сделано - интегрировал API, предоставленное Gridlogics, для получения текста и изображений патентной документации США, основанных на базе USPTO. - создал возможность парсинга XML файлов и документов. - создал возможность распознавать и воспроизводить текст в приложении в нескольких режимах. - реализовал возможность помечать отрывки распознанного текста патента и оставлять пометки (теги), которые будут сохраняться во всех режимах распознанного текста патентной документации. реализовал возможность создавать проект на группу пользователей/юристов определенной компании, которые могут сообща или по отдельности работать с определенными документами в рамках конкретного проекта. - добавил функционал загрузки пользовательских PDF-документов. - реализовал интерфейс одновременного добавления нескольких пользовательских документов в проект. Добавлена возможность использования drag&drop для добавления файлов. На backend реализована логика обработки и сохранения в S3 пользовательских PDF. - Оптимизировал обработку PDF На backend оптимизирован процесс обработки (постраничное разбиение документа и сохранение изображений в S3) PDF-файлов. Оптимизация реализована с помощью “Worker”. В нескольких дочерних процессах выполняется параллельная обработка нескольких PDF файлов, создание миниатюр страниц и их сохранение в S3 bucket. - На странице документа реализовал логику виртуализации списков. У документов, содержащих большое количество страниц, наблюдалось заметные ухудшения производительности. Каждый компонент колонки имеет довольно сложную логику аннотирования с большим количеством вычислений. И одновременный рендеринг нескольких сотен таких колонок требует большого количества ресурсов. При условии, что одномоментно пользователь видит всего несколько, рендеринг всех остальных не рационален. После анализа существующих npm пакетов, предоставляющих данный функционал стало понятно, что для наших задач они не подходят по некоторым причинам. Была написана логика виртуализации колонок документа, отвечающая требованиям проекта с помощью API IntersectionObserver. - Реализовал возможность добавления в проект не только американских но также мировых и европейских патентов. Переработана логика создания новых патентов т.к. структура данных о патенте отличается от структуры американских патентов. Поскольку некоторые мировые и европейские патенты не имеют разбиения по колонкам на странице. Для правильного отображения таких документов был переработан пользовательский интерфейс. А также доработана логики автоматического аннотирования и переходов к существующим аннотациям. - реализовал новый PDF reader. Добавлен новый UI для аннотирования PDF-документов. Для реализации нового интерфейса аннотирования PDF с функцией просмотра PDF-страниц, как в нативном PDF-reader браузера Chrome, мной была выбрана библиотека react-pdf-highlighter. При реализации данного решения я столкнулся со следующими сложностями: ошибка при попытке отобразить PDF-документ. Из-за того, что nextjs использует ssr (server side rendering), при первоначальном рендеринге отсутствовал родительский компонент-контейнер для PDF-документа, который необходим для правильной работы библиотеке pdfjs, которая в свою очередь используется в react-pdf-highlighter. Данная проблема была решена путем динамического импорта с отключением ssr компонента, отвечающего за отображение PDF; после успешного отображения PDF-документа, столкнулся с проблемой отображения документов в которых присутствуют иероглифы. Проблема решена добавлением параметра c указанием ссылки на CMap, необходимых как раз для таких документов. была решена проблема с неправильным отображением областей выделения на одной PDF-странице, когда их достаточно большое количество. Проблема была решена после клонирования репозитория библиотеки react-pdf-highlighter, анализа исходного кода и изменения структуры компонента для корректного расчета положения родительского контейнера библиотекой “react-rnd”, которая используется для рисования областей выделения; исправлена логика создания изображений. Ранее создаваемое изображение зависело от масштаба документа. Исправил данное поведение таким образом, чтобы изображение всегда создавалось в одном масштабе.
JavaScript / React.js / Redux / Next.js / Axios / Redis / PostgreSQL Интеграции: AWS S3, Complex data through APIs
Май 2021 – Март 2022 месяца