Андрей Богомолов
Android Developer
Email: tipapro@hotmail.com
Обо мне
Люблю архитектурные задачи, проектировать фреймворки и писать красивый DSL для других разработчиков. Пишу статьи, пытаюсь активнее использовать Chat GPT.
Успел попробовать множество направлений разработки. Программирую с лета 2016 года на C#. С 06.2019 пишу под Android (на Xamarin.Android). С 04.2020 – на kotlin.
Скиллы
Технологии
- Отличное знание (более 2 лет) Jetpack Compose и его тонкостей
- Хорошее знание Coroutines/Flow, Dagger 2
- Есть опыт написания KMP приложений с Compose Multiplatform
Прочее:
- UI: Material (2/3 You), Coil, Glide, View Binding
- Сеть: Retrofit, OkHttp, Ktor, Paging 3
- Навигация: Jetpack Navigation, Cicerone
- DI: Koin, Kodein
- Сериализация: kotlinx.serialization, Moshi, GSON
- Потоки данных: RxJava (редко использовал)
- Хранение данных: Room, Jetpack DataStore, файловая система Android
- Прочее: CameraX, Jsoup, Glance Appwidget
Архитектура
- Умею проектировать красивый, понятный и краткий API для других разработчиков
- Есть опыт написания библиотек/фреймворков
- Имею опыт модуляризации приложений
- Знаю/работал с MVVM+, MVI, TEA (elm), UDF, Clean
Производительность
- Отлично понимаю принцип работы Jetpack Compose и как писать производительный код на нём (написал 2 статьи про это)
- Есть опыт проведения устойчивых A/B экспериментов для метрик производительности
- Есть опыт интеграции метрик производителньости с нуля в код с Jetpack Compose
Команда
- Проводил множество собеседований и составлял/дополнял вопросы для них
- Понимаю процессы разработки в больших командах
- Для фиксирования информации активно пишу документацию в коде/confluence/статьях
CI/CD
- Есть опыт написания джоб на ruby для Gitlab
- Есть опыт настройки Gradle с нуля
Тесты
- Unit-тесты для core компонентов/библиотек/бизнес-фич
- Есть опыт работы с Kaspresso, Allure, Marathon
Инструментарий
Github, Gitlab, Jira, Figma, Confluence
Опыт работы (4 года)
Работаю в команде “Performance”.
Работал в команде “Платформа” Ozon Seller (более 1 млн. скачиваний) - приложения для продавцов Ozon.
Производительность:
- Исследовал и улучшил производительность Compose-экранов, автор статей по этой теме на Хабре и ProAndroidDev.
- Разработал инструмент для сбора метрик Total Time.
- Стандартизировал проведение A/B тестов для метрик производительности; решил проблемы с некорректными результатами.
Архитектура:
- Разработал фреймворк для навигации (Ozon Navigation) поверх Jetpack Navigation, что упростило многомодульную навигацию и позволило плавно мигрировать с фрагментов на Compose.
- Вел работу по модуляризации приложений, выделил ключевые модули, подготовил руководство по модуляризации.
- Разработал фреймворка для TEA, сделал единую стейт-машину для управления состоянием авторизациии, продвигал исключение контекста из ViewModel.
- Провел исследования по проблеме Launch Mode, оптимизации размера APK, улучшению UI тестов и проблеме с диплинками.
Команда:
- Провел множество технических собеседований, составил вопросы для Compose и улучшил остальные вопросы для собеседований.
- Исполнял обязанности тимлида в его отсутствие.
- Значительно улучшил техническую документацию в Confluence.
Разработка и интеграция библиотек:
- Участвовал в создании и оптимизации производительности Ozon uikit на Compose.
- Интегрировал Ozon AbTool для управления фиче-флагами, обеспечил удобный статический доступ.
- Интегрировал OzonID для авторизации, успешно раскопав легаси код.
- Интегрировал и доработал Ozon Tracker для аналитики, добавив кастомизируемые события с удобным DSL.
Кодил в разных проектах:
- писал фичи в приложении для инвестирования (для России и для Великобритании),
- проектировал архитектуру и писал с нуля приложение для частного поcёлка и приложение для оплаты чаевых по лицу/QR коду
- переносил дизайн-систему (палитру (светлую и тёмную) + элементы) из фигмы
- рефакторил архитектуру приложения
Статьи
Осознанная оптимизация Compose 2: В борьбе с композицией
Осознанная оптимизация Compose
Проекты
Edugma
Децентрализованное мобильное приложение для учебных заведений. К нему может подключиться любое учебное заведение, подняв свой узел и реализовав нужный API. KMP, Compose Multiplatform. Также пишу узел (Web API) для Московского политеха (kotlin + ktor и всё в docker).
Сайт (заглушка): edugma.com - веб версия: app.edugma.com - документация: docs.edugma.com
mospolyhelper - 8000 скачиваний
Мобильное приложение для Московского Политеха. Android приложение + Asp Net Core Web Api + вебсайт на Vue.js
Образование
Московский политехнический университет - Магистратура, 2022 - 2024
Информационные системы и технологии, Мобильные технологии
Московский политехнический университет - Бакалавриат, 2018 - 2022
Информационные системы и технологии
За время обучения успел попробовать множество направлений и языков, прежде чем нашёл себя в мобильной разработке. Успел поработать в разных командах (от 2 до 5 человек)
Разрабатывал
- бота для Discord (C#)
- игру на Unity (С#)
- desktop приложение на WPF (C#)
- мобильное приложение на Xamarin.Android (C#), впоследствии на kotlin
- веб API на ASP NET Core (C#), впоследствии на ktor (kotlin)
- веб сайт на Vue (TS)
- бэкенд для работы с нейросетью на Python