Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

ITea Talks: Илья Карпенков - о тонкостях разработки в Канаде

$
0
0

ITea Talks — это неспешный разговор двух айтишников за чашкой чая, где обсуждаются все, что осталось недосказанным на митингах. Это новых взгляд на профессию разработчика, ее психология, если хотите. Автор и ведущий — Alex Grechanowski, product/marketing manager.

Часть 1. Переезд

AG: Илья, привет. Десять лет назад мы с тобой начали свой путь в IT в одной харьковской продуктовой компании. Сегодня ты — TechLead и Architect в геймерской компании FlyCow Games в Ванкувере, Канада. Есть ли ощущение что ты воплотил свои мечты в реальность?
IK: Привет, Алекс. Мечты вырастают вместе с нами. Помню, как после окончания ПТУ проходил практику сварщиком и мечтал заниматься художественной сваркой. Реальность была прозаичнее: работал в основном с железобетонными конструкциями и трубами. Перед поступлением в институт представлял, как в будущем устроюсь работать программистом и буду получать аж 500 долларов в месяц. Карьера в IT казалась волшебной, волнующей ... это ощущение, к счастью, остается и до сих пор.

Illia Karpenkov aka Ilich

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

В один прекрасный момент решаешь менять город, в котором живешь, а затем — и страну. Воплотились ли те, ранние мечты, в реальность? Частично. С художественной сваркой не сложилось, а вот программистом я действительно стал.

AG: Ты сам искал работу за границей или работодатели вышли на тебя сами?
IK: Искал целенаправленно сам, понравился одному человеку на oDesk, и он спонсировал переезд.

AG: Почему ты решил переехать именно в Канаду? Это было хорошее предложение от работодателя или страна нравилась?
IK: С самого раннего детства матушка учила: встанешь на ноги — уезжай отсюда любой ценой, в этой стране ничего не изменится еще лет двести. У меня не было ни сбережений, ни своей квартиры — ее мы продали, чтобы оплатить обучение. Терять было нечего. О Канаде не знал ничего — так получилось. Можно сказать, что счастливая случайность.

AG: Как работодатель помогал с рабочей визой?
IK: Прислал пригласительное письмо, перед приездом снял жилье. Я подал документы на загранпаспорт, потом на визу, и через три-четыре месяца все было готово. Уехать было довольно легко — может быть, опять повезло.

AG: А можешь поподробней — какие этапы и сроки для получения такой визы?
IK: Законодательство и иммиграционная политика меняются год от года, сроки очень зависят от обстоятельств. Я приехал по упрощенной программе, айтишники были в списках востребованных профессий.

AG: Сколько времени прошло от получения приглашения на работу до первого рабочего дня в Канаде?
IK: Полгода в общей сложности.

AG: Планируешь ли стать гражданином Канады? Ведь уже прошло необходимых три года проживания в стране.
IK: Планирую, но есть некоторые технические трудности: если жить по «рабочей визе», то засчитывается только половина времени пребывания на территории страны.

AG: Насколько в Канаде сейчас востребованы IT специалисты из Восточной Европы?
IK: Специалисты с опытом востребованы всегда. Каждый раз, когда приходилось менять работодателя, мне не составляло труда найти работу в течение одного месяца. Здесь очень важно наличие «канадского опыта» и рекомендательных писем, поэтому первую работу всегда найти сложнее.

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

Часть 2. Тонкости разработки

AG: Еще будучи в Украине ты поработал в нескольких крупных компаниях, в том числе Ciklum и TEAM International. Ключевая технология всегда одна — .NET, хотя был и Python, и даже Flash. Можно сказать что в Украине ты достиг профессионального потолка?
IK: Потолка не было, ведь совершенствоваться можно до бесконечности. Просто хотелось сменить обстановку.

AG: Были у тебя в Украине предложения поработать Technical Lead и Architect?
IK: Да, удавалось поработать и тем, и другим, но это были небольшие проекты.

AG: Говорят, что наши специалисты скорее универсалы, а в США и Канаде профи больше тяготеют к какой-то одной области. Ты согласен с этим утверждением?
IK: Заметил, что такая картина наблюдается в больших продуктовых компаниях: посадят в кубик — и ты годы можешь делать одно и то же. Я работал в основном в стартапах, и люди там обычно универсалы.

На митапы также собираются наиболее проактивные представители, люди, интересующиеся довольно широким спектром технологий (конечно, если они не «евангелисты», но это совсем другой разговор).

AG: Какая вилка зарплат в Канаде?
IK: Ванкувер отличается более низким уровнем зарплат по сравнению с другими городами Канады, так как считается одним из лучших городов для жизни. Средние разработчики здесь получают от $40-60k, старшие — $60-80k, ведущие — $80-100k. Это за год и до налогов, естественно. Если работать в больших компаниях, таких как Microsoft, Yahoo, Facebook, то зарплаты выше. Например, старшим платят, начиная от $100k.

