Специалисты

Описание

Языки программирования
Основные (специализация) Kotlin
Побочные Dart, Swift, Java, Rust

Фреймворки
Основные Android SDK, Flutter, Jetpack Compose, Ktor, Koin, MviKotlin, Decompose, Retrofit, Room, MVVM, Coroutines, Flow, Kodein, Docker, Firebase

Технологический стек
Технологии Git, Gradle, SharedPreference, Exposed ORM, JavaMail, FFmpeg, Kaspresso, Coil, Android NDK
Образование
Август 2021 — По наст. время Некоммерческая организация высшего образования
Факультет компьютерных и инженерных наук
Россия, Иннополис


Опыт
Проект

Современный видеохостинг с умной системой рекомендации

Описание

Роль в проекте Мобильный разработчик (Kotlin Multiplatform) Команда проекта project manager: 1 frontend разработчик: 5 backend разработчик: 5 mobile разработчик: 3 full-stack разработчик: 5 ui/ux дизайнер: 3 qa: 3 dev ops: 2 team lead: 1 Обязанности на проекте Мобильный разработчик (мультиплатформа): реализация общей бизнес логики между платформами (Android, iOS), нативный Ui (Android, Jetpack Compose) Личные результаты 1. Полностью готовая авторизация: в общей кодовой базе навигация, бизнес логика (сетевые запросы, кеширование токенов, обработка ошибок), общая ViewModel (Component из Decompose); реализован наивный Ui на Jetpack Compose 2. Принимал участие в настройке CI/CD (тестирование на checkstyle с помощью Detekt + проверка графа зависимостей Koin, автоматизированное создание дебажных и релизных сборок + Bundle) 3. Настройка Ui тестирования с помощью Kaspresso и MockWebServer. Покрытие ui тестами раздела авторизации 4. Реализация главного (домашнего) экрана (статистика, поиск видео, рекомендации, базовая навигация между будущими экранами) 5. Внедрял AppMetrica и покрыл авторизацию обработкой пользовательских событий

Технологии

Jetpack Compose, Kotlin Multiplatform, Decompose, MviKotlin, Coroutines, Flow, Ktor, Kotlin Serialization, Room, Koin, Coil, ExpoPlayer, CameraX, Kaspresso (Espresso + Roboelectric), Paging, AppMetrica, Gradle, KSP, KotlinX.Collections.Immutable, Kotlinx.DateTime, DataStore, SharedPreferences, Timber, MVI, Garbage Collector, OOP, Architectural Patterns, SOLID, Clean Architecture, Git, Docker, Jira, Confluence, CI/CD, Scrum, REST, WebSockets, Figma

Длительность

Ноябрь 2024 – Январь 2025 месяцев

Проект

Мобильное приложение для управления каналом

Описание

