👨💻 Герой: Даниил Попов, 30 лет, Москва. Выпускник МГТУ им. Н. Э. Баумана
🛠 Работа: Андроид-инженер в Bolt. Работает на удалёнке, 5/2. Гибкий график, нет чёткого времени начала и окончания рабочего дня
🧭 Рынок: Андроид-разработчик в России: 119 вакансий
Почему ты часто критикуешь андроид-разработку?
Современная мобильная разработка напоминает игру в лего: достаточно найти нужные гугловские библиотеки, собрать их вместе и получить приложение. Эти приложения часто глючат, не работают без сети и ломаются после обновлений.
Например, в апреле 2020 года я потратил несколько дней на поиск ошибки в многопроцессном андроид-приложении, которое иногда некорректно работало из-за неаккуратного конкурентного доступа к базе данных. Для решения такого рода проблем требуется опыт.
👉 Доклад Даниила Попова о поиске ошибки в многопроцессном приложении:
Некачественных приложений много, и поэтому разработчики вынуждены тратить время на их обслуживание. Недавно я нашёл фотку с розеткой, каким-то прибором и длинным проводом между ними — это иллюстрация современной андроид-разработки: в свободном доступе много инструментов, которыми пользуются неквалифицированные кадры. Этот подход я и критикую.
Ты поэтому ушёл из продуктовой разработки в платформенную?
Нет. Неквалифицированных кадров и плохих приложений всегда будет много — это не та причина, из-за которой взрослый человек может сменить деятельность. Просто я устал от однотипных задач и ушёл за новым опытом.
Я заинтересовался мобильной разработкой в 2011 году. Это случилось после покупки HTC Incredible S — моего первого смартфона на андроиде, в который можно устанавливать приложения. Мне понравилась идея, что карманный гаджет может поддерживать полезные программы и их можно разрабатывать.
Сначала я занялся самообразованием и в свободное время изучил джаву и андроид. Примерно через год я нашёл работу в каком-то местном стартапе и познакомился с фреймворком xamarin — платформой, которая позволяет создавать мобильные приложения под iOS и Android на языке C#.
После стартапа я устроился в Mail.ru Group и с 2013 года делаю приложения под андроид. К 2016 году я вырос до сеньора, а к 2017-му — до тимлида. Став тимлидом, я переключился на менеджерскую работу и на полтора года отошёл от рутинной разработки — в это время я проводил собеседования, общался с заказчиками, организовывал командную работу и писал код чужими руками.
Как тимлид я выступал на конференциях и рассказывал о работе команды. Доклад из ролика — это пример того, как мы решали проблему с работой нескольких тем в мобильном приложении:
К середине 2019 года я решил, что больше не хочу заниматься только мобильной разработкой: мне было неинтересно делать андроид-приложения и выполнять менеджерскую работу. Хотелось профессионального развития и глубокого погружения в техническую сферу. Поэтому я выбрал компанию Авито, где стал заниматься инфраструктурой проектов — делать так, чтобы новые фичи бесперебойно доходили от продуктовых команд до пользователей мобильных приложений.
А почему именно Авито и как туда попал?
В России не так много компаний, где андроид-разработчик может прокачать свои технические скилы. В Авито крутая Tech PR: инженеры компании часто выступают на конференциях, рассказывают о своей работе и общаются с разработчиками. Поэтому я заранее знал, что для профессионального роста мне нужно сюда.
Я отправил резюме, получил обратную связь и прошёл несколько интервью.
Процесс интервью в Авито
Сначала со мной созвонились по скайпу, пообщались на общие темы и попросили решить в блокноте какую-то относительно простенькую программистскую задачу.
Дальше меня пригласили в офис на платформенный этап интервью — спрашивали о том, насколько глубоко я знаю андроид.
На следующем этапе я решал задачи на проверку знаний архитектуры. Разглашать детали собеседования не могу, но обычно здесь кандидатов просят спроектировать какое-то приложение и рассказать о том, как оно будет меняться после добавления новых вводных. Например, в мессенджере появилась функция редактирования сообщений. Нужно объяснить, как это повлияло на архитектуру и что изменилось.
После проверки знаний архитектуры интервьюеры смотрят на то, как кандидат умеет решать нестандартные задачи и писать код на бумаге. Язык программирования не важен: главное — умение мыслить.
Предпоследний этап — общение с потенциальным руководителем. Здесь мы обсуждали условия работы, зарплату и прочие моменты. На этом же этапе проходит проверка на совместимость — мы присматривались друг к другу и пробовали понять, насколько комфортно нам будет работать.
После общения с руководителем меня познакомили с потенциальной командой. Мы поговорили про музыку, фильмы и другие общие темы.
После всех этапов я попал в Авито и около 8 месяцев занимался разработкой андроид-приложений: верстал кнопочки, экранчики и другую рутину. После я перешёл в платформенную команду Speed и занялся инженерной работой.
👉 В апреле 2020 года команда Speed открыла андроид-инфраструктуру Авито. Вы можете воспользоваться кодом и почитать об этом на Хабре.
Выше я рассказал о том, почему решил стать андроид-инженером и как попал в Авито. Хочу отметить, что это только моё мнение и я не имею ничего против тех людей, которые десятилетиями занимаются одним и тем же. Если они получают удовольствие от однотипной работы — могу им только позавидовать.
Какими инструментами пользуешься?
Я использую Android Studio — это среда разработки от Гугл, которая находится в свободном доступе и совместима с любыми операционными системами. У меня MacBook Pro, но для работы рекомендую брать ноутбуки на линукс — у коллег из Авито они меньше грелись и быстрее компилировали проекты.
Рабочий график
Я уже много лет не соблюдаю режим и работаю так, как удобно. Мне сложно представить, что кто-то из программистов может по 8 часов в день сохранять концентрацию и выдавать качественный код — обычно после 2–3 часов интенсивной работы все начинают заниматься отвлечёнными делами.
Есть задачи спринта и дедлайн. Я оцениваю свои силы, планирую нагрузку и каждый день делаю то, чтобы нужно, чтобы успеть в срок. У меня нет специальной системы, которую можно кому-то рекомендовать: нужно днём заняться своими делами — пойду займусь, а вечером завершу запланированное.
Поделись планами на будущее
Сейчас сентябрь 2020 года, и я уже пару недель не работаю в Авито — я ушёл по собственному желанию, переехал в Эстонию и занимаюсь андроид-разработкой в компании Bolt. Про новую компанию пока ничего не скажу, но если читателям интересно — можем пообщаться через полгода: к этому времени я освоюсь, перевезу семью и смогу что-то рассказать. Первое впечатление — всё супер.
Уход из Авито — это самое сложное карьерное решение, которое я принимал. В Авито крутые специалисты, есть куда развиваться и комфортно работать. Просто я всегда хотел пожить в новой стране и сейчас пробую воплотить свою мечту в реальность. Надеюсь, всё получится и мне будет чем поделиться.
Совет начинающим разработчикам
Универсальный и банальный совет: нормально делай и нормально будет. Если человек занимается своим делом и получает от этого удовольствие — у него обязательно всё получится. По крайней мере у меня нет знакомых программистов, на которых бы не распространялось это правило.
Если говорить о чём-то более прикладном — рекомендую твиттер. Например, после анонса Android Studio 4.1 я запустил тред — создал в твиттере ветку с короткими заметками по теме. На публикации откликнулись другие разработчики, которые своими комментариями дополняли мои наблюдения и помогли разобраться с нюансами. По такой же схеме начинающий разработчик может изучить любую тему — в твиттере не нужно много писать и можно легко найти единомышленников.