AG: По сравнению со Штатами получается не так много?
IK: Попробую объяснить немного понятнее: приехав сюда из Харькова, вы с удивлением обнаружите, что «чистыми» вы получите меньше, чем на родине (предположим, $2K в месяц), минус стоимость аренды квартиры начиная от $1K. В итоге остается дырка от бублика (как сказал бы наш сеньор), однако большинство местных иммигрантов на такую дырку смотрят как на подарок судьбы.

AG: С зарплатами понятно. А почему ты остановил свой выбор на разработке игр?
IK: Я позиционирую себя как веб-разработчик, а в индустрии, в которой работаю сейчас, игры — это лишь вершина айсберга.

AG: В Канаде ты с 2011 года. И FlyCow Games — это твоя третья компания. До этого были Offeron Media Corp и MagMe Media Inc. В чем разница и специфика канадских IT компаний?
IK: Это были разные компании с разными бизнес-моделями. Все три — стартапы. У таких компаний есть важная общая особенность: выпустить продукт на рынок как можно быстрее, получить обратную связь и моментально начать адаптироваться. Если бизнес-модель себя не оправдывает, компания закрывается. Именно это и произошло с двумя предыдущими компаниями, в которых я работал. Третью компанию поглотила большая азиатская корпорация, а для стартапа это успех.

AG: В каких областях ты вырос как специалист за это время? В чем стал больше разбираться?
IK: Одно из главных достижений за последние пару лет — это успешное применение Domain Driven Design архитектуры на большом проекте и эффективная координация команды разработчиков из более чем десяти человек. Никогда не думал, что географически распределенная команда такого размера может эффективно работать над одним приложением, однако DDD и Agile делают чудеса. Внедряем Single Page Applications на проектах, изучаем и применяем Angular, Durandal, SignalR.

Event Sourcing также не обходим стороной, польза для BI неоспорима. Изучаем «за» и «против» CQRS/ES, но пока острой необходимости в применении на наших проектах не возникало.

Никогда не думал что географически распределенная команда такого размера может эффективно работать над одним приложением, однако DDD и Agile делают чудеса.

AG: Над каким из продуктов ты сейчас работаешь в FlyCow Games?
IK: Это SaaS платформа для online-казино. Большой и интересный проект.

AG: Какую методологию разработки вы используете и почему?
IK: Это Agile. Нам было важно получение быстрой обратной связи от процесса, от продукта в целом. С этой задачей он великолепно справляется. Если что-то идет не так, вы сразу это заметите. Главное — быть предельно честным, особенно с самим собой, и не бояться увидеть и признать свои ошибки. Если этого нет, то никакой Agile не поможет.

AG: Насколько я понимаю, проблем с английским языком у тебя нет. Ты его выучил еще в Украине?
IK: Как и большинство украинцев, изучал английский в школе, а потом в институте. Проблем с этим не было, канадцы очень толерантны к людям с небольшим опытом владения языком.

AG: Можешь подробнее рассказать, чем процесс взаимодействия в команде в Канаде отличается от такого же в Украине? Вот, например, заходим мы в офис украинской кампании X и канадской компании Y. В чем главная разница — организация труда, отношение в команде, что еще?
IK: Самая большая разница — отношение людей друг к другу, причем везде: в рабочем коллективе, на улице, в магазине и даже в баре. Люди мудрее, подход мягче. В тебя верят с самого начала, никто не пытается злобно подколоть или унизить. Человек человеку не волк и по-умолчанию ты «свой».

У нас ты тоже через какое-то время становишься «своим», но стае надо «показать клыки». Если нечего показывать, мало кто будет воспринимать твои слова всерьез, в лучшем случае не будут замечать, а чаще всего попытаются унизить при любом удобном случае.

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

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

AG: Есть в Канаде понятия «адекватное начальство» или «вменяемый программист»?
IK: Я понемногу отучаюсь делить людей на своих-чужих, адекватных-неадекватных. Это эдакое бинарное мышление с залипанием в одном из двух состояний. Каждый человек в разное время может быть адекватен или неадекватен для той или иной ситуации, каждый имеет право на ошибку, плохое настроение или неудачные обстоятельства. Также каждый видит ситуацию немного по-своему, и это все необходимо учитывать, особенно когда становишься тимлидом, пиэмом или архитектором.

