Немного об обучении, фильтрах и поиске работы

Буквально на днях я подал заявление об уходе из Mail Online. В одном из крупнейших онлайн-СМИ англосферы я проработал почти ровно три года. Захотелось смены обстановки.

Свежий опыт очередного поиска работы заодно подтолкнул к новому витку самоосознания, пускай со временем вид в зеркале заднего вида и становится всё банальнее. В очередном стартапе меня так и спросили, а что это вы с Applied Maths вдруг работаете «программистом» (ребята были «настоящими» ракетными инженерами в прямом смысле слова). Я задумался.

2006 — МГТУ

Если не считать двух студенческих «подачек на Open Source» от Google и весьма номинальной студенческой практики, то до окончания Бауманки я так и не работал. Была возможность следовать совету «специалистов по всему» и нарабатывать какой-то технический кругозор (уже ловлю себя на мысли, что тут есть где зацепиться демагогам о привилегиях).

Так и непонятно, был ли вообще смысл в Бауманке, особенно все шесть курсов. Культура передачи знаний заметно хромала и со временем всё более напоминала курсы скоростного переписывания. Это было заметно хотя бы по совершенно мистическому отношению к рукописным конспектам. Казалось бы, опубликуй все материалы в приличном виде в интернете, пусть студенты спокойно слушают лектора. Ведь в итоге всё равно общественными усилиями на левых сайтах собирали архивы конспектов, качество страдало, люди тратили время на повторную работу.

Многие причастные осознавали весьма случайную природу происходящего, особенно курсу эдак к четвёртому. Будто машину оставили заведённой, водитель давно ушёл, а она всё тарахтит, у тепла двигателя собралась какая-то жизнь. «Но зачем?» — никто не знал. Обучать немеханической деятельности вообще сложно, скорее можно только вызвать интерес к обучению. При этом люди все были по большей части положительные, но будучи загнанными под специфические критерии оптимизации качественного влияния на всю систему оказать не могли. Видится тут какая-то трагедия жизни в государственной культуре.

На последних курсах там уже дошли до отключения Wi-Fi, чтобы «студенты не сидели в интернете на лекциях». Ну хоть поплавать в бассейн пустили. А поскольку в МГТУ я пролез полуслучайно и почти без фильтра (повезло, что на некоторые факультеты медалистов брали считай без экзамена), то меня в общем-то можно считать соучастником схемы, пускай и неинформированным :) Не будь внешнего давления (призыва), система затрещала бы громче.

С другой стороны, до Бауманки я совсем плавал в математике. Попытки осилить её серьёзно начались уже в конце школы под давлением грядущего экзаменационного фильтра и особым успехом не увенчались. После МГТУ я области бояться перестал, хотя бы просто по результатам всех затраченных усилий и количества услышанного, а фильтр внутри Бауманки был довольно мягкий. В таких условиях развилась уверенность в работе даже с простыми математическими моделями и нотацией, которая пригодилась в работе. Многие программно-инженерные «сложности» при знании математики выглядят совершенно потешно. Когда ознакомился со взрослым рынком, стало очень заметно, что «не всякий веб-программист-самоучка дойдёт до середины градиентного спуска».

Не учишь матан – пойдёшь на метан!

После третьего курса я откровенно заскучал, задаче развлечь себя и служили все мои наколеночные упражнения с Лиспами и TeX-ами (в какой-то момент я вообще стал «паять ардуино» — просто разобраться в цикле железного производства). Быстро выработалась толерантность, пришлось переходить на более тяжёлые наркотики — уже тянуло к функциональному программированию, прибавился ещё вкус к статической системе типов, стал что-то писать на Haskell.

2012 — первая работа

Но к тому моменту моя жизнь давно уже превратилась в череду счастливых случайностей. Первую свою работу я вообще нашёл, случайно заглянув в Juick («Haskell дают»). Прихожу в прозаичный офис (поначалу это был просто подвал на Шаболовке), а там два «весёлых бауманца». Была несложная задачка на знание языка. Посмотрели моё «резюме» с детскими проектами, спросили, как посчитать количество деталей в самолёте, дали что-то на дом. Я конечно же рвался работать. Писали мы там в итоге всякую бизнес-автоматизацию и всё, что по периметру. Было весело, меня окружали люди чуть постарше, при этом делать можно было почти что угодно. Выпивали. Там я очень быстро понял смысл «бизнес-ценности».

В офисе f-me

Без удивления обнаружилось, что скучные с точки зрения бизнеса вещи на Haskell не перестают быть скучными. С другой стороны, «могло бы быть гораздо хуже», т.е. ещё и смешные детские инструменты, об которые спотыкается на ровном месте значительная часть индустрии. И конечно же кодировать инварианты интерфейсов в типах или управлять сложностью с помощью новых языков конечно очень здорово. Границы мира порасширять. Уже позже к этому добавилось наблюдение, что «задача скучная» является проблемой только для умных :) Работа над DSL для описания развесистой бизнес-логики так, чтобы было понятно и приятно всем — наверное самое интересное, что я делал по работе до сих пор. Опять же, во многом потому что на полную творческую свободу наложился личный интерес применить к реальной задаче определённую технологию. Я поначалу даже не осознавал, что бывает иначе, и как можно что-то делать без личного интереса.

