Специалисты
Ключевые навыки:
Programming Languages:
- Golang
- PHP
- JavaScript
- Typescript
- Ruby
- HTML/HTML5
- CSS/CSS3
- SQL
Framework/Libraries:
- Fiber
- Gin
- GORM
- MongoDB Go Driver
- kafka-go
- Node.js
- ExpressJS
- Nest.js
- Serverless
- Ruby on Rails
- Vue.js
- Vuex
- Vue router
- Vuetify
- Nuxt.js
- React.js
- Redux
- Redux-Saga
- Redux-thunk
- Redux-Form
- React-Hooks
- React Table
- Reselect
- Material-UI
- Next.js
- Mobx
- jQuery
- Animate.css
- Socket.io
- Underscore
- Axios
- Moment.js
- Lodash
- SASS (SCSS)
- LESS
- Stylus
- PostCSS
- Bootstrap
Cloud services:
- AWS
- Heroku
- STRIPE
- Google Maps
- EC2
- s3 bucket
- Lambda
- API Gateway
- Google Cloud Platform
DBMS:
- PostgreSQL
- MySQL
- MongoDB
- Firebase
- Redis
- DynamoDB
- Neo4j
CI/CD:
- Gitlab
- Jenkins
Development Tools:
- Git
- Webpack
Application/Web Servers:
- RabbitMQ
- Nginx
- Apache
- Elasticsearch
Application Type:
- REST
- SOAP
Other:
- Agile
- Docker
- Kubernetes
- MVC
- Ajax
- XML
- JSON
- SSH
- Unix
Образование:
Прикладная математика & Информационные технологии, Магистр
Южный федеральный университет, Таганрог, Россия
Онлайн-сервис для криптовалюты
Описание проекта Онлайн-сервис предоставляет услугу автоматического расчета индикаторов и сравнения пар криптовалют в режиме реального времени. Больше нет необходимости составлять сводные таблицы и переключаться между графиками, чтобы оценить колебания рынка, всю необходимую информацию пользователь получает на одном экране. Это позволяет экономить время на поиск необходимых данных, а также позволяет быстрее принять решение о покупке / продаже криптовалюты. Актуальные данные о криптовалютах поступают с крупнейшей платформы по объему торгов Binance и глобальной спотовой биржи Huobi. Что было сделано Это приложение состоит из нескольких частей. Бэкенд использует 2 языка программирования: RoR и Golang. Микросервис, написанный на Golang, используется для основных расчетов данных по индикаторам и событиям, что обеспечивает быстродействие системы. Основная же логика работы бэкенда написана на RoR. Для фронта мы используем React.js, что в свою очередь также обеспечивает быстродействие и реактивность приложения. В рамках проекта была реализована логика работы smart-list с отображением данных порядка 400 торговых пар с 2-х бирж: binance и huobi. Пользователь имеет свой личный кабинет, может задавать параметры как индикаторов, так и для срабатывания событий, чтобы получить уведомление в телеграмм-бот. Основными индикаторами приложения являются change, CCI, RV3, Divergence, Level. Также в систему интегрирован график tradingview для отображения данных и информации по выбранной торговой паре. Кроме основных индикаторов, в системе идет сбор и хранение таких параметров пары как маржинальность, суточный объем, Last Price и т. д. Была осуществлена интеграция системы оплат и оформление подписки для работы с приложением с возможностью выбора нескольких тарифов и триальным периодом.
JavaScript / React.js / Ruby / Golang / Sidekiq / PostgreSQL Интеграции: Heroku / Payment systems / Sockets / Microservices / Complex data through APIs
Январь 2015 - по настоящее время месяцев
Сервис для ремонта товарных вагонов
Описание проекта Проект предназначен для диджитализации процесса ремонта товарных вагонов в России, странах СНГ и не только. Ресурс позволяет ответить клиентам на 3 главных вопроса: 1. Где ремонтировать? В рамках ресурса можно получить онлайн расчёт ремонта вагона. Для этого используется специальный калькулятор, использующий несколько интеграций как с РЖД, так и с другими крупными игроками рынка. На выходе Клиент получает огромный выбор из вариантов ремонта с ценами. 2. Сколько это будет стоить и как произвести платежи? После выбора конкретного предложения из калькулятора проводится многоэтапное онлайн согласование с менеджером заявки, а также подписание всех документов с использованием ЭЦП. 3. В каком состоянии находится вагон, который был отправлен на ремонт? Для каждого ремонта есть чёткие сроки выполнения, за соблюдением которых Клиент может следить и знать точный статус конкретного вагона/заявки. Что было сделано Проект разрабатывался с нуля, работа в полном объёме выполнялась нашей командой. На бэкенде использовался Laravel, на фронтенде Vue.js. Была реализована отказоустойчивая архитектура с мультинодами на базе серверов Яндекса. В рамках проекта была реализована работа с ЭЦП клиентов, что позволило им подписывать все документы в режиме онлайн, а заказчику быть уверенным в подлинности документов. Такой подход значительно сократил время подписания всех документов.
Javascript / Vue.js / Nuxt.js / PHP / Laravel / PostgreSQL / MySQL Интеграции: Yandex / RZD / Electronic Document Workflow
Январь 2015 - по настоящее время месяцев
Банковское приложение и телеграм-бот
Описание проекта Данный Банк входит в топ 100 лучших банков по уровню обслуживания клиентов. В существующем приложении, имеющем десктопную версию, было необходимо расширить функционал и исключить неиспользуемый. Помимо приложения необходимо разработать кастомизированный телеграм-бот для фан-клуба Торпедо, кастомную платежную систему и систему почтовых рассылок. Что было сделано - В рамках проекта доработан существующий функционал (меню, Актуализация матрицы компетенций сотрудников, доработка страницы пополнения, УПРИД, переверстка некоторых страниц в новом дизайне - верстка лендингов на шаблонизаторе Pug), проведен рефакторинг кода. - Исправлены баги по верстке и функционалу от предыдущих команд. - Разработаны с нуля новые страницы (депозиты, "Банковские гарантии" для раздела "Корпорации"). - Разработан и внедрен новый телеграм чат-бот (под NDA). - Полноценное SPA приложение на Vue 3. Для этого кастомизировали telegram web app, создали интеграции с telegram api. - Кроме того, реализовали загрузку и смену изображений, проведена работа с формами и внедрение цветовой темы в зависимости от telegram color theme маркентинг. - Также внедрили кастомную платежную систему "Компас" со стандартом 3-D-Secure, проведение платежа по трем сценариям. - Для почтовых рассылок проведена верстка e-mail шаблонов, в том числе для Outlook.
JavaScript / Vue 2 / Vue 3 / Vue router / Vuex / SCSS / Pug / Stylus / PostgreSQL
Январь 2015 - по настоящее время месяцев
Картографический проект и работа с графиками
Подпроект 1: - работа с большими объемами данных, отображение до 100000 элементов на странице; - работа с картами, тепловая карта, карта построения маршрутов; - выгрузка результата поиска в HTML, PDF, Docx, Zip. Подпроект 2: - построение графиков поиска за прошедший год, работа с линейными и свечными графиками; - формирование отчета поисков, работа с сокетами, интеграция нотификаций по веб сокетам, получений нотификаций по телеграм, рекурсивные фильтры и структуры данных.
TypeScript / React / React-Router / Redux / Redux-Saga / Redux-Form / React-Hook-Form / React Table / Reselect / Stompjs / Html2canvas / Jszip / Leaflet / Highcharts / Styled Components / SCSS / Qrcode.react
Январь 2015 - по настоящее время месяцев
Платформа для персонализированного обучения
Описание проекта Это своего рода облако, куда пользователь может интегрировать все свои курсы с других обучающих платформ (например, CrossKnowledge или CodeCademy) и, совместив это с данной Learning Experience Platform, создать индивидуальный план обучения. Learning Experience Platform состоит из множества различных частей и алгоритмов подбора контента для каждого пользователя по его интересам, навыкам и пристрастиям. Данная платформа также предусматривает совместное корпоративное обучение, где пользователи, состоящие в одних и тех же группах, могут делиться понравившимися курсами, обучающими карточками и видео со своими коллегами, проходить опросы и тесты, общаться с другими пользователями и наблюдать за активностью своих друзей. Также, данный проект имеет отдельную панель для администратора. Здесь, в удобном для пользователя формате, можно сконфигурировать и настроить платформу индивидуально для каждой организации. Начиная от количества и названий вкладок на панелях, цветовой схемой, логотипами и настройками контента, и заканчивая стандартными опциями администраторов по контролю содержимого контента, пользователей и доступов. Еще здесь есть разделение контента по каналам, группам, много аналитики и статистики, определение лидеров и топов среди пользователей, получение наград и бонусов, ведение живых стримов и т.д. Что было сделано Наша команда начала работать над уже текущим стартап проектом. Тогда он привлек инвестиции в размере более 100 млн. долларов от различных крупных инвесторов и получил множество наград. В настоящее время платформа используется компаниями на международном уровне и крупными государственными организациями. Команда разработчиков EdCast состоит из нескольких групп из 3 разных стран: Россия, Америка, Индия. У каждой команды есть свое направление в разработке и своя область ответственности за определенные части платформы. Наша команда по большей части отвечает за админ часть, группы и каналы, а также external API для синхронизации EdCast платформы с другими проектами. Мы занимаемся как поддержкой, разработкой, внедрением нового дизайна и фронтенд функционала (HTML5, SCSS, Material UI, React.js), так и внедрением полной логики работы отдельных компонентов на сервере (Ruby on Rails). Был разработан микросервис по обработке групп пользователей. Он представляет из себя конструктор, в котором можно создавать группы по определенным признакам, а затем распределять пользователей в эти группы в автоматическом режиме. Работа была выполнена преимущественно на бекенде с Node.js и Базами Данных. Часть модели данных на проекте имеют графовую структуру. Для их хранения и для операций (запросов) с ними была выбрана СУБД neo4j. В качестве библиотеки для Node.js использовался npm пакет "seraph" (Протокол - bolt). Также использовался docker neo4j. Широко применялись транзакции. Помимо neo4j на проекте, использовался Redis и MySQL, и каждая из этих 3-х движков баз данных использовалась по своему назначению. А также применялись нагрузочные тесты и выполнялась оптимизация запросов. Также была реализована административная панель для удобной работы над добавлением, редактированием и удалением контента.
React.js / Redux / Vue.js / Ruby / Redis / MySQL / neo4j / Node.js Интеграции: Microservices
Январь 2015 - по настоящее время месяцев
Приложение по управлению маркетинговыми кампаниями
Описание проекта Проект предлагает услуги по построению программ лояльности для покупателей, геймификации получения реальных бонусов для потребителя, а также предлагает инструменты маркетинговой аналитики. Проект позволяет владельцам бизнеса самостоятельно планировать кампании по привлечению клиентов, путём кастомизированной системы поощрений, подсчета бонусов и выдачи сертификатов для их покупателей. Искусственный интеллект проекта может настроить на запуск триггеров по различным акциям Клиента - по дате (например, ближе ко дню рождения того или иного покупателя) или по локации (например, предложить акционный товар в магазине, который часто посещает тот или иной Клиент). Что было сделано На проекте трудилась выделенная команда специалистов с нашей стороны, сфокусированная на работе над шаблоном решения, которое затем кастомизировалось для нужд различных клиентов, и выпускалось в продакшн. Мы работали как над клиентской частью (React.js), так и над бекендом (Ruby). Наша команда стала частью большой интернациональный команды и плотно работала с коллегами из разных стран и таймзон. Перед фронтенд частью команды была поставлена задача по достижению максимальной скорости взаимодействия приложений с пользователем, как в десктопной, так и в мобильной версии, путем оптимизации клиентской части. Для решения данной задачи мы оптимизировали код клиентской части на использование RxJS, что дало нам возможность перейти к потоковой обработке данных, идущих от сервиса в шаблон, и минимизировать издержки на их обработку. Также наши специалисты провели глубокий рефакторинг и декомпозицию кода с целью формирования готовых библиотек и инструментов внутри приложения для решения обособленных задач таких как, работа с графиками, QR и штрих-кодами, всплывающими окнами и нотификациями, мини-играми для получения бонусов. Что также позволило повысить скорость работы клиентской части и приложения в целом. Наши бекенд специалисты решали сразу ряд задач. Мы участвовали в реализации серверной части для нового функционала приложения - создали новые сервисы, направленные на внедрение в приложение отправки сообщений, подключили к проекту AWS SNS. Также мы успешно запустили новый функционал системы лояльности клиентов и провели реиндексацию данных в Elasticsearch для повышения конверсии приложения. Также мы успешно внедрили использование системы покрытия тестами RSpec, что позволило повысить стабильность и скорость внедрения нового функционала. На бэкенде была проведена объемная работа по написанию алгоритмов для подсчёта бонусов/транзакций, были добавлены сериалайзеры, внедрены системы поиска пользователей по различным критериям, а также добавлен глобальный поиск потенциальных пользователей по сферам потребления и поиск потенциальных партнеров, а именно владельцев бизнеса - для сотрудничества. Больше всего времени занимали задачи по написанию сложных алгоритмов для подсчёта объёмных данных. При работе с клиентской частью мы столкнулись с разветвленной системой вычислений и обработки данных, которая была плохо оптимизирована. Чтобы повысить скорость и оптимизировать нагрузку на приложение был внедрен RxJS и потоковая обработка данных. При работе с серверной частью основная проблема была в плохо стандартизированной структуре кода. Нами была проделана кропотливая работа по приведению API запросов к единому формату обработки и возврата данных, а также добавлено покрытие тестами RSpec, что в сумме позволило получить прирост в стабильности процесса разработки.
JavaScript / Typescript / Angular 8 / React.js / Redux / Redux Saga / Ruby / Ruby on Rails / ElasticSearch / PostgreSQL / Google Analytics Интеграции: AWS S3 / Payment systems / Complex data through APIs / Sentry / Google trace
Январь 2015 - по настоящее время месяцев
Площадка для спортсменов и тренеров
Описание проекта Нашей задачей было создание площадки для людей, всерьез занимающихся спортом. Каждый зарегистрированный спортсмен или тренер имеет возможность обратиться за помощью к специалистам портала и получить научно-методическую консультацию. Система позволяет инициировать общение или дает возможность опубликовать запрос и выбрать из откликнувшихся кандидатов. Также сервис содержит информацию о предстоящих спортивных конференциях. Что было сделано Изначально подразумевалось, что проект будет частью другого сервиса, но идея оказалась столь хороша, что он по итогу был запущен прежде своего "старшего брата". Клиентская часть проекта выполнена с использованием Vue.js + Vuex, для программирования сервера использован Laravel фреймворк. Обработка электронных платежей реализована через Stripe API. Обновление броней и онлайн расписания тренера происходит в real-time с помощью протокола WebSocket. Для сервиса мы реализовали: - стильный, легкий для восприятия дизайн и логотип; - регистрация пользователя с различными ролями (спортсмен / тренер / специалист / организатор конференций); - ограниченный режим без регистрации для знакомства с системой; - возможность создания запросов, отклика на них и выбора специалиста. Об изменении статуса рассылаются уведомления по почте всем заинтересованным лицам; - специалистам предоставлена возможность создавать собственные запросы о поисках добровольцев для участия в исследованиях. Отклики рассылаются по почте. Для спортсменов предоставлена возможность подписаться на уведомления о похожих запросах; - для специалистов созданы страницы профилей с возможностью добавлять информацию о себе и различные файлы мультимедиа; - реализована возможность обращения к специалисту напрямую; - пользователю предоставлена возможность оставлять отзывы о работе с конкретным специалистом и выставлять ему оценки. Оценки формируют рейтинг специалистов; - созданы общие доски запросов с удобным поиском и фильтрацией результатов. У пользователей есть возможность: - посмотреть список всех зарегистрированных специалистов, найти нужного или отфильтровать выборку; - связаться со специалистом напрямую; - создать запрос со своей проблемой и выбрать специалиста для консультации; - оплатить услуги специалиста через сайт посредством Stripe; - оставить отзывы и оценки; - создать страницу профиля с информацией о себе и загрузить файлы мультимедиа; - создать собственные запросы о поисках добровольцев для участия в исследованиях; - подписаться на автоматическую рассылку с настраиваемыми параметрами о запросах; - разместить информацию о конференции.
Javascript / Vue.js / Vuex / Laravel / PostgreSQL Интеграции: AWS EC2 / AWS S3 / Socket.io / STRIPE
Январь 2015 - по настоящее время месяцев