AG: А можно пример?
IK: Пожалуйста. Чтобы провести то или иное архитектурное решение, часто необходимо убедить в его правильности всех членов команды, а это сделать не так-то просто. Особенно если это старшие разработчики. Если этого не сделать, то упадет мотивация или, хуже того, назреет конфликт интересов. Для разрешения напряженности необходимо заранее чувствовать реакцию команды, заблаговременно проводить образовательные мероприятия.

Иногда нужно умножить свое эго на ноль и провести решение таким образом, будто инициатива исходит от самого человека, источника потенциального конфликта.

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

Мудрый лидер незаметен: он растворяется в команде и акцентирует ее сильные стороны, помогает сгладить острые углы, услышит и поддержит каждого коллегу вне зависимости от адекватности. Таким лидером я стараюсь стать, хотя далеко не все сразу получается, совершаю массу ошибок, и это долгий путь к восхождению. Но не ошибается только тот, кто ничего не делает.

AG: Кто твои коллеги и подчиненные? Насколько я понимаю, у вас много азиатов? Это уже канадцы? Чем они отличаются от разработчиков с Украины?
IK: Сейчас на проектах в основном распределенные команды, бОльшая часть разработчиков находится в Украине, часть в Китае.

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

AG: А есть индусы? Слышу разные мнения от них как о программистах. Но положительных все-таки больше. Какой у тебя опыт?
IK: У меня часто возникает желание разложить людей по коробочкам, попытавшись таким образом сделать мир вокруг себя понятнее. Если по национальному признаку, то индусы — добрые и покладистые, китайцы — трудолюбивые, евреи — хитрые, а украинцы и русские — так вообще «брат от брата помогает, яко град тверд». Но это все так, сойдет для поддержания светского разговора «ни о чем». Ценность такой информации близка к нулю, она сродни гороскопам: формирует устойчивые шаблоны, создавая лишь иллюзию понимания. В многонациональной команде мне с такими знаниями далеко не уехать, гораздо важнее быть психологом хотя бы на бытовом уровне и начинать «изучать матчасть».

Но Бог с ним, вроде бы все безобидно, но с недавнего времени начал замечать очень нехорошую особенность: эта привычка отучает людей думать в направлении такой вот «ментальной заглушки». Например, в IT создаются ложные стереотипы вроде «индусского кода»: все ведь уже ясно, он по определению плохой, а про ксенофобские холивары вообще промолчу.

AG: Мы немного ушли в философию IT...
IK: Скажу проще: индусский или китайский код ничем особенным не отличается от украинского. С нашими ребятами общаться проще из-за отсутствия языковых и культурных барьеров (вот так сюрприз), а все остальное считаю вскармливанием своего или коллективного эго и «от лукавого».

Часть 3. Украинец в Канаде

AG: Чем удивил тебя Ванкувер? Что-то уже поменялось в твоем мировоззрении? Был ли культурный или какой-либо другой шок?
IK: С начала было ощущение голливудского фильма. Немного позже линией берега город напомнил родную Феодосию, где я родился и рос, хотя было непривычно видеть такое количество азиатов, и тогда сразу вспомнилась «Барабашка». Потом меня поразил высокий культурный уровень и приветливость местных обитателей, канадцев.

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

IK: Шок был тогда, когда начал понимать, что эти улыбки за редким исключением просчитаны, а за дружелюбным фасадом слышен шелест налаженных механизмов, владельцы которых — хитрые бизнесмены, уже включающие тебя в свои схемы. Через пару лет и эти улыбки я зауважал, а еще через пару — осознал, что это просто воздух, которым люди здесь дышат. И почти никакой особой хитрости или заговора не требуется для осуществления этих «коварных планов».

AG: Насколько тяжело было оказаться одному, без друзей, в другой стране? Что или кто помогал на первых этапах?
IK: Очень помогала и помогает жена. Первые пару лет мы общались в основном по скайпу, но зато регулярно, по 2-3раза в день. Сейчас забрал ее к себе, и спустя год она нашла работу тестировщиком-автоматизатором. Ей как младшему разработчику это было нелегко.
Также помогал и первый работодатель: советом, дружеской поддержкой, канадской улыбкой.

AG: Что было самым сложным при адаптации?
IK: Разлука с женой, ведь прошло всего полгода после свадьбы, и я уехал.

AG: Что вообще из себя представляет Ванкувер как город на западном побережье Канады с населением в 600 тысяч? Какие тут преимущества для жизни?

IK: Особый климат, горы, море, пляжи. Зимой в центре почти нет снега, температура не падает ниже нуля. В 30 минутах езды от центра уже полноценный горнолыжный курорт, а в двух часах езды — один из лучших горнолыжных курортов мира Вистлер.

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

AG: Насколько быстро можно найти жилье в Ванкувере и сколько это стоит? Какие условия аренды, насколько я понимаю, в Канаде ты платишь на количество спален? Во сколько это тебе обходится в месяц?

