Давай начнем стандартно – расскажи, кто ты, чем занимаешься, и о чем, может быть, хочешь поговорить?
— Меня зовут Сергей, я работаю удаленно, мобильным разработчиком, в компании “e-Legion”. Это питерская компания. Могу поговорить про мобильную разработку, могу — про особенности трудоустройства в айти-компании, так как с начала года это мое уже третье место работы.
Тогда с этого и начнем. Три работы за год — нормально ли это? И что, в Саратове никому мобильщики не нужны?
Крупные фирмы Саратова всем известны, но уровень оплаты, который предлагают мобильщикам, ниже среднего, и я сразу ориентировался на удаленную работу.
Про количество работ — я тут поддался на современные веяния и устроился в стартап один. Ровно через два месяца после трудоустройства у них начались проблемы доживания до следующих раундов финансирования, и они распустили полкоманды, включая меня. Поэтому в сумме получилось три.
Про текущую работу — какой профиль приложения, какова твоя роль в нем?
Я второй разработчик в команде, есть еще лид, который ведет ее не первый год. Про приложение подробно говорить не могу: все под соглашением о неразглашении. Фирму я выбирал по описанию вакансии — мне понравился уровень детализации технических навыков, который они указывали, и оказалось, что это очень крутая компания с клиентами уровня 1 канала, Альфа-банка, Ашана. На Тэглайне они вторые. Это мобильная студия, они делают приложения на заказ, проводят конференции https://mbltdev.ru и https://mblt.ru .
А давно ты занимаешься мобильной разработкой? Почему iOS, а не Андроид? Всем ли ты доволен?
В мобильной разработке я года четыре.
После универа я пошел на производственную практику и попал в фирму Синкросс. Эпам и Мирантис тогда только появлялись, и толком было непонятно, во что они вырастут.
А в Синкроссе мне сразу понравилось. Компания занималась микроконтроллерами; моим заданием на испытательный срок стал контроллер, который управляет световым днем в большом аквариуме, чтобы рыбкам светало, темнело, и чтобы все это можно было настраивать через ЖК-мониторчики. Через два месяца программа с названием “Рыбья приблуда” была готова, и рыбкам стало хорошо.
Потом началась промышленная автоматизация, со своими трудностями и прелестями. Она несколько отстает от современного айти, и я это понял, когда решил поменять работу.
Ничего из того, что ты знал и умел, было не нужно никому…
Фактически — да, и это было обидно. “Сергей, мы понимаем, у тебя большой опыт, но он нерелевантен”. Как нерелевантен — я сделал столько интересных и хороших штук! Недавно был в Синкроссе и видел, что программами, которые я писал одиннадцать лет назад, до сих пор пользуются. Если штыковой лопатой можно копать — ею и копают, не обязательно менять ее раз в два года на новый фреймворк. Компьютеры на Windows Embedded с аптаймом более пяти лет до сих пор работают, собирают данные, тушат пожары. Все скромно — мало ресурсов, маленькие базы — но со вкусом и работает. За восемь лет я дорос до ведущего программиста, занимался код-ревью работ других программистов. И все это — нерелевантно. Так или иначе, в 2013 году я стал искать работу, и наученный горьким опытом, выбрал самое модное направление — iOS.
Это было стратегически принятое решение, и я им доволен. Зная синтаксис Си, можно было попробовать пойти писать на С#, если говорить о прикладном программировании, а не о том, знаю ли я тот или иной фреймворк.
Но ты же понимаешь почему так — с нерелевантностью? Ты состоявшийся программист, как минимум миддл, а то и сениор, а толку от тебя полгода будет как от джуна. И что за эти полгода произойдет — останешься ты работать или нет, окажешься балбесом, или наоборот — гением, который будет приносить большие деньги — работодателю непонятно. А платить тебе все это время нужно вполне прилично.
Все правильно, да. Но в противовес вот мини-история. В одной или даже нескольких крупных айти-компаний Саратова работала преподавательница английского языка, к которой у учеников были претензии. Она выделяла нескольких любимчиков, а на остальных подзабивала. Любимчиками были те – внимание! — кто уже хорошо знает английский, у кого были командировки в English-speaking countries. И многие из-за этого английский ненавидели. Это же полный непрофессионализм — записывать в любимчики тех, кого фактически учить уже не надо. Так и с наймом – круто, конечно, набирать тех, кто и так уже все умеет, готов работать за три копейки, да еще и подтянет всех вокруг. Но найм — это взаимодействие разных сил, и третий закон Ньютона всех уравновесит: у бизнеса есть желание набрать квалифицированные кадры и платить им необходимый минимум, а у работника — получше устроиться, а иногда и делать поменьше.
В айти довольно давно установился рынок работника, и еще долго будет. Толковый специалист место себе найдет — чуть лучше или хуже, с более или менее вкусными печеньками, но найдет.
Все еще усугубляется тем, что очень немногие компании в Саратове умеют собеседовать. Легко мерить технические знания и навыки. Но если, как в твоем случае, опыт нанимателя и специалиста пересекается слабо — случается тупик. Я не могу прособеседовать тебя по микроконтроллерам, ты не расскажешь ничего про C#. А за час собеседования снять, какая там лояльность или способность быстро выучить все на свете — довольно трудно.
Вернемся к iOS-разработке. Что там хорошего, кроме изначально привлекшей тебя модности?
Язык кривоватый, но писать можно. Там постоянно растет линейка устройств, увеличивается и количество устройств у народа — у меня сын в садике уже требует себе айфон, а кнопочный телефон он и в руки не возьмет.
Я говорил, что пытался выбрать перспективное направление, и на практике все ожидания оправдались. Эппл с каждым релизом вносит довольно много всяких новинок, и быть крутым экспертом, который все про iOS знает, становится все труднее и труднее. Даже просто посмотреть все техтолки и презентации не получается. Ландшафт постоянно усложняется, причем с чудовищной скоростью. Вымирают люди, которые “одинаково хорошо программируют под iOS и Андроид” — сейчас на практике это скорее всего значит, что он нахватался по верхам и программирует одинаково плохо.
Ты считаешь себя как минимум неплохим разработчиком — почему?
Во-первых, мне это нравится. Я не испытываю какой-то боли, когда надо изучить что-то новое, сменить парадигму разработки, перечеркнуть ряд подходов и устоев. Мне нравится кодить, это фактически хобби: я могу после работы свой домашний проект поделать или помочь кому-нибудь проект пособирать — для меня это не проблема.
Ну и вообще, у меня в аппсторе куча проектов, которые я писал или как-то в них участвовал. Люди их качают, пользуются, оставляют отзывы — и они неплохие. В целом же, на мой взгляд, хороший разработчик — это тот, кто не стесняется переучиваться, осваивать новые подходы, ну и конечно, не забывает писать тесты, чтобы видеть — нормально ты сменил парадигму или ерунда какая-то получается.
Например, С++ — это мультипарадигмальный язык. Можно взять процедурный подход, объектно-ориентированный, функциональщина в 11-й версии добавилась. SWIFT такой же, хочешь — stateless пиши, или функционально, или протокольный подход пробуй — пожалуйста.
Разработка постоянно развивается. Раньше был популярен MVC, потом MVVM, потом VIPER. И этих трех-четырехбуквенных обозначений много. Есть общая тенденция — максимально разгрузить вьюху, сделать сервисные классы, сделать презентер, максимально переиспользовать код. А на каком-то этапе все эти наработки приходится выкидывать и учиться делать все по-другому. С быстро меняющимися парадигмами и модой становится все труднее и труднее переиспользовать старые наработки.
Сейчас на первое место выходит чистая архитектура, когда люди думают не только о решении задач, но и о том, чтобы сделать красиво.
А почему ты вообще должен следовать за модой?
Сейчас расскажу. На собеседовании в начале этого года меня спросили , владею ли я такой архитектурой, как VIPER. Я имел представление, что это такое, но без живого опыта было трудно. А владение этой архитектурой из миддл-разработчиков сразу в сениоры подталкивает — а это совершенно другой уровень зарплат. Лишние 20-30 тысяч по итогам собеседования — это неплохо.
Самое смешное оказалось в том, что на практике VIPER (который вообще-то про чистую архитектуру), у всех со своими особенностями, а иногда даже используется скорее номинально.
То есть на собеседовании спрашивают как со взрослых, а на практике можно писать как хочешь.
Ну да, никакой архитектурный подход личный инженерный уровень не заменит. Возвращаясь к вопросу моды — она вполне рациональна. В проекте, где нормально используют VIPER, новичок может разобраться за пару дней.
Формируется стандарт.
Да. И идти на проект, где нет чистой архитектуры, тем более, если нет, например, код-ревью, и команда постоянно в техдолге копается, не понимая, что у них там происходит — да ни за какие деньги.
Что-то можно сказать про перспективу — куда все развивается? Что будет в iOS в будущем?
Все, кто этим занимается, и так знают ответ. Сейчас Эппл добавили ML и AR Kit — инструмент, который по заранее обученным моделькам умеет распознавать что-то – картинки, например. Ты можешь купить модель или взять бесплатную в гугле, и в своей предметной области она будет помогать распознать, на что ты направил камеру. Пока, правда, непонятно, как этим пользоваться, т.к. iOS стоят в довольно дорогих персональных носимых устройствах. Если взять смартфон на андроиде, за $100, можно было бы собрать модуль, который распознает и проверяет изделия на конвеере или смотрит на плату и сразу говорит, правильно ли она спаяна.
Дополненная реальность — по ней была красивая очень презентация. И теперь в профильных группах и чатах люди обсуждают, как это можно было бы использовать, готовятся к хакатонам. Пытаются мебель расставлять, измерять что-то — то есть крутятся вокруг того, что и так показал Эппл. И в конце концов, заказывая мебель, разумно, наверное, пригласить замерщиков, а не рассчитывать на то, что тебе все смартфон посчитает. На одном хакатоне показывали приложение, которое умеет на план, нарисованный в журнале, ставить объемную мебель, заранее отрисованную в 3D-редакторе. И пользователь, глядя через телефон на бумажную страницу, видит модель квартиры и то, как там будет стоять мебель.
В мобильной разработке, и iOS в частности, приняты маленькие команды? Ты упоминал, что у вас два разработчика.
Два-три — это оптимально. У нас перекрестное ревью, и мы вдвоем опережаем команду из трех андроидщиков.
Это потому что вы крутые? Или под iOS проще писать?
Сложно однозначно сказать. Скорее потому, что проект изначально был сделан в очень чистой архитектуре, с нашим подходом реально очень просто что-то добавлять, и поэтому на встречах предварительная оценка наших задач оказывается в среднем в два раза меньше. На андроиде писать посложнее.
Поэтому еще раз: кто хочет в айти что-то делать, для того iOS — это очень неплохой вариант, рекомендую.
А по методологиям разработки у вас что применяется?
Скрам, спринты. У нас общие с андроидщиками дизайнеры, тестировщик и представитель заказчика. Есть набор автотестов, которые написал человек, уже ушедший с проекта. Довольно лаконично и красиво организованная команда.
Поговорим про особенности айтишного трудоустройства?
Давай. Эту работу я нашел в Линкд-ине. Решил — пусть рекрутеры меня сами находят, перенес туда мой профиль из гитхаба — со всеми навыками и ключевыми словами — и воспользовался скриптом, который добавляет в контакты других iOS-разработчиков и рекрутеров. Получилось около двух тысяч.
Открыл профиль в гитхабе с моими проектами, накидал текст, который показывал мои интересы в плане технологий, не касаясь зарплаты. Стали поступать реальные предложения, и одно из них я в итоге и принял.
Вот на этой работе ты планируешь проработать продолжительное время?
Да. У них выстроено обучение, продвижение по внутренним уровням открыто и привязано к знанию iOS-систем. И очень приятно по ним идти, так как ты понимаешь, что все, кто на этом уровне находится, примерно одинаковые вещи изучали и знают.
Как человека, который выбирал из множества работодателей, спрошу — какие требования у тебя к компании-работодателю?
Во-первых, чтобы коммуникация в команде была хорошо выстроена и люди друг друга понимали. Качество кода, который пишется, тоже важно. Где-то между этими пунктами стоят деньги — зарплата должна быть как минимум конкурентной, лучше — чуть выше рынка. Чтобы сотрудники развивались, чтобы компании было интересно, чтобы она подталкивала их к развитию, потому что решение текущих задач — процесс бесконечный, и часто от них трудно оторваться самому, и глаз замыливается.
Плюшки в офисе, корпоративные программы и ДМС проходят стороной, так как офис я уже год снимаю сам, и плачу за него из своего кармана. Но питерская зарплата это покрывает.
У меня получается реально больше сделать тут, чем дома.
Почему Саратов? Наверное, мог бы переехать хоть в Москву, хоть за границу. Но остаешься здесь.
Есть иллюзия, что можно уехать куда-то и оставить проблемы здесь. Но мне кажется, что большинство проблем такой человек все же повезет с собой. Будет чуть по-другому, но то же самое. Если ты халатно относился к работе, и тебя не понимали — ну с чего при переезде это поменяется?
Трава-то зеленее там, да.
Денег побольше? Возможно. Для меня деньги играют важную роль, но не первостепенную. Да, если поехать в другую страну – там, может, зарплаты выше, и государство по-другому работает. Но по-настоящему качественно о своих интересах позаботишься только ты сам. Все бытовые проблемы класса “тебя залили соседи сверху” можно решать и тут, в России. Мне приятнее жить тут и получать такую зарплату, чтобы можно было во все эти страны поехать, но не переезжать. А там ты всегда будешь иммигрантом, и никто не оценит тебя на самом деле, а наоборот, будут коситься и думать: “А фигли ты к нам на все готовое приехал”. Никто из местных не будет думать, что ты приехал развивать страну — наоборот, их деды трудились и поднимали это место, а ты тут кто — непонятно.
То же самое и на уровне города — зачем ехать в Москву, когда можно частичку Москвы организовать и на этом уровне. Где родился, там и пригодился. У нас рыбалка отличная, если чуть от города отъехать, и климат хороший — летом жарко, зимой холодно. Зимой коньки и лыжи, сноуборд, лес зимний.
Летом — острова, пляжи, водные лыжи. Нет разве что совсем экзотических вариантов типа подводной охоты на “чистой воде”.
Ты активно участвуешь в жизни айти-сообщества. Выступал недавно, активно посещаешь митапы и конференции. Каким тебе видится это сообщество? В чем его минусы, или наоборот — плюсы?
Оно есть, активисты умудряются найти спонсоров, склонить свои компании к участию в мероприятиях сообщества, и это очень хорошо. Хотелось бы, чтобы таких людей и компаний было побольше. Большое сообщество означает, что и офисов продвинутых компаний в регионе будет больше, они будут платить налоги и зарплаты. Сообщество важно развивать, делиться опытом, собирать круглые столы. И я сам участвуя в них понимаю, что многого не знаю, вдохновляюсь и учусь. Раз в месяц если бы в среднем что-то происходило — было бы хорошо.
Есть ли кроме работы какие-то хобби, увлечения — чем ты занимаешься?
Спорт — мой стиль жизни. Я стараюсь раза три в неделю заниматься кроссфитом. Чтобы не столько набирать массу, сколько сохранять возможности тела. Весной и осенью, когда вода прозрачная, занимаюсь подводной охотой. Это достаточно опасный и тяжелый вид спорта. Люблю на машине с палатками выехать, чтобы на природе отдохнуть.
Может быть, ты сам о чем-то поговорить хочешь?
В качестве мини-дискуссии можно обсудить, почему в Саратове нет продуктовых компаний. В других городах именно продуктовые компании становятся центрами сообществ, через них людей привлекают и пиарят свой продукт. В Москве, например, Авито ищет мобильщиков и постоянно организует для них просмотры, встречи, они на слуху в сообществе — и если им понадобится десяток специалистов, они их моментально найдут, причем хороших.
Я правды не знаю, но предположу, что в Саратове нет выраженного предпринимательства и больших денег. Продуктовые компании где живут – в Москве, Питере, Самаре.
Ага, ага. А ещё — в Воронеже, Ульяновске, Волгограде даже
Не прав, да. Но по-моему для таких городов типично иметь одну-две продуктовые компании, которые под себя и форматируют весь рынок. То есть и там их не “много”. В Пензе даже есть, вспомнил.
Есть, да. Фанкорп, я их видел, когда на SECON ездил. Они не работают по подряду — у них свой собственный продукт.
Почему в Саратове нет таких компаний — сложный вопрос. Возможно, потому что у нас бурно развилась именно аутсорсовая компонента. Но это вообще не должно быть связано, потому что продуктовая компания это, в первую очередь, хорошая предпринимательская идея, которая выстрелила и развилась.
В общем, не получилось. Не вижу простого объяснения. Те, кого я знаю, так или иначе идут путем реализации чужих идей за деньги, под заказ.
Добавлю только, что не обязательно быть продуктовой компанией, чтобы вкладываться в развитие сообщества профессионалов — просто надо понимать, что это важно.
В рамках расширения сознания проходил курсы по UI/UX-дизайну — не как рисовать, а как правильно структурировать приложения. И там говорили, что есть два пути: первый — когда ты делаешь под заказ, и в рамках этой работы пытаешься разобраться в условностях отрасли заказчика; а второй — когда ты делаешь свой продукт, вкладываешься в него, и через это сам развиваешься. Классно поработать и там, и там, но работая над собственным продуктом, обычно гораздо глубже закапываешься в детали.
Это для того, чтобы привнести что-то реально работающее в этот мир, а не просто “мы модный стартап, набрали фреймворков, полили сверху блокчейном”.
То есть надо не просто выполнять требования какого-то дяди-заказчика, а надо брать задачу в собственность и вкладывать свое собственное видение и душу.
Простой пример: VIPER, про который мы говорили, сейчас очень на слуху в iOS-разработке. Его в текущем популярном виде сделали парни из Рамблера, которые оттачивали идеологию на своих продуктах. Они расширили круг полезных знаний.
Хотел еще раз акцентировать, что для этого не надо работать в продуктовой компании — достаточно с душой относиться к своему делу. Это, скорее, вопрос внутренней дисциплины.
Каждый сам выбирает глубину своей душевности, этому не научишь. Можно объяснить людям, как тянуть шкоты, но для того, чтобы уплыть далеко, надо заразить их тоской по морю. Если вы будете “тосковать по морю” в своей работе — вы гораздо быстрее научитесь “тянуть шкоты” и сможете делать качественный продукт.