Читаете ли вы блог Хабр Карьеры? Если да — оцените, как мы справляемся. А если нет — расскажите, что читаете для развития карьеры. Пройти опрос (займет 5-7 минут)
Обо мне

В настоящий момент прокачиваю знание английского языка до уровня intermediate. Всегда слежу за развитием технологий, в настоящий момент мое сознание будоражит реактивное функциональное программирование.

Участие в профессиональных сообществах
Опыт работы
ИТ, разработка ПО
React Native Developer
Февраль 2018 — По настоящее время (2 года и 6 месяцев)

Я пришел в момент когда был первый релиз переписанного на RN приложения для iOS.

Сначала была долгая адаптация приложения под Android, чтобы оно наконец-то стало кроссплатформенным.

По мере роста приложения, добавления и удаления различных функций, разработка начала заходить в тупик из-за принятия неверных архитектурных решения на ранней стадии разработки приложения.
Я инициировал процесс рефакторинга и занялся проектированием новой архитектуры.
Были вот такие основные проблемы:
- Подход с контейнерами над вьюхами приводил к 4-5 кратному прокидыванию параметров, что очень усложняло написание новой логики и исправления багов.
- Огромное количество экранов (87), которые содержали в себе много повторяющихся визуальных элементов, а так же повторяющуюся логику экшенов и редьюсеров находились в полном хаосе в плане расположения (отдельно папка редьюсеров, отдельно элементов, и т.д.). На поиск проблемы в 1 конкретном экране иногда приходилось открывать 5-7 файлов из разных концов проекта.
- Redux вообще не предназначен для одновременного существования 2 копий одного экрана. А по дизайну можно было открыть почти любой экран в любой нижней табе.

Для решений этих проблем было сделано:
- Установлены соглашения по нэймингу файлов, а так же их расположении в зависимости от типа
- Переработан подход к написанию новых экранов чтобы максимально избежать прокидывания параметров вглубь
- Разработан подход Redux sub-app чтобы продолжать использовать Redux, однако избежать проблемы нескольких копий одного экрана
- Добавлен подход глобальных middleware Saga, чтобы оградить глобальную и/или повторяющуюся логику на разных экранах

Ну и по ходу постоянная борьба за производительность, удобства разработки и стабильность RN приложения. Довольно много модулей (примерно 20) написаны нативно, в том числе и вьюхи.

Несколько месяцев как в разработке находится еще один проект на Flutter. Используем подход Bloc pattern

NINE AND ONE
Санкт-Петербург
React Native Developer
Август 2017 — Январь 2018 (6 месяцев)

Работал над приложением аналогичным по функционалу с Яндекс.Транспорт. Это был гос. заказ и, к сожалению, он заглох, приложение было практически закончено, но так и не вышло на свет.

Большая часть логики была завязана на https://github.com/react-native-community/react-native-maps

Использовался свой форк, чтобы решить проблемы производительности на Android.

Из-за огромных ограничений API сервиса (http://transport.orgp.spb.ru/Portal/), на клиенте было очень много различных доп. расчетов чтобы маркеры вели себя естественно, правильно указывая направление движения, не срезали через дома и т.п..

Из особенностей - это полностью кастомный интерфейс, построенный на жестах и анимациях. Очень сильно прокачался в создании и оптимизации различных анимаций на RN, а так же все что связано с gesture system.

Был еще один гос. проект, который кончился еще быстрее, ничем не примечательный, кроме того, что на нем мы попробовали использовать Expo. Эксперимент был удачный, ибо приложение было очень простое.

Мобильные приложения для стартапов и интернет-магазинов
Москва
React Native Developer
Май 2017 — Август 2017 (4 месяца)

Небольшая подработка на один конкретным проектом:

https://start-mobile.net/ru/portfolio/mesto-vstrechi-s-druzyami/

Из особенностей работы - это была полностью распределенная команда от Москвы до Владивостока, работали в 6 человек (только на приложении) по асинхронной схеме работы.

Частная практика, работа без зачисления в штат
Екатеринбург
Android разработчик
Февраль 2017 — Май 2017 (4 месяца)

В настоящее время работаю на фрилансе.

С этого момента работаю в стэке DI + MVVM ( Android Data Binding) + реактивное программирование. Написал собственное решение для обработки поворотов экрана без потери данных при любых условиях и без необходимости написания логики для каждого экрана. По этому поводу написал статью на хабр (https://habrahabr.ru/post/328512/).

В последнее время очень сильно заинтересовал React native. Очень активно изучаю все свободное время.

https://habrahabr.ru/post/329380/

https://habr.com/ru/post/333518/

Shark develop
Новосибирск
Android разработчик
Ноябрь 2016 — Февраль 2017 (4 месяца)

Обязанности:

- оценка времени разработки целых приложений или их частей

- поддержка старых проектов

- разработка новых проектов для android

Достижения:

Огромный рефакторинг приложение Живика (https://play.google.com/store/apps/details?id=ru.mobile.jivika&hl=ru)

- Была переделана навигация, добавлен DrawerLayout

- Были добавлены локальные пуши-напоминания о приеме лекарств

- Добавлена карта с маркерами, логика определения ближайшей аптеки от пользователя (на тот момент бэкенд этого делать не умел, реализовывал на клиенте)

- Кастомные элементы верстки в фильтрах и экране товара

Предоставление трансфера по всему миру
Новосибирск
android разработчик
Июль 2016 — Ноябрь 2016 (5 месяцев)

В компании начали нуждаться в android разработчике, поэтому я взял на себя поддержание готовых приложений.

За это время:

- исправлял старые баги, а так же дописывал нужный новый функционал к приложения компании:

1. https://play.google.com/store/apps/details?id=com.iwayex.transfer

2. https://play.google.com/store/apps/details?id=com.iwayex.app

- написал собственное приложение (бронирование трансферов) для стойки в аэропорту Толмачево.

Разработчик в отделе тестирования (QA)
Ноябрь 2015 — Июль 2016 (9 месяцев)
Обязанности: Покрытие автотестами всех систем компании: - онлайн диспетчерская - сайт заказа трансфера - система установки прайс листов - 2 мобильных (android) приложения Написание тест кейсов и тестовых сценариев Разработка ПО для упрощения процесса деплоя Достижения: Внедрение в рабочий процесс автоматизации тестирования посредством написания: - тест-кейсов на все внутренние системы; - автотестов для API работающем на протоколе Json-rpc (js + mocha, позже переписал на clojure); - selenium тестов (java + Junit, позже переписал на clojure - одновременная работа selenium и phantomjs driver'ов, для прогонки селениум тестов на сервере без иксов. Да, это работает=)); - нагрузочных тестов (Jmeter); - автотестов для Android приложения (robotium).
Высшее образование
Сибирская государственная геодезическая академия; НИИГАиК
Новосибирск
Факультет: ИГиМ - Геодезический
Сентябрь 2011—Июль 2015 (3 года и 10 месяцев)
Учился на факультете "Информационные технологии". С 4 курса работал эникеем при университете, под началом системного администратора. С 4-го курса так же начался курс CCNA, для обучения был оборудован (при моем участии) специальный кабинет. Общее число компьютеров 1000+. Написал диплом (Организация службы технической поддержки предприятия) по опыту работы эникеем в университете.