IK: Для первого жилья нужен поручитель, так как в нормальных районах обычно делают проверку кредитной истории. Условия аренды часто подразумевают подписание контракта на год вперед, в котором ты обязуешься жить в квартире все это время, либо найти другого человека, который согласен там все это время жить. Хотите съехать раньше — ищите нового квартиранта сами.

Дома здесь спроектированы не совсем так, как у нас: кухня почти всегда совмещена с залом, и единственной изолированной комнатой остается спальня. Поэтому жилье различают по количеству спален.

Стоимость жилья в нормальном районе начинается от $1K

AG: Общаешься ли ты с соотечественниками в Канаде? Нашел ли в Ванкувере украинскую диаспору?
IK: С соотечественниками общаемся, поддерживаем отношения. Диаспора есть, но меня туда пока не тянет.

AG: Ходишь на митапы?
IK: Да, здесь их очень много и постоянно можно узнать что-нибудь новенькое. Был период, когда ходил очень часто, это помогло улучшить разговорный английский и быстрее найти новую работу, когда первая компания закрылась. Сейчас тоже иногда заглядываю, хотя нужно много общаться на общие темы, всем улыбаться, быть правильным и гладким, а я это не сильно люблю.

AG: Пришлось ли уже столкнутся с местным здравоохранением?
IK: Да, оно здесь стоит $70 в месяц, это обязательный страховой взнос. Периодически можно услышать о том, что в Канаде бесплатное медицинское обслуживание, но такое впечатление складывается, наверное, по контрасту с США, где оно просто намного дороже — я слышал, там люди тратят до ⅓ дохода на мед. страховку.

Технически врачи и больницы обеспечены очень хорошо. Что касается знаний — доверять врачам сильно не стоит, желательно всю информацию перепроверять самому и держать ухо востро. Во многих случаях им выгодно, чтобы пациент пришел несколько раз на прием, поэтому могут вешать лапшу на уши. А еще здесь врачи делятся на 2 категории: терапевты и специалисты. Так вот, очередь к специалисту длиной в 2-3месяца считается нормальным явлением и может доходить до года.

AG: Как обстоит дело с отпуском? Где уже удалось побывать? Какие любимые места отдыха?
IK: Пока что ездили только в Торонто к друзьям. Нам сейчас хватает того, что есть в самом Ванкувере и прилежащих небольших городах: много лесопарков, оборудованных мест для отдыха, пляжи ... все очень красиво.

Часть 4. Личное

AG: Какие ты можешь отметить интересные тренды по технологиям за последние год-два?
IK: Да это такая уже общеизвестная информация, что странно и повторяться. Скажу, чем интересуюсь в основном сам: функциональные языки, Domain Driven Design, распределенные системы с высокой отказоустойчивостью, одностраничные веб-приложения, HTML5, Unity3D.

AG: Что можешь пожелать коллегам которые только начинают путь в IT?
IK: Читать побольше тематической литературы, всегда относиться с осторожностью к «правильным» и «трендовым» подходам разработки приложений, учитывать специфику ситуации, критически подходить к любой информации, с которой приходится сталкиваться (будь то Рихтер, Фаулер или Дядя Боб).

В команде важно любить своих коллег, а поэтому код надо писать чистый и делать частые рефакторинги. Не слушайте «умников», которым в кайф ковыряться в спагетти (типа работает — не трогай), это как раз тот случай, когда горе от ума. Если работодатель, тимлид или пиэм против выделения времени на рефакторинг — ищите себе другую команду, эта просто еще не доросла.

AG: Какая музыка тебя вдохновляет?
IK: Слушаю очень разную музыку. В основном — это триггеры каких-то воспоминаний из прошлого, смысла нет перечислять, у каждого они свои. Из того, к чему постоянно возвращаюсь: Дркин, Непомнящий, Мельница, Старуха Мха.

AG: Какие книги ты можешь порекомендовать нашим читателям?
IK:
— CLR via C#
— Clean Code
— Dependency Injection in .NET
— DDD: Blue Book
— Implementing Domain Driven Design
— PoEAA
— Enterprise Integration Patterns

Еще очень рекомендую Pluralsight. Там масса интересного внутри, у нас вся компания подписана, постоянно самообучаемся.

AG: Илья, большое спасибо за интервью. Где тебя можно найти в Интернете?
IK: Буду рад, если кого-то вдохновил или хоть как-то помог. Пишите на www.facebook.com/illia.karpenkov

P.S. Внимание, конкурс от AG. Автор лучшего комментария по содержанию, если такой будет, получит книгу REWORK [by Jason Fried, David Heinemeier Hansson] на английскойм языке.


Viewing all articles
Browse latest Browse all 8115

Trending Articles