У каждого из нас есть свои мечты, цели, увлечения (и есть работа). Иногда все эти вещи совпадают, иногда сосуществуют, и иногда и вовсе расходятся. Мне очень повезло и, по сути, я смог объединить найти работу своей мечты, которая объединила в себе мечты и увлечения.
С детства меня интересовали две вещи: авиация и вычислительная техника.
Начнем с небольшой автобиографии, мой отец — военный летчик, все детство я провел в военных городках, засыпая и просыпаясь под рев реактивных двигателей, еще будучи учеником первый раз выпрыгнул из исправного вертолета с куском материи, собственноручно уложенной в ранец и именуемой парашют Д-1-5у. Это не прошло бесследно и авиацию я полюбил всей душой, поэтому сомнений в выборе профессии не было. Получив высшее авиационное инженерное образование, я даже полетал немного в качестве бортового авиационного техника корабля («кораблем» в ВВС называется самолет массой больше 40 тонн), но при этом не забрасывал и второе увлечение: во время обучения в институте был раскопан диск с Mandrake, изучено кнопкотыкание в Borland C++ Builder для написания лабораторных работ (программированием я это не могу назвать), а в качестве дипломной работы была спроектирована «система подавления влияния турбулентности атмосферы на экипаж самолета» на основе нейросетей с генетическим алгоритмом обучения, во как!
А мне летать охота
Но генералом ВВС мне не суждено было стать — судьба распорядилась иначе, и я покинул ряды Вооруженных Сил. Дальше была карьера Linux-инженера в различных российских и международных компаниях, но всегда тянуло к самолетам, проводились часы под глиссадой ближайших аэропортов, в симуляторах и на авиафорумах, командировки я любил только из-за перелетов, и всегда возил с собой «правильный» GPS навигатор, который имел режим «Полет» чтобы следить за сменой эшелонов и воздушных трасс.
Конечно, я постоянно мониторил вакансии и возможные пути развития в авиации гражданской. Техник самолета — да, но компьютеры там на уровне «загорелась лампа Л — поменяй блок Б», зато зимой и летом на бетоне, да и за переучивание надо было просить денег, а впадать в кабалу к работодателю ну очень не хотелось, самоучки не принимаются, нужны сертификаты, да и зарплата заставляла плакать за отечественную авиационную отрасль. Из интересного была, например, вакансия инженера на тренажер в «S7 Training», но на тот момент у меня не было ни прав, ни машины, да и зарплату они предлагали не очень высокую за посменную работу в 50 км от дома платили меньше, чем админу парочки серверов.
В какой-то момент меня осенило — но весь программное обеспечение для авиации тоже пишут и делают это обчные люди, не Боги же горшки обжигают, а какой самый «авиационный» язык программирования? Правильно, Ада! Аду я к тому времени уже худо-бедно знал — сосед по квартире расхваливал мне этот «прекрасный язык без переполнений буфера» и постепенно я стал втягиваться в сообщество (да, сообщество есть в том числе и в России),
На пути к своей цели
Встала следующая задача — найти список потенциальных работодателей, их требований и, по-возможности, «засветиться» в этих кругах.
Поиск даже потенциальных работодателей в России результатов не дал, фирмы, занимающиеся разработкой ПО в этой сфере, вроде, есть, но или они не ведут набор, или в требованиях «эксперт С(++)», или и того веселее ASM, зато мир зарубежный показал, что не все так плохо: EADS, Boeing, несколько французских околоAirbus-овских компаний вполне себе используют Ada в разработке, и даже периодически появляются вакансии, ну в общем с десяток компаний набиралось (на весь мир!). Возникла одна проблема — из России они брать не хотели (и, как будет видно дальше, дело вовсе не в визовых заморочках). И тут пришло решение столь популярное в последнее время пора валить!
Эмиграция
Поиск путей возможной эммиграции не занял много времени — одна известная красношапочная компания согласилась предоставить мне старый ржавый трактор, ибо люди в саппорте, пусть и третьей линии нужны всегда. Нет, это не было так просто и гладко, но все-таки особой сложности тоже не представляло. Три собеседования по телефону — Job Offer — 3 месяца бумажной работы и в паспорта вклеены визы тип D (долгосрочные), процесс эмиграции в Чехию расписан на просторах интернета весьма подробно, не буду тут останавливаться. Весь скарб распродан, остатки сложены в любимый Prius и в ночь на 25 декабря (с тонким расчетом на добрых таможенников, которым будет неинтересна машина заваленная скарбом от спинок передних сидений и до крышки багажника, и отсутствие очередей в Рождество) наша семья из двух человек направилась по направлению к государственной границе Роосийской Федерации.
Засветка
Следующим шагом, как Вы помните, было «засветиться» в «адских» кругах, и, заодно, подучить язык. Так как на тот момент я использовал Fedora Linux как основной дистрибутив, логичным было создать среду разработки для этого дистрибутива, запакетировать библитеки, поправить ошибки и прочая рутинно-бюрократическая работа, ну и попутно пописывая что-нибудь для себя и помогая другим. В Debian Linux, к слову, эту же работу выполняет Ludovic Brenta — мой нынешний коллега (но я не знал где он работает до момента подписания контракта).
Меня заметили
Ну и наконец наступил тот долгожданный момент: получаю сообщение в Linkedin от рекрутера одной из консалтинговых компаний: «Ищется Junior Software Engineer для работы у одного нашего клиента в области Air Traffic Control Management в Брюссель». Три телефонных собеседования:
Собственно HR, общие вопросы
Менеджер проекта со стороны консалтинговой компании — Java/C++ программист — вопросы по паттернам, проблемам паралельного программирования и краткий экскурс в то, как вести себя на интервью
(Как оказалось) Нынешний тимлид. Вопросы про построение сложных, распределенных систем, вопросы про проблемы работы с памятью (тут все просто — Филип — один из ключевых разработчиков valgrind), про bind, connect, SQL, find/grep/sed и т.п… Больше всего поразил вопрос: «сколько строк кода Вы написали?», я вот даже сейчас, спустя два месяца работы, не помню сколько строк кода я написал на этом конкретном проекте.
Веб-тестирование на наличие встроенного в мозг компиллятора языка знание языка Ada. Тут я немного схитрил — в тесте при нажатии на кнопку Ctrl автоматически ставилась «двойка» (для того, чтобы не копировали текст и не проверяли как поведет себя компилятор)… Пользователи Linux, уже догадались в чем была хитрость, правда? Тем не менее не все тесты можно было тупо скопировать и проверить, а набрать надо было не менее 80% правильных ответов и я уже подумал, что на этом мои собеседования закочились
Очное собеседование, совпавшее по времени с моим выступлением на FOSDEM на тему «Ada in Fedora Linux» (презентацию можно найти на SlideShare, само выступление должно быть где-то на просторах Интернета). Задачки «написать код на листке бумаги»: «Find and Replace», «вращение внешней границы матрицы», расчет времени, затрачивамой на набор высоты в различных условиях атмосферы и какие-то еще… В общем 6 часов адских (вот тут даже не знаю от какого корня Ад или Ада) мук после перелета и 14 часов на ногах. И провокационный вопрос про частую смену работы…
Первым вопросом был, конечно, «Ваше гражданство?», ибо мое «интернациональное» резюме сбивало всех с толку, ответ «Россия» их сначала расстроил, но во время второго собеседования прозвучало что-то вроде: «Мы узнали, разрешение на работу будет делаться 2 месяца, виза Вам не нужна, это нас устраивает», моего товарища, у которого в резюме стояло «Россия» не стали даже собеседовать, причин я не знаю, увы. Ну и стоит упомянуть, что work permit был готов раньше, чем закончился мой срок «отработки» в Чехии,
И вот он — долгожданный Job Offer! C 1-го мая я — программист в команде по разработке Enhanced Tactical Flow Management System в компании Eurocontrol. (Ну на самом деле, не в самом Евроконтроль, так как вся разработка отдана на субконтракт). Система действительно сложная и отвечает за Flow and Capacity Management над всей территорией единого воздушного пространства стран-членов:
Насчитывает больше 2 миллионов строк кода, при этом пережила несколько кардинальных изменений за свою почти более чем 20-ти летнюю историю (и это не предел, ибо отдельные компоненты были написаны в 1986 году), в ходе которых были решены весьма интересные проблемы масштабируемости, надежности и еще раз надежности, но об этом в следующих выпусках!
Вот так можно не рассуждать об любимых и «рабочих» языках программирования, а сделать из любимого рабочий, каким бы экзотическим или вымершим он не казался. И да, мечты сбываются не только в рекламе газового гиганта, стоит приложить только чуточку усилий, разбавленных толикой везения.