Всем привет! На этой неделе с вами Константин Аксёнов. В данный момент мой рабочий титул Mobile engineer в компании Sonder Australia. В мобильную разработку я окунулся в 2010 году и с тех пор она захватила меня.
За ранее прошу извинения у "GMT+3". Я максимально постараюсь отвечать на вопросы на следующий день, если они будут заданы после обеда.
Наше рассписание на эту неделю выглядит следующим образом
1) UI Тестирование
2) Хайпанем за Diversity 21 века
3) Профессиональная релокация
4) Потрем за архитектуру
5) Печеньки на работе и не только
6) Как подготовиться к собеседованию
7) Тема будет выбрана путем голосования
Поехали! Тема сегодняшнего для: UI тестирование (Android). ⚒️
Количество UI тестов в вашем проекте
Мне кажется что это очень хорошее обьяснение "закону Парето" 80 процентов тестов написанно 20 процентами компаний
На самом деле это обычная история. В мобильной разработке UI тесты практически всегда имплиментируются в последнюю очередь pic.twitter.com/RGiPHRE3Fy
Я очень не люблю однотипную работу. Особенно в виде "Протестируй". По этому я в любом проекте пытаюсь написать тесты, которые покрывают хотя бы мою зону ответсвенности
В большинстве случаев для успешного запуска UI тестирования в проекте необходимо наличие Mock сервера и предустановленными данными и отдельной сборки приложения. Так что будьте готовы к изменениям.
Ошибочно думать, что использование UI тестирования необходимо только для повышения стабильности. Представьте, что вам необходимо сгенерировать 5 скриншотов * 38 локалей * 3 типа устройства. Мне сложно представить, сколько данная задача займет на ручное выполнение
UI тестирование, на мой взгляд, является неотъемлемой частью CI/CD здорового человека в 2к19
Опыт написания тестов (только честно)
За последние 1,5 года я провел больше ста интервью и на моей практике только 1 из 20 имел опыт написания UI тестов
С чего начать? Думаю, что самым популярным фреймворком для написания UI тестов для Android приложений является (Многие сейчас скажут "Спасибо Кэп") Espresso
developer.android.com/training/testi…
Вероятно, многие не знали о том, что в Android Studio из коробки существует Recorder для генерации UI тестов
developer.android.com/studio/test/es…
В конечном итоге будет сгенерирван код похожий на пример. pic.twitter.com/5JJAaCa7J3
Это один из самых простых примеров, но уже его достаточно тяжело читать. Попробуйте себе представить, что будет, если тест состоит из 50+ шагов (e2e - End to End тест)? Так же данный код практически невозможно переиспользовать.
На помощь с переиспользованием кода нам приходит на помощь паттерн Page Object
martinfowler.com/bliki/PageObje… pic.twitter.com/uvfYE7E2rs
Конечно грех не рассказать о библиотеке для UI тестирования Kakao, в мейнтейнерах которой я состою.
Красивый DSL, много сахара, имплементация PageObject паттерна - вкусняшка
github.com/agoda-com/kakao
Готовьте палки и камни. Сегодня мы поболтаем за Diversity.
В последние года это понятие стало появляться на слуху все чаща и чаще. Хочется узнать, есть ли четкое понимание того, что на самом деле значит это заветное слово?
Diversity в переводе означает "Многоподобие, Разнообразие"
Данный фактор помогает избежать "варки в собственном соку" а также получить новый опыт в общении.
В целом, по тенденции, все крупные международные компании имеют очень высокий Diversity фактор
Люди с разным бэкграундом по разному принимают решения. И чем больше этих различий тем более разные идеи они могут предложить. Различные варианты решения проблем. Что, в целом, должно положительно сказывать на продукте
С чем у вас ассоциируется Diversity
Начиная работать за рубежом очень соблизнительно завязнуть в "русском комьюнити".
В моей прошлой компании было приблизительно 15 процентов русскоговорящих коллег. В конце концов у нас образовался свой кружок по интересам.
На текущем месте я единственный русскоговорящий
Мне кажется, но в последнее время тема Diversity на столько хаповая, что начинается Diversity abuse. Людей берут на позиции не исходя из из скилов а потому, что они не такие как все.
Может в российских компаниях это не так заметно
В одной из компаний я видел диплом "За трудоустройство женщин".
Лично я считаю что человека надо ценить по его фиту на данную позицию а не потому, что он отличается от остальных
Вообще, достаточно сложно говорить о Diversity живя в стране, где 80% населения являются эмигрантами в первом поколении
Есть ли приимущество на собеседовании у девушки-программиста
Если быть честным, то у меня никогда не возникало мысли про то, что женщина может быть плохим программистом
Неделю назад моей маме было 58 лет и она работает ведущим программистом, а начинала она с перфокарт
На город опустилась тьма, и все рабочие разошлись по домам. До встречи завтра! Тема
"Профессиональная релокация"
Если есть специализированные вопросы, прошу задавать в мета-треде, а завтра постраюсь ответить.
Доброй ночи дорогие друзья!
Думаете ли вы о релокации?
За последние 3 года моя жизнь координально изменилась.
Сначала был переезд в Бангкок. Теперь, уже как 4 месяца я живу в Сиднее.
Переезд дался не так уж и легко. Пришлось столкнуться с можеством проблем и принять много решений.
Сейчас, я ни грамма не жалею о своем решении
Есть ли у вас страх языкового барьера
Статейка о моем переезде в Тай
habr.com/ru/post/358730/
У меня был очень большой страх с Английским. На практике все оказалось проще. Когда вы работаете с междунарождной компании у всех есть основная цель - понять и быть понятыми.
Это будет странно, но для коммуникациями с коллегами достаточно intermediate уровня. Главное говорить
Не нужно думать о релокации как пути в один конец. Очень много людей возвращается обратно.
Но однозначно, стоит попробовать. Спустя 2-3 года придет окончательное осознание.
Я когда уезжал, думал, что вернусь через годик. Через годик подумал о еще одном годике...
Самое гавное, что переезд помогает убрать "зашоренность". Незнаю как это обьяснить.
Сейчас я смотрю на 80 процентов вещий по другому. С
Любой переезд это как "новая маленькая жизнь". Чувство, что все новое и время замирает. Абсолютно новый опыт во всем.
На самом деле найти работу за рубежом гораздно проще чем кажется. Главное определиться с направлением.
В Евпропу вообще уехать проще простого. 3 месяца назад одна моя знакомая с опытом мидла легко ворвалась в стартап. И это не единственная история.
По митапам скучать явно не приходится. Сейчас слушаю ребят в @canva.
В отличие от российских митапов тут принято пить пивасик pic.twitter.com/eqnWv93c7p
Разговаривать об архитектуре ПО можно бесконечно.
Сегодняшний день посвящается именно ей.
Let's dig it?
Наличие архитектуры в проекте дает множество бонусов, основные из которых
1) Расширяемость - легко добавлять новые фичи
2) Стабильность - меньше крешей
3) Тестируемость - отсутствие жесткой связанности в коде
Какую архитектуру вы предпочитаете в проекте
Android разработчики, что вы предпочитает для DI
Когда я вижу в проекте использование RxJava во View-Layer - чувствую себя как то так (RxBinding) pic.twitter.com/J87EC4bKsD
Хуже отсутствия архитектуры может быть только отсутствие документации.
В текущем стартапе "source of truth" выступает приложение iOS. Как же у меня частенько подгорает.
Примеры разных архитектур Android App
github.com/googlesamples/…
Важны ли "плюшки" на работе, кроме зарплаты? Является ли это для вас мотивирующим фактором
Иногда я чувствую себя как будто я в сериале Silicone Valley.
Пятница, у нас на работе - собачий день.
Коллеги могут приводить своих песиков на работу pic.twitter.com/vZzeO3YOU9
В Австралии рабочая культура сильно отличается от российской.
В России у нас принято уделять 70 процентов времени работе. Однако, здесь уже после 5 вечера редко кого можно увидеть на рабочем месте.
Даже в самом мельком стартапе всегда будет пиво и печеньки в холодильнике.
Лично для меня, главным бонусом на работе является наличие вкусных обедов.
В одной моей предыдущей компании оплатили всем годовой абонемент в спортзал. Спустя месяц уже никто не ходил туда.
А кушаем мы каждый день. Это экономит время и деньги
Песиков любите? pic.twitter.com/RmbBxMziuq
Было очень странно, когда я в первый раз увидел на работе отца с грудным ребенком.
Я привык иметь четкое разделение дом - работа.
Ничего не могу с собой поделать, но все эти факторы, мягко говоря, отведают от основной вещи на работе - от работы.
Что бы вы выбрали, зарплата + 10% или пряники и бонусы в виде тренажерки или ДМС
Friday has begun pic.twitter.com/VSzOLLe5qi
Тема сегодняшнего дня - собеседования.
За последние 2 года я провел около 150 интервью а также прошел около 30.
Хочу обсудить общие моменты и поделиться опытом, так как собеседования а зарубежных компаниях сильно отличаются от российских
Сколько у вас было интервью за последние 24 месяца?
В больших компаниях, на интервью выделяется слот 1-1.5 часа.
Есть общий план, вроде
Представление
Кодинг
Технические вопросы
Вопросы кандидата о компании
Я взял за практику добавлять 5-7 минут на раскрытие неправильных ответов кандидату, большинство говорят спасибо за это
В зарубежных компаниях приходится собеседовать много людей из индийского региона
Пожалуй главное правило, которое можно вынести отсюда - ваш уровень зависит исключительно от разностороннего опыта, а не от количества лет, которые вы потратили в компании двигая вьюшки
В России на интервью упор делается на технические скилы. За рубежом много внимания уделяется Cultural fit.
Мне сначала било по самооценке, когда я не мог пройти интервью с HR. Все вроде хорошо, но получаю отказ.
Со временем привыкаешь, и, к сожалению, учишься врать.
Однажды меня отклонили только из за одного вопроса на техническом собеседовании.
"Кем вы видите себя через три года?"
Ответил что "Я стою на вершине горы, подо мной Деревня в огне, а на моем лице - улыбка"
Самое глупое, что все мы знаем "правильные" ответы на это вопрос.
Также у меня бомбит от вопроса "Почему вы хотите работать именно у нас?"
За 9 лет а мобайле я повидал удивительные имплантации.
Всегда хочется ответить "Ну я слышал что у вас хорошая зарплата, ну и работать надо поменьше"
Но надо льстить и отвечать что "ваш стартап уникален"
Кстати, алгоритмику знать все же необходимо
Самый базовый уровень можно набрать на сайтах типа leetcode.
На своем опыте я тренил codewars. Причем не обязательно брать сложные олимпиадные задачи.
Большинство базовых задач на собеседованиях пишутся в 30 строк не более
К слову говоря, накидывайте тему для завтрашнего общения. Воскресенье - день лёгкий должен быть.
Кто о чем хочет поболтать? Может какие то темы раскрыть.
Всегда подготовьте вопросы о компании. Мои любимые про:
1) Размер команды и почему появилась Жанна вакансия
2) Как проект меняет жизнь людей к лучшему
3) Как изменилась ваша компания за последние 3 года
4) Про отношения между коллегами
Когда я провожу интервью, я понимаю что мы тратим время с двух сторон.
После интервью обязательно нужно раскрыть кандидату, где он был не прав.
Если это не делать, то человек не будет знать, где же именно его слабые места. И соответственно ваше время потрачено впустую
И пожалуйста, уберите из резюме на позиции выше Middle такие пункты как: Git, JSON, XML - это искренне умиляет.
Особенно люблю по-тролить про знание git, так, по приколу...
Всем доброго воскресного утра дорогие разработчики, особенно тем, кто работает в АОЕ*
* рабочая неделя начинается с воскресенья
Участвуйте ли вы в open source community?
Куда бы вы хотели релоцироватся?
Какую работу вы предпочитаете?
Спасибо, что терпели меня неделю, дорогие друзья!
К сожалению, +7 к Москве и уже нужно идти спать. Надеюсь вам было интересно читать мои сообщения и я не был скучным
Keep in touch:
instagram.com/vacxe
github.com/vacxe
habr.com/users/vacxe
t.me/vacxe pic.twitter.com/WeWmjwI3kd
- https://developer.android.com/training/testing/espresso
- https://developer.android.com/studio/test/espresso-test-recorder
- https://martinfowler.com/bliki/PageObject.html
- https://github.com/agoda-com/kakao
- https://github.com/googlesamples/android-architecture
- https://github.com/JakeWharton/RxBinding
- http://github.com/vacxe
- https://habr.com/ru/post/358730/
- http://habr.com/users/vacxe
- https://javarush.ru/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java
- http://instagram.com/vacxe
- http://t.me/vacxe