Кто такой наставник и какими гибкими навыками он должен обладать. Читать исследование Хабр Карьеры
Обо мне

Примечание насчет имени: оно произносится с ударением на второй слог, т. е. Маха́ч, и никак не связано со сленговым ма́хач).

Опыт разработки под Android - 5 лет. Коротко обо мне:

  • Пишу поддерживаемый и тестируемый код
  • Умею разбираться в чужом коде (разобрал десятки проектов на GitHub)
  • Создаю приложения с расширяемой архитектурой
  • Есть опыт работы в команде в качестве главного разработчика
  • Есть базовое понимание принципов  гибкой методологии разработки (Agile)
  •  Постоянно слежу за трендами в мобильной разработке, применяю их на практике

Навыки:

1. Отличное знание Java и Kotlin:

  • знание ООП и шаблонов проектирования
  • коллекции
  • многопоточность
  • рефлексия
  • работа с регулярными выражениями
  • работа с файлами
  • Kotlin: корутины; Channels, Flow

2. Стандартный Android SDK:

  • Activity,  Fragments, Services,  BroadcastReceivers
  • Стандартные View элементы, ConstraintLayout, CoordinatorLayout, Collapsing Toolbar, Navigation Drawer- создание кастомных View, работа с анимациями
  • SQLite, SharedPreferences
  • работа с WebView, Google Map

Имеется опыт в  разработке клиент-серверных приложений. Есть опубликованные приложения в Google Play.

А также:

  • работа с JSON/XML, парсинг HTML
  • уверенная работа с Gradle и Git (умею даже делать пулл-реквест)
  • большой опыт в работе со сторонними библиотеками
  • создание и публикация собственных библиотек
  • использую Clean Architecture + MVP при построении архитектуры приложения
  • пишу unit-тесты с использованием spek + mockk
  • в основном пишу проекты на Kotlin (при необходимости могу писать на Java)
  • Работа с Stetho, Crashlytics

Используемые инструменты и библиотеки

  • Kotlin Coroutines (до него RxJava 2 и AsyncTask :) )
  • Toothpick (до него Dagger 2)
  • Moxy
  • Retrofit, OkHttp
  • DBFlow. Room ещё не пробовал
  • Glide (до него Picasso)

Дополнительные навыки:

  • Знаком с инструментами типа Figma (есть опыт как рисования макетов, так и верстки с него).
  • Примерно знаком с Agile/Scrum, спринтами и т. д.
  • Есть опыт в написании сервера на Node.js + фронтэнд на Vue.js
  • Не раз проектировал API для приложения на Apiary

Мой GitHub - github.com/ImangazalievM. 

Я на Хабре: habrahabr.ru/users/imangazalievm.

Веду блог java-help.ru (точнее вёл, его уже нет), а также сообщество vk.com/and_dev (уже неактивно).

Участие в профессиональных сообществах
Опыт работы
Современное онлайн-образование
Android-разработчик
Март 2018 — По настоящее время (2 года)

Обязанности

Занимался разработкой приложения для чтения Корана. Разработка приложения велась мною от начала, до конца:

  • Выбор библиотек
  • Проектирование архитектуры приложения,  БД, API
  • Настройка и написание автотестов
  • Настройка CI/CD

Достижения

  • первый серьезный проект, который полностью написан на Kotlin
  • в ходе разработки серьезно улучшил познания по темам: 
  1. архитектура приложения
  2. автоматическое тестирование (Spek Framework, mockk)
  3. CI/CD (Jenkins, GitLab CI)
  4. Система сборки Gradle
  • из-за медленной скорости сборки проекта (известная проблема по причине Dagger'а), было принято решение использовать многомодульную архитектуру. Это позволило ускорить сборку, но этого было недостаточно. В итоге отказался от Dagger'а и перешел на Toothpick, что позволило значительно ускорить сборку. Помимо этого были испробованы другие библиотеки (kodein, koin), но без кодогенерации работать оказалось довольо трудно.
  • Изначально проект разрабатывался на RxJava 2. После года разработки было принято решение перейти на Kotlin Coroutines. Это позволило улучшить читаемость кода и избавится от вложенных коллбеках в тех местах, где нужно было мержить данные из разных источников.
  • улучшил познания по теме баз данных (проектирование, миграции)
  • были использованы новые и интересные решения, помогающие уменьшить беспорядок в коде (AppInitializer, AppMigrator)
  • улучшил познания в SQLite: миграция БД, SQLite Cipher, FTS (Full Text Search)
  • работа с Android Spannable

Задачи

В ходе работы мне попадались следующие задачи:

  • мультиязычность (возможность смены языка пользователем)
  • смена темы приложения
  • получение данных по API и кеширование в БД
  • скачивание файлов с сервера, распаковка zip, динамическое подключение к скачанным БД
  • аудиоплеер (загрузка и воспроизвеление)
Частная практика, работа без зачисления в штат
Июль 2017 — По настоящее время (2 года и 8 месяцев)
Июнь 2014 — Март 2017 (2 года и 10 месяцев)

Занимался разработкой проектов на заказ + OpenSource:

https://github.com/ImangazalievM/CircleMenu

https://github.com/ImangazalievM/Notelin

https://github.com/ImangazalievM/Scripto

Causar Studio
Махачкала
Android-разработчик
Март 2017 — Июль 2017 (5 месяцев)

Был главным Android-разработчиком, принимал решения по выбору используемых технологий при разработке и архитектурных решений

Приложение для кафе "Caprice" (не было опубликовано) - http://causar.io/portfolio/cafe-caprice

Высшее образование
Дагестанский государственный университет
Махачкала
Факультет: Информатики и информационных технологий
Сентябрь 2014—Июнь 2018 (3 года и 9 месяцев)