Обо мне

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

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

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

Навыки:

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

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

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

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

- RxJava 2, Toothpick, Moxy, Retrofit,  Glide/Picasso

Скрины неопубликованных работ можете посмотреть ниже.

Мой GitHub - github.com/ImangazalievM. 

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

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

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

Обязанности

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

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

Достижения

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

Задачи

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

  • мультиязычность (возможность смены языка пользователем)
  • смена темы приложения
  • получение данных по API и кеширование в БД
  • скачивание файлов с сервера, распаковка zip, динамическое подключение к скачанным БД
  • аудиоплеер (загрузка и воспроизвеление)
Causar Studio
Махачкала
Android тимлид
Март 2017 — Июль 2017 (5 месяцев)

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

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

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