Более 10 лет в Software Engineering.
На данный момент я являюсь страстным и увлеченным Full Stack разработчиком с более чем десятилетним опытом веб-разработки и более чем двухлетним опытом в разработке для iOS на SwiftUI.
Используя этот опыт, я отточил свои навыки в создании захватывающих мобильных и веб-интерфейсов, а также в оптимизации взаимодействия с пользователями.
Мой стек технологий:
В Frontend разработке опыт более 10 лет
- более 5 лет пишу на TypeScript;
- работал в фреймворками React (около 3 лет) и Angular (более 2 лет);
- использовал стэйт-мэнеджеры Redux, MobX, Effector, NgXS;
- работал с Svelte, AlpineJs
- знаю и умею в реактивность, владею RxJS;
- в совершенстве владею HTML, CSS, SCSS, умею создавать сложные интерфейсы и адаптировать их под разные устройства;
- есть опыт работы с CSS in JS, Styled components, Tailwind CSS;
- создавал сложные анимации с использованием GSAP, Framer Motion;
- писал тесты на Jest;
- есть опыт работы с WebSockets с использованием socket.io;
- знаю как настраивать сборку в Webpack, Vite.
В Backend разработке более 5 лет
- около 4 лет опыта разработки на PHP;
- работал с фреймворками Laravel, Symfony, Livewire;
- большой опыт использования концепции MVC;
- писал тесты на PHPUnit;
- есть опыт разработки тем и плагинов для Wordpess;
- больше 1 года опыта работы с NodeJS, работал с фреймворком NestJS;
- знаю Docker, умею писать образы, поднимать из них сеть с использованием docker-compose;
- работал с базами данных PostgreSQL, MySQL, MariaDM, умею писать сложные запросы, оптимизировать запросы, понимаю как работаю миграции, транзакции, шадинг, знаю как делать soft-delete;
- работал с Redis;
- есть небольшой опыт работы с MongoDB;
- работал с Elacticsearch;
- знаком с принципом и особенностями колоночных баз данных типа ClickHouse;
- понимаю что такое балансировка нагрузки.
В Mobile разработке более 2 лет
- разрабатывал под iOS с использованием SwiftUI;
- есть опыт работы с UIKit, был опыт реализации с помощью него функционала, недоступного в SwiftUI;
- знаю и умею в реактивность, владею Combine;
- большой опыт использования концепции MVVM;
- хорошее понимание многопоточности и трэдов;
- работал с CoreData и SQLite;
- есть опыт работы с Alamofire;
- создавал сложные и удобные пользовательские интерфейсы, адаптированные под разные устройства.
Прекрасно понимаю и применяю парадигмы ООП, принципы SOLID, DRY, KISS, YAGNI, в работе использую многие шаблоны проектирования.
Have a Nice Day - мобильная платформа направленная на стабилизацию эмоционального и ментального состояния пользователей, предоставляющая ежедневную порцию позитивного контента и набор инструментов для эмоционального здоровья, таких как дыхательные практики, дневник рефлексии, календарь настроения и тп.
В ходе работы над платформой я был занят сразу двумя направлениями - разработка мобильного приложения на SwiftUI и реализация back и front частей платформы со стороны веба с использованием стэка TALL (Tailwind CSS, Alpine.js, Laravel, Livewire).
В ходе работы я решал такие задачи, как:
- реализация удобной и адаптивной ленты контента в мобильном приложении, состоящей из порядка 20 различных типов контента и активностей.
- интеграция ML-модели в платформу в качестве системы эмоциональной поддержки пользователя во время сессиий рефлексии.
- создание полностью настраиваемой маркетинговой воронки и пэйвола в web-части платформы и блочный визуальный редактор для них.
- реализация CRM-системы для управления лентой контента и списком пользователей.
- проектирование и разработка REST-full api для мобильного приложения и отказоустойчивого бэка для хранения и доступа к медиаконтенту.
Self+ - мобильная платформа направленная на монетизацию контента для wellness-креаторов, авторов пропагандирующих здоровый образ жизни, психологическое и ментальное здоровье, спортивных тренеров и учителей йоги.
Сначала я отвечал за проектирование и разработку web-части платформы, а именно web-аккаунт пользователя, реализация всех необходимых маркетинговых требований на сайте платформы. Постепенно я начал заниматься мобильной iOS разработкой на SwiftUI, в ходе которой решал такие задачи, как:
- реализация мультитредовой чат-системы с такими возможностями как загрузка и публикация медиа контента, голосовые сообщения, реплаи, реакции на сообщения, галерея и статистика участников чата.
- разработка библиотеки контента с возможностью разбивать контент на уроки, курсы и системой комментирования.
- интеграция в платформу виртуального ассистента на основе ML-модели, помогающего креатору создавать и оформлять контент.
В ходе работы над проектом я глубоко углубился в мобильную разработку для iOS и за достаточно короткое время изучил нюансы и возможности Swift и SwiftUI.
JustControl.it — это платформа для анализа маркетинговых данных с гибкими возможностями ELT.
В мои обязанности входило:
Развитие основного продукта в рамкам Angular экосистемы, поддержка существующих и проектирование новых компонентов приложения.
Создание и развитие маркетингового сайта компании в соответствии с нуждами команды маркетинга.
В процессе разработки продукта решал следующие задачи:
Изучил и участвовал в организации монорепозитория Angular приложения по методологии NRWL NX.
Участвовал в проектировании моделей данных Angular приложения, полагаясь на стейт-менеджер NgXS.
Занимался проектированием и разработкой визуального редактора процессов обработки данных, который представляет собой настраиваемую flow-диаграмму. В ходе разработки очень тесно познакомился с библиотекой GoJS.
Занимался разработкой компонентов для визуализации данных. Было необходимо реализовать настраиваемую систему виджетов с возможность отображать любые доступные в системе данные в форме line, bar и pie графиков. Для реализации были использованы библиотеки D3js и ECharts.
Участвовал в проектировании и занимался реализацией редактора расписаний представляющий из себя просто user-friendly редактор CRON выражений.
Участвовал в реализации парсера языка запросов для фильтрации данных и системы автодополнения основанной на этом парсере. Была необходимость дать юзерам возможность задавать запросы для фильтрации любой сложности с использованием логических выражений типа “ad_source = google and clicks >= 5000” c возможностью показывать им во время ввода подсказки с возможными в текущий момент вариантами дополнения запроса, например доступными срезами/метриками или их операциями сравнения. Для реализации парсера использовался генератор парсеров PegJS.
Участвовал в реализации удобной системы юзер-менеджмента на основе ролей и пермошенов.
Участвовал в проектировании существующего интерфейса системы направленного на улучшение UX. Занимался реализацией соответствующих доработок.
В процессе взаимодействия с отделом маркетинга решал следующие задачи:
Занимался переносом существующего статического сайта на wordpress с целью дать маркетингу больше возможностей - быстро и без необходимости обращаться в разработку изменять данные на страницах, создавать новые для быстрой проверки гипотез, быстро менять навигацию, публиковать записи бога, мероприятия и статьи глоссария (для чего были реализованные кастомные сущности в wordpress).
Изучил и настроил все пути лидогенерации связанные с маркетинговым сайтом, настроил возможность создавать и изменять в визуальном редакторе формы обратной связи с использованием WS Forms, настроил передачу данных лидов в HubSpot.
Покрыл в соответствии с нуждами маркетинга все целевые действия на сайте оправкой событий в Google Tag Manager.
В компании занимал должность ведущего IT-специалиста а в дальнейшем (с января 2020) должность IT-директора.
В мои обязанности входило:
В плане веб-разработки участвовал в двух проектах:
Бакалавр физики по специальности общая и молекулярная физика.