Роль в проекте Android разработчик Команда проекта project manager: 1 frontend разработчик: 5 backend разработчик: 5 mobile разработчик: 4 full-stack разработчик: 3 ui/ux дизайнер: 3 qa: 5 dev ops: 2 team lead: 1 Обязанности на проекте Middle разработчик: выполняю самые разные "боевые" задачи: от полноценных фичей до масштабных рефакторингов Личные результаты 1) Единолично реализовывал новые фичи (экран для уведомлений с множеством анимаций, экран выбора категорий видео, экран плейлиста с пагинацей и поддержкой Drag Drop, онбординг и прогресс для новых пользователей) 2) Принимал участие в разработке других новых фишек приложения, участвовал и проводил код-ревью 3) Активно исправлял серьезные баги (один из самых интересных багов заключался в SDK стриммера: ошибки в обработке смены конфигурации и смерти процесса в фоне. К исходному коду не было доступа - пришлось декомплировать в Java и разбираться в жизненном цикле. В последствии нашел ошибку в обработки состоянии камеры в асинхронном коде; другой интересный баг заключался в работе с библиотеками-кропперами. Лично сделал Pull-Request в репозиторий на GitHub, который в последствии был влит: https://github.com/SmartToolFactory/Compose-Cropper/pull/45) 4) Успешно проводил масштабные рефакторинги: 1. Полный рефакторинг раздела комментариев (4 экрана с пагинацией и общей бизнес логикой были в одном модуле - разбивал на модули, выносил общую логику в UseCase, лично внедрял RemoteMediator и добавлял Room для создания единого источника правды в кеше) 2. Рефакторинг виджета пагинации (в Compose не существует конкретного виджета для обработки состояний пагинация (загрузка, ошибка и т.п.). Для корректного отображения шиммеров / заглушек лично разработал свой виджет пагинации с контроллером (по аналогии с ListState, PullRefreshState и пр.) 3. Рефакторинг дизайн системы (стандартизация шрифтов, отступов, избавление от магических констант) 4. Рефакторинг Drag Drop (изменение порядка видео в плейлисте): с нуля реализовал виджет пагинации с поддержкой Drag Drop (обработка ошибок и подгрузок страниц, обновление локального кеша, реализация анимации) 5) Занимался Ui тестированием: покрывал тестами множество экранов (согласно тестовой модели), периодически дополнял / исправлял тесты по прошествию времени; За последние полгода командой написал 87 тестов. Моим самым интересным Ui тестом был сценарий Drag Drop видео в плей-лист (описан выше) - работа с gesture и проверка корректности анимации и кеша

Технологии

Jetpack Compose, Kotlin Multiplatform, Decompose, MviKotlin, Coroutines, Flow, Retrofit, OkHttp, Kotlin Serialization, Room, Koin, Coil, Glide, ExpoPlayer, CameraX, Vico (графики), Kaspresso (Espresso + Roboelectric), NDK, JNI (для подключения стриммера), Service, WorkManager, Paging, RemoteMediator, AppMetrica, Gradle, KSP, KotlinX.Collections.Immutable, Kotlinx.DateTime, DataStore, SharedPreferences, Sentry, Timber, LeakCanary, MVI, Garbage Collector, OOP, Architectural Patterns, SOLID, Clean Architecture, Git, Docker, Jira, Confluence, CI/CD, Detekt, Scrum, REST, WebSockets, Figma

Длительность

Сентябрь 2023 – Январь 2025 месяцев

Проект

Соцсеть с возможностью делиться постами, видео и историями

Описание

Роль в проекте Fullstack разработчик (личный проект) Команда проекта project manager: 1 frontend разработчик: 1 backend разработчик: 1 mobile разработчик: 1 full-stack разработчик: 1 ui/ux дизайнер: 1 qa: 1 dev ops: 1 team lead: 1 Обязанности на проекте Дизайн в Figma и анимаций в Rive; реализация приложения для соц сети; реализация сервера Личные результаты 1. Авторизация (Ui, обработка ошибок, Firebase Auth) 2. Онбординг (что это за приложение и зачем оно нужно, работа с анимациями из Rive) 2. Экран профиля (информация о профиле, пагинация личных постов, редактирование информации) 3. Лента (интеграция тегов и поиск по ключевым словам, интересующих пользователя, пагинация, обработка ошибок, шиммеры и заглушки) 4. Уведомления (обработка push уведомлений, экран уведомлений с анимациями сокрытия) 5. Отправка сообщений (диалог с возможностью прикрепить файлы и картинки; для загрузки файлов используется cloudinary)

Технологии

Flutter, BLoC, GoRouter, Dio, GetIt, Firebase (Auth, Push Notifications, Firestore), Hive, Shared Preferences, Paging, RxDart, FpDart, Local Notifications, ENVied, freezed, json annotations, intl + l10n, Rive (анимации) Kotlin, Ktor, Docker Compose, PostgreSQL, Redis, RabbitMQ, Figma

Длительность

Сентябрь 2024 - настоящее время месяцев

Проект

Беговой трекер (карты, геопозиция, аналитика забега и общая статистика забегов)

Описание

Роль в проекте Flutter разработчик Команда проекта project manager: 1 frontend разработчик: 2 backend разработчик: 3 mobile разработчик: 2 full-stack разработчик: 2 ui/ux дизайнер: 1 qa: 3 dev ops: 1 team lead: 1 Обязанности на проекте Мобильный разработчик (Android, iOS) Личные результаты 1) Авторизация (Ui, обработка ошибок, взаимодействие с Firebase Authorization) 2) Список забегов (фильтры по дате, расстоянию и средней скорости, интеграция с Firestore, обработка ошибок и заглушки) 3) Забег (обработка разрешений на геолокацию + уведомления, сплеш-скрин ready-steady-go, foreground service забега + уведомления, поиск геопозиции, отображение на карте, расчет скорости и пройденного расстояния (кеширование пути в Hive), завершение забега и отправка результатов в Firestore) 4) Статистика забегов (фильтры периодов, общее расстояние, максимальная скорость и длительность, т.п.) 5) Настройки (язык, тема, стиль уведомлений, музыка во время забега)