2015 — поиск работы

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

С одной стороны у меня было почти три года опыта на Haskell (плюс немного «фронтенда») и, что самое ценное, способность хоть как-то целостно мыслить о решаемых задачах. С другой стороны, работа на Haskell это иголочное ушко (попробуй попади). В Москве я просто ничего не нашёл. Был какой-то вариант около правительственных структур в Петербурге — хорошо, что не влез туда.

Обновил своё резюме и LinkedIn, накидал пару предложений «Cover letter», и пошёл рассылать письма.

Вакансии с подходящими ключевыми словами можно было пересчитать по пальцам (искал на Functional Jobs, Who’s hiring, LinkedIn). На позиции в США даже не получилось попробоваться из-за неподъёмных визовых требований — да и всё равно ждать лотереи не хотелось, а внутренний перевод преимущественно мелким конторам делать неоткуда. В пару крупных компаний завалил технические интервью.

В итоге я смог пройти процесс и получить два предложения о работе на Haskell: одно в Лондон и одно в Сингапур. (Британская Империя нам поможет!)

Barkers building / Northcliffe House, Kensington, London

Позиция в Лондоне нашлась почти так же случайно, как и предыдущая. Кликнул в LinkedIn — а там «Haskell дают» (вскоре LinkedIn в РФ вообще заблокировали). В MailOnline действительно начали писать внутренний проект на Haskell, искали человека с опытом. Приехал на интервью в красивое старое здание, поговорили, опять было несколько задачек, но мне больше понравились вопросы, которые задавали. По крайней мере, люди осознавали уровень своего взаимодействия с окружающим их бизнесом. В общем, нашли друг друга.

Собеседование на вакансию в Сингапуре (Haskell + ClojureScript) тогда казалось самым приятным из всех до сих пор виденных. Ведь фильтр был настроен на «условия, максимально приближенные к боевым» — посмотрели их настоящий код, подключившись вместе через ssh + tmux, я поправил какой-то баг, потом заметил, что тесты слишком простые, подключил QuickCheck, нашёл им новый баг. Но был выбор, а просто проект, где «цели ясны, задачи определены», уже не хотелось. Человека они, похоже, искали, чтобы закрыть требование на рабочие места для иностранцев в обмен на полученное от правительства финансирование. Потом, стартап сегодня есть, а завтра его нет, да и жить пришлось бы далеко в Азии и под кондиционером.

И вот так в Лондоне я впервые попал в крупную компанию. Начал с уже привычного Haskell, в итоге пощупал «машинное обучение», принятие решений в больших компаниях, Clojure, Scala, современное управление инфраcтруктурой, переоткрыл казалось бы давно знакомый Python. Всё оказалось совсем не страшно, да и я опять рвался работать. Творческая свобода и куча данных многого стоят. Сравнительно большое количество изученного наложилось на впечатления от жизни в другой стране, которые я буду переваривать ещё очень долго.

2018 — поиск работы в Лондоне

Через ещё три года поиск иголочного ушка повторился снова. На этот раз искал только в Лондоне.

К старым хотелкам добавились новые (в основном не технические), а также усугубившаяся лень. «Функциональное программирование» это само по себе неплохой фильтр, совсем случайных людей там минимум. С другой стороны, на одних хороших инструментах далеко не уедешь, программная «инженерия» это всё равно сантехника, а вот осознанно принимать решения по-прежнему гораздо важнее. Попробуй найди будущих коллег, которые знают, что делают. У многих компаний нет интереса показывать техническим кандидатам что-то кроме стандартизованных тестов (работников бойлерной не пускают на кухню :)

В самых привлекательных местах, как мне показалось, мне не хватило убедительности (т.е. возраста и умения говорить). Например, ребята из вступления к этой записи вместо Haskell похоже решили всё-таки делать продукт на Python. Успеха избежать не удалось, люди прознали про Haskell и лепят его как ключевое слово, в надежде приукрасить собственный фильтр :)

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

А новую работу я всё же нашёл, просто фильтр был репутационный (анонимные аналитики и тут оказались правы :) «Хорошему человеку везде рады.»

Что делать

Многие пишут, что раз не можешь/не хочешь проходить фильтры — не проходи. Предпринимай сам. Уже некоторое время это выглядит очень привлекательной затеей: сочетание ответственности обеспечивает внешнее давление для движения только вперёд, не поёрзаешь, не спишешь проблемы на «сопротивление системы» (это, конечно, самообман — окружающая система всегда есть). Раз уж прыгнул на сцену — пляши :)

Общее ощущение от происходящего — броуновское движение (или «Ёжик в тумане»?). Хочется думать, что в правильном направлении.

Камушки

git