Технологии

Dart, Flutter, BLoC, Hive, Google Maps, Geolocator, Rx Shared Preferences, Foreground Service, Freezed, FPDart, GoRouter, Dio, GetIt REST, Figma, Rive (анимации), Firebase (Authorization, Push Notifications, Firestore)

Длительность

Август 2024 - Ноябрь 2024 месяцев

Проект

Приложение с рецептами: система подбора, рейтинг, комьюнити, коллекции рецептов, создания рецептов и добавление с веб страниц (парсинг)

Описание

Роль в проекте Разработчик приложения (мультиплатформа: Android, iOS, Desktop) Команда проекта project manager: 1 frontend разработчик: 3 backend разработчик: 3 mobile разработчик: 2 full-stack разработчик: 1 ui/ux дизайнер: 2 qa: 3 dev ops: 1 team lead: 1 Обязанности на проекте Разработчик приложения: полная реализация MVP клиентского приложения для Android, iOS, Desktop Личные результаты 1. Реализация авторизации (Ui, обработка ошибок, обработка сессии, восстановление пароля) 2. Домашний экран (пагинация, поиск рецептов в каталоге, добавление в коллекцию, обработка ошибок, заглушки и шиммеры) 3. Страница создания / редактирования рецепта (Ui, бизнес логика с сетевыми запросами, реализация кроссплатформенного Image Picker для получения обложки рецепта + обложек этапов готовки) 4. Добавление (парсинг) рецептов со сторонних сайтов (Ui, анимации загрузки, навигация к экрану создания рецепта, обработка ошибок, заглушки и снекбары) 5. Экран профиля пользователя + редактирования профиля (Ui, Image Picker для выбора аватара, сетевые запросы, смена пользователя и выход)

Технологии

Jetpack Compose, Kotlin Multiplatform, Decompose, MviKotlin, Coroutines, Flow, Ktor, Kotlin Serialization, SQLDelight, Kodein, Coil, Kaspresso (Espresso + Roboelectric), Paging, Gradle, KSP, KotlinX.Collections.Immutable, Kotlinx.DateTime, DataStore, Timber, MVI, Firebase (Firestore, Push Notifications, Authorization), OOP, Reactive Programming, Functional Programming, Architectural Patterns, SOLID, Clean Architecture, Git, Docker, CI/CD, Detekt, Scrum, REST, Figma

Длительность

Май 2024 - Август 2024 месяцев

Проект

Телеграм бот для бронирования аудиторий

Описание

Роль в проекте Разработчик телеграм бота Команда проекта project manager: 1 frontend разработчик: 2 backend разработчик: 2 mobile разработчик: 1 full-stack разработчик: 2 ui/ux дизайнер: 1 qa: 2 dev ops: 1 team lead: 1 Обязанности на проекте Fullstack разработчик (бекенд на Ktor + фронтенд на React) Личные результаты 1. Реализация API (авторизация, фильтрация свободных аудиторий, бронирование аудиторий, напоминания + уведомления об окончании, привязка почты) 2. Реализация телеграм бота: авторизация, переход в Telegram Web App с интеграцией собственного Ui на React 3. Домашний экран (навигация на экраны с функционалом) 4. Экран бронирования (обработка часового пояса устройства и статуса свободности комнаты, шиммеры, заглушки) 5. Мои брони (UI расписания личных броней (календарь), диалог подробной информации о брони с возможностью отменить бронь) 6. Экран "о приложении" и "правила использования" (статические экраны с переходами по ссылкам и навигации на сопутствующие экраны)

Технологии

Kotlin, Coroutines, Ktor, Firebase (Firestore, Push Notifications), Docker, Exposed ORM + JDBC, JavaMail, REST, SMTP, Git, Gradle, JUnit, Garbage Collector, OOP, Architectural Patterns, SOLID, CI/CD, Docker, PostgreSQL, React, Typescript, HTML, CSS, Figma

Длительность

Июнь 2023 - август 2023 месяцев

Проект

Super-app музыкальный плеер под Android

Описание

Роль в проекте Android разработчик Команда проекта project manager: 1 frontend разработчик: 1 backend разработчик: 2 mobile разработчик: 1 full-stack разработчик: 1 ui/ux дизайнер: 2 qa: 3 dev ops: 1 team lead: 1 Обязанности на проекте Разработчик клиентского приложения под Android Личные результаты 1) Домашний экран (список плейлистов с RecyclerView и пагинацией, фильтры, поиск по названию, Pull-Refresh, Foreground Service для полного сканирования аудиофайлов устройства (и добавления в MediaStore)) 2) Проигрывание треков (Ui, Foreground Service + Exoplayer для проигрывания, поддержка аудиоэффектов) 3) Экран аудиоэффектов (эквалайзер, Басс бустер, реверб, замедление и тональность; ui экрана с анимациями) 4) Текущий плейлист (Боттом щит с RecyclerView, поддержка Drag Drop, пагинация) 5) Альбомы и кастомные плей-листы (альбомы формируется с помощью MediaStore, плейлисты формируются в ручную, сохраняются в Room) 6) Обрезание трека (Ui со сложными анимациями через Gesture и зумом (звуковая волна), проигрывание обрезанной части, эффекты (pitch, speed, fade); работа с ffmpeg) 7) Редактирование тегов видео (название, автор, альбом, номер в плей-листе и обложка; поиск похожих видео с помощью Genius API) + поиск текста песен (интеграция с Genius API + Парсинг HTML с помощью Jsoup) 8) Артисты (UI с пагинацией и навигацией на список песен артиста) 9) Избранное (Ui трех табов - любимые треки, артисты и плей-лист; работа с Room) 10) MP3 конвертер - конвертирует видео по ссылке в .mp3 с помощью youtubedl и ffmpeg (Foreground Service, уведомление которого помогает управлять очередью; обработка ошибок и восстановление после соединения, отмена кеширования) 11) Угадай мелодию (мини-игра, в которой песни проигрываются одна за другой (выбирается рандомный промежуток длительностью = 5 секунд), на каждом этапе нужно выбрать правильную песню 12) Статистика за периоды (Ui, самые прослушиваемые песни, артисты и альбомы, время прослушивания, количество посещений приложения) 13) Настройки (динамический выбор цветовой палитры приложения (ColorPicker), фонового изображения, языка, шрифта, темы, стилей отдельных виджетов и анимаций, работа с кешем) 14) Таймер сна (WorkManager, отключающий playback по истечению времени) 15) Запись через микрофон (иногда полезно, чтобы запоминать мелодии в голове, Foreground Service с записью голоса)

Технологии

Android, Kotlin, View, Fragment, WorkManager, Coroutines, Flow MVVM, Retrofit, Room, SharedPreference, Koin, Exoplayer, Service, Paging, SQL, Glide, Notifications, REST, JUnit, ffmpeg, Git, Gradle, Gson, Espresso, Roboelectric, Paging, AppMetrica, Kotlinx.DateTime, DataStore, SharedPreferences, JNI, Rust, Garbage Collector, OOP, Architectural Patterns, SOLID, Clean Architecture, CI/CD, REST, Jsoup, Figma

Длительность

Май 2021 - Апрель 2022 месяцев