Defer the Deadline For Me

Горячая работа
R
В процессе
35
2
автор
Вайр бета
Фэндом:
Размер:
планируется Макси, написано 111 страниц, 41 013 слов, 5 частей
Описание:
Примечания:
Посвящение:
Публикация на других ресурсах:
Уточнять у автора / переводчика

File #1. avoid using wrong notation

Настройки
(см. примечания по терминологии) Единственным источником света в комнате был мерцающий экран ноутбука, в который уже полчаса таращился Джейс. Перед ним была открыта форма резюме, которую он редактировал, мучительно размышляя над тем, какой опыт указать. Надо ли указывать научные статьи? А свои проекты по информационной безопасности, созданные ещё в годы учебы в Пилтоверской Академии? Стоит ли расписывать опыт в Giopara FinTech Inc подробнее? Дизайн формы не отличался особым изыском, и Джейс даже на секунду задумался о привлекательности своего резюме, однако довольно быстро избавился от этой мысли. Судя по словам Кейт, внешний облик резюме — последнее, на что будут обращать внимание при рассмотрении опыта кандидата. Гораздо важнее было не переборщить с навыками и указать те, которые более-менее связаны с требованиями самой вакансии. Строчку со стажем работы в Giopara FinTech Inc Джейс, чуть скривившись, оставил, написав лаконичное «Разработка инструментария для приложений финансовой направленности» и перешёл к расписыванию основных навыков. Здесь Джейс немного подвис, ибо не мог сказать, насколько знает C и C++ в совершенстве и шарит ли безупречно в технологиях информационной безопасности. Нельзя было сказать и о его глубоких познаниях в области компьютерных сетей. У него был исключительно академический и любительский опыт работы во всём этом. Тем не менее, Джейсу пришло в голову приложить ссылку на свой аккаунт с проектами: если нанимателя интересует практический опыт кандидата, он может оценить его по сложности задач, реализуемых в проектах. Джейс скромно перечислил свои научные достижения, а в разделе «О себе» написал: «Нравится изучать всё новое и создавать то, что могло бы приносить пользу людям. Терпеть не могу конфликты и интриги в коллективе, поэтому верю в дипломатический подход в плане решения совместных задач. Из хобби…» Курсор мигал на последнем слове минуту-две. Джейс едва не написал «люблю коллекционировать минералы, смотреть на звёзды и рисовать людей», но быстро себя одёрнул — слишком уж несолидно звучит. Лучше написать что-нибудь нейтральное… Например, «люблю заниматься спортом и читать научную фантастику». Близко к правде и более приемлемо в кругу нормальных людей. Фото в резюме не требовалось, Джейса не прельщало его добавлять. То самое, где он в тошнотворном образе успешной медийной личности стоит полубоком в деловом лоснящемся костюме, сложив руки на груди и улыбаясь белоснежной улыбкой, он точно вставлять в анкету не станет. Комбинация клавиш «Сохранить», а затем кнопка «Отправить». В диалоге с Кейт кружочек загрузки вертелся пару секунд, прежде чем рядышком с файлом зажглась галочка доставки. Кейтлин, судя по последней активности в сети, уже спала и прочитает резюме уже утром. А пока Джейс смог на время выдохнуть, ещё раз проверить, нет ли новых комментариев в дискуссии с анонимом и попробовать уснуть. Однако уже почти сутки как не было ответа, что было немного странно, так как MachineHerald отвечал обычно в тот же день. Должно быть, у анонима завал на работе или ещё какая другая причина, Джейс в любом случае не должен на этом зацикливаться. Ладно, может, Лест права и надо хотя бы начать ложиться спать чуть пораньше, если уж он собирается возвращаться к офисной жизни. К тому же если позвонят с утра, Джейс не должен пропустить звонок. С этими мыслями Джейс захлопнул ноутбук, снял очки, сгрёб всё на тумбочку и откинулся на подушку. То ли небольшая концентрация алкоголя в крови поспособствовала скорейшему засыпанию, то ли слабый огонёк надежды на возможные изменения в ближайшем будущем приглушил хронический стресс, который для Джейса стал привычным. Без таблеток чаще всего спалось намного хуже, но сегодня, к радости Джейса, на погружение в сон ушло от силы минут десять.

***

Проснулся Джейс благодаря бодрой мелодии входящего звонка, которая начинала играть где-то в туманном сновидении, постепенно становясь всё более раздражающей. Вслепую нашарив телефон на тумбочке, Джейс, с трудом разлепляя веки и не глядя на номер абонента, приподнялся на локте и поднёс телефон к уху. — Доброе утро, слушаю, — промямлил он заспанным голосом. — Джейс Талис, верно? — на том конце линии раздался приятный женский голос. — Добрый день! Меня зовут Мэдди Нолен, я из отдела HR компании PILTech. Вас должны были предупредить о звонке заранее, извините, если разбудила. Джейс открыл рот и резко подскочил на месте. Сон как рукой сняло. Ох. Всё в порядке! — быстро проговорил Джейс, на ходу открывая диалог с Кейт в мессенджере. — Я действительно ждал ваш звонок… caitlyn_k [09:11] Скинула Мэдди. caitlyn_k [10:46] Пожалуйста, не проспи звонок в час дня, тебе должны позвонить. Джейс посмотрел на время и внутри обмер — уже была вторая половина дня. Он успешно проспал все будильники, поставленные на десять утра, сквозь сон выключая навязчивую песню. — Мистер Талис? — вежливо напомнили ему о себе в телефоне. — Вам удобно разговаривать или стоит позвонить чуть позже? — Ох, да! Извините за заминку, — спохватился Джейс и моментально перестроился на режим делового общения. — Благодарю, мне вполне удобно. Я немного растерялся и распереживался насчёт своего резюме, что не мог уснуть вчера. — О, понимаю ваше волнение! — Мэдди была на удивление нераздражающим собеседником. — Что ж, если вам комфортно, давайте продолжим. Я расскажу вам немного о самой позиции, вы тоже расскажете немного о себе и сможете задать вопросы. Полагаю, нет надобности знакомить вас с деятельностью компании, верно? — Ох, да, — Джейс поднялся с кровати и принялся наворачивать круги по комнате, чувствуя лёгкое волнение. Подошёл к подоконнику и принялся расставлять минералы заново. — Я иногда слежу за PILTech, недавно смотрел стрим, где один из департаментов представлял на конференции прототип облачной инфраструктуры с мультифакторной защитой. — Даже так! — Мэдди заметно оживилась, в её спокойном голосе пробудился интерес. — Полагаю, знакомы с другими разработками компании? — Верно, — Джейс взял в руки голубой кристалл и принялся вращать в пальцах, поглаживая грани и автоматически подмечая про себя отблеск света на трещинах. — Пользовался парочкой инструментов для своих пэт-проектов. Судя по звуку нажатия клавиш, Мэдди что-то активно печатала у себя. — Джейс, вам как удобнее — на ты или на вы? Несмотря на приличный опыт прохождения собеседований, неформальное обращение давалось Джейсу гораздо лучше, чем «выкание» в отношении коллег своего возраста. — На ты, — ответил он. — Так, немного о вакансии. Отдел, в котором была открыта позиция, сейчас занимается разработкой подающего надежды проекта, направленного на обеспечение отказоустойчивости внешних и внутренних узлов сети. Команда у нас небольшая и состоит сейчас из проджект-менеджера и трёх разработчиков, был четвёртый, но его перевели в другой отдел… Ещё у нас есть несколько человек из тестирования — один командный, другой из отдела приемного тестирования, плюс стажёр. Также есть один системный аналитик и пара людей из отдела эксплуатации. Все ребята в команде довольно давно работают вместе, и текущий их проект далеко не первый, предыдущие проекты также находили своё место на рынке, — Мэдди перевела дыхание и продолжила: — Это рассказала… Джейс, у тебя возникли вопросы? — Эм, нет, я ещё примерно по описанию вакансии всё понял, — Джейс принялся отмерять комнату шагами, чтобы не разволноваться окончательно. «Возьми себя в руки!» — Если честно, я очень давно не работал в команде, поэтому меня даже радует, что команда маленькая. — Да, вижу в резюме, что у тебя солидный опыт работы в Giopara FinTech Inc и в основном были крупные проекты, где довелось и разработкой заниматься, и руководить проектами, — Джейс остановился около кровати, напрягся, предвещая следующий вопрос. — А что заставило сменить направление, если не секрет? Джейс тяжело сел на край кровати, стараясь собрать мысли в кучу. «Потому что, боги, я ненавидел это всё и оно погубило мою жизнь», — вертелось на языке, однако выдал следующее: — Крайне специфическая область, — постарался вздохнуть как можно тише, — я изначально хотел работать в той области, которая связана с информационной безопасностью. Но, увы, не срослось. — Тебя поняла! Ага, и научные статьи тоже близко к тому, чем занимаемся. Жаль, конечно, что во времена Академии не вышло пойти к нам стажёром… — В то время компания их не набирала, — расстроенно сообщил Джейс. К тому же на тот момент компания в принципе не брала новичков и среди рынка не отличалась высокой оплатой труда, а Джейсу нужны были в первую очередь деньги… — Да, точно! Ну, в любом случае, даже несмотря на то, что предыдущий опыт в компании мало связан с тем, что требует должность у нас, у тебя есть опыт аутсорсера и свои проекты на гитхабе, поэтому, как мне кажется, команде было бы интересно пообщаться с тобой. — Ох, спасибо! — вышло громче, чем того хотел Джейс, и тут же стушевался: — Извини, Мэдди. — Всё в порядке, — Мэдди, судя по смешинке в голосе, отреагировала нормально. — У меня нет вопросов по резюме — твои зарплатные ожидания вписываются в вилку, общаешься ты тоже адекватно, поэтому готова чуть позже выслать тестовое задание, а свои заметки по резюме и саму анкету передам коллегам из, возможно, твоей будущей команды. Насчёт других бонусов со стороны компании — могу тебе выслать информацию в чат, посмотришь, — Джейс открыл было рот, но Мэдди продолжила: — да, и ещё, не стесняйся задавать вопросы в чате, если таковые возникнут. — Так, а насчет технического собеседования… — Джейс немного занервничал. — Если тестовое задание примут… Будет ли примерная информация, на какие блоки будет поделено собеседование, к чему примерно готовиться? — Да, разумеется. Тимлид команды Виктор обожает давать задачи на подумать — что улучшить в коде, как следовало бы реализовать предложенный функционал. Ещё частенько придирается и подкапывается ко всему — ну, по крайней мере на это жаловались предыдущие кандидаты. Так что, возможно, эта часть самая трудная, но в любом случае примерные темы я вышлю. — Благодарю, Мэдди! — Джейсу уже не терпелось своими глазами увидеть тестовое. — Буду ждать письмо с заданием. — Хорошего дня, Джейс! Пиши, если возникнут вопросы. Джейс отнял от уха нагревшийся дисплей телефона и некоторое время бездумно пялился на заставку с пейзажем ночного неба. Затем, освободив лёгкие от застрявшего в груди воздуха, откинулся спиной на кровать, сжимая в другой руке шероховатый голубой камешек. Слишком много событий за одни сутки. Едва он успел примириться с мыслью, что нашёл в кои-то веки подходящую вакансию, как спустя несколько часов после отправки резюме он уже разговаривает с HR. В обычной ситуации HR в лучшем случае лишь спустя несколько дней связывается с кандидатом, и чаще всего общение проходит в отстранённо-вежливом тоне. Здесь ситуация складывалась иначе с самого начала, словно ему благоволила судьба, кроме того, Мэдди оказалась приятным собеседником и не выпытывала из него ответы на дурацкие вопросы. Джейс начинал думать, мол, неужто все существующие боги Рунтерры над ним смилостивились и решили дать ему шанс изменить жизнь в лучшую сторону. Тем не менее, он старался не тешить себя надеждой касательно работы мечты. Кто знает, может, коллектив окажется так себе, а тимлид — чванливым и неприятным типом, и Джейсу будут доставаться скучные и неинтересные задачи. Или конечная цель проекта разочарует… К слову, о тимлиде. Мэдди упомянула имя. Виктор. Где-то Джейс уже слышал это имя. Кажется, так звали того аспиранта, который на комиссии по защите дипломного проекта заваливал его вопросами, так? Вряд ли, конечно, это мог быть один и тот же человек, поскольку тот Виктор уж слишком был увлечён научной деятельностью на кафедре и не создавал впечатление человека, стремящегося работать в крупной корпоративной структуре. Более того, если вспомнить события некоторой давности, в Пилтовере не очень жаловали сотрудников-заунитов в IT-области, тем более в информационной безопасности, а Виктор (Джейс яростно копал информацию о сотруднике кафедры после их пылкой дискуссии) был выходцем из Зауна. Так что нет, ошибки быть не может, речь шла о другом Викторе. Судя по описанию, он был хорошим руководителем в команде и ладил с людьми, раз за её плечами несколько успешных проектов. И Джейс очень надеялся вписаться в новый коллектив, если уже на этапе технического собеседования удастся наладить контакт. С этими мыслями Джейс поднялся, чтобы начать свой день с прогулки до ближайшей кофейни. Стакан кофе и круассан сейчас были бы как нельзя кстати, дабы разогнать голову перед тем, как сесть за тестовое.

***

Тестовое задание не заставило себя ждать и вскоре оказалось на электронной почте Джейса. Уведомление о новом письме высветилось на смарт-часах как раз в тот момент, когда Джейс стоял в очереди, пролистывая в телефоне ленту статей на научно-техническом портале Пилтовера. Он тут же свайпнул, открыл почтовый клиент и с некоторым волнением нажал на иконку входящего письма. Пока вчитывался в текст тестового задания, едва не пропустил свою очередь — пришлось отвлечься и сделать заказ. Бариста с короткими пушистыми хвостами кислотно-зелёного цвета ловко орудовала кофемашиной, завершая предыдущий заказ. Расправившись с ним, она обратила внимание на Джейса и привычно ухмыльнулась. — Привет, — девушка смахнула небрежным движением пряди с лица. Джейс заметил на её щеке два свежих перекрёстных пластыря с изображением милых певчих ласточек*. — Как обычно, Джейс? — Ага, — рассеянно отозвался Джейс, прокручивая в голове условия задачи. — Привет, Зери. Джейс уже видел примерное решение, выстраивал цепочку вычислений, однако в моменте услышал голос баристы: — Что, снова думаешь о чём-то своем кодерском? — И да, и нет, — Джейс убрал телефон в карман, с трудом включаясь в разговор, пока Зери хлопотала за стимером. — Прислали тестовое, хотел им заняться. — Давно тебе тестовых не присылали, — протянула девушка, заканчивая последние приготовления. — Судя по твоему загруженному лицу — сложное. — Я бы не сказал, — Джейс пожал плечами, наблюдая за тем, как Зери аккуратно приподняла питчер над стаканом и стала наносить пенку. — Оно выглядит… странно. С подвохом. Обычно тестовые конкретные. А здесь… сложно объяснить, в общем. — Ох, Джейс, расслабься, — бариста подвинула стакан к Джейсу и достала из-под стойки бумажный пакет, принявшись укладывать в него аппетитный с виду круассан. — Думаю, всё намного проще, чем ты думаешь. Мне вот вместо тестовых приходится чинить технику на глазах людей, демонстрируя свои навыки. Но мне не привыкать, пфф, — в интонации проскользнула ирония, — с моим-то заунским опытом работы… Джейс тут же оживился: — О, ты уже ищешь стажировку инженера-механика? — Ага, — Зери скрепила степлером пакет. — Не могу же я тут торчать вечно, верно? Правда, из-за учебы не могу себе позволить полный рабочий день, приходится искать со ставкой. Ну, в любом случае, — она отдала в руки бумажный пакет с выпечкой, озорно улыбаясь, — надеюсь, у тебя получится. — Угу, — Джейс втянул запах свежесваренного кофе и почувствовал себя лучше. Ощутил укол вины, что спешил. — Извини, Зери, тестовое само себя не сделает, я побегу. Тебе тоже удачи в поисках! Зери, покачав головой, махнула на прощание рукой и уже переключилась на следующего посетителя. Джейс, забрав со стойки кофе и пакет, снова мысленно вернулся к задаче, которую прислали в тестовом задании. Прочитав формулировку в первый раз, Джейс на несколько секунд ощутил смятение, а затем перечитал ещё раз. Звучало оно издевательски: «Реализуйте на C++ простой сниффер для разбора TCP/UDP пакетов с использованием R2K версии 2.6.0a. Вывести на экран результат анализа пакетов трафика…»* Серьёзно? Это слишком просто. Rune Socket v2/R2K — одна из доступных библиотек, разработанных компанией PILTech на заре своего существования, которая до сих пор используется повсеместно для сетевой разработки. Джейс ещё в Академии использовал её в одном из курсовых проектов, а затем уже в одном из первых проектов на гитхабе. Да любой достаточно неглупый студент справится с этой задачей на раз-два. Пока он шёл по дороге, нервно попивая кофе и возмущаясь тривиальности задачи, врезался плечом в темнокожего парня со светлыми, убранными в хвост, дредами, который шёл навстречу, погружённый в телефон. Чуть не пролив кофе на незнакомца, Джейс отскочил и моментально рассыпался в извинениях: — Во имя Таргона, извините… Парень, чуть сузив глаза, пару секунд смотрел на него настороженно, оценивающе, с каким-то легким недовольством. Затем его плечи расслабились, и он усмехнулся краем рта, неуклюжим движением поправляя раскрашенные граффити огромные наушники на шее. — Не стоит, чувак, я тоже проглядел, — незнакомец небрежно кивнул головой, а после тронулся с места, вновь обратив взор в телефон. Джейс продолжал стоять на месте, взбалтывая в стакане остывший кофе. Пожалуй, все мысленные рассуждения касательно задачи он оставит на потом, чтобы не дай бог не сбить кого-нибудь с ног. Что Лест говорила насчёт переключения контекста? Ах да, больше внимания обращать на детали вокруг. Послеполуденное солнце скользнуло по крышке стакана, и Джейс поднял голову, щурясь от света. Несколько дней подряд сумрачное и тяжёлое полотно туч сдавливало Пилтовер со всех сторон, изредка поливая его мелким, противным дождем, словно вторя настроению Джейса. Сегодня от густой серости не осталось и следа — солнце, пробиваясь сквозь тонкие, быстро скользящие облака, мягко согревало кожу, а тёплый апрельский ветер слегка трепал волосы. В воздухе витали нотки вчерашнего дождя, а небольшие лужицы на дорогах отражали единичные клочки облаков на небе, сверкая по краям. Светлые стены невысоких домов с декоративными крышами и причудливыми балконами, на которые владельцы постепенно выносили горшки с растениями, добавляли окружающей палитре цветов насыщенности. Где-то по краям бордюра уже уверенно пробивалась зелень, на деревьях прорастали листья, образуя скопления липкой шелухи на земле. Люди, коих средь белого дня было немного, неторопливо прогуливались по дорожкам. В целом было тихо, умиротворённо — для старого спального района Пилтовера, от которого до центра было чуть больше двадцати минут на машине. Это был хороший по меркам города район, но не самый элитный. Именно здесь на деньги от продажи отцовского предприятия Ксимена Талис приобрела для подрастающего сына квартиру — поближе к центру и к Академии, куда он собирался поступать в будущем, чтобы не пришлось ездить с другого конца города. После окончания Академии квартира одно время сдавалась, и Джейс жил с матерью, обеспокоенный её состоянием здоровья. Хотел продать и вырученные деньги потратить на лечение, однако мать заупрямилась и заявила, что её подарок не продаётся. Два года назад Джейс вернулся в здешнюю квартиру, сделал базовый ремонт, на который едва хватило сил, и с тех пор жил, практически не выбираясь никуда. Ближайший спортзал, кофейня и магазины с аптеками — вот всё, чем ограничивались вылазки Джейса. Редкие встречи с Кейтлин, свидания и сходки проходили в центре, куда он добирался на общественном транспорте, так как собственная машина стояла на ближайшей подземной парковке с просроченным на несколько лет техосмотром, и заняться ею тоже не хватало никаких ресурсов. PILTech находился недалеко от Пилтоверской Академии, так что машиной рано или поздно придётся заняться для поездок в офис. А в офис Джейс планировал выходить с целью вернуться к нормальной жизни и, если не как раньше, то кое-как, но адаптироваться к социуму… Джейс отогнал мысли о перспективах будущей работы подальше, пытаясь сосредоточиться на весеннем великолепии вокруг по пути домой. В конце концов, когда он в последний раз обращал внимание на обстановку своего района? Распахнув чуть-чуть пальто и ослабив шарф на шее, Джейс присел на пустую лавочку в маленьком сквере, достал ещё горячий, пышущий ароматом круассан и прикусил, смакуя вкус миндальной начинки. Снова засвербело в пальцах открыть телефон и посидеть над задачей, но Джейс держался до самого дома. Нет смысла спешить, верно?

***

С задачей Джейс справился за несколько часов, из которых половину тщательно отлаживал и проверял на ошибки. Перед тем, как он собирался было уже упаковать проект в архив и отослать Мэдди, внезапно вспомнил замечание анонима насчёт утечки памяти и вернулся в написанный код, запустив его заново и проходя дебаггером в особо сомнительном блоке кода. Первые пять попыток его успокоили, однако шестая выдала ему мусор в одной из переменной (Джейс обругал себя за невнимательность, это ж надо было так облажаться), а затем и ещё чуть ниже утечку. Хотя… последняя проблема даже была связана не с его кодом, а вела непосредственно в исходники библиотеки… Джейс недолго искал информацию по самому проекту R2K — старые исходники были выложены в гитхаб несколько лет назад до релиза 3.0.0, там же в разделе проблем нашёл в списке свою, исправленную в следующем релизе… Джейс вздохнул и открыл коммит с пофикшенной утечкой памяти, внимательно прокрутил куски кода, понял, каким образом автор избавился от проблемы. И только затем обратил внимание на ник самого автора. MachineHerald. Исправлено 5 лет назад. Несколько минут Джейс сидел в ступоре и невидящим взглядом пялился на жирный цветной текст перед собой, содержащий ник анонима. Допустим, этот аноним работал или работает в компании до сих пор. А может, и не работает, потому что коммит был сделан в рамках сторонних предложенных изменений, а держатель репозитория — piltech_openlibs, то есть сама компания. Вопросов возникло много. Была ли версия библиотеки указана намеренно? Или из года в год тестовое задание не менялось, и никто из команды и самих кандидатов не заметил проблемы, уходящую в данную версию библиотеки? «…Тимлиду не нравится никто из кандидатов. Сначала искали мидлов, но все быстро отсеялись…» Джейс помассировал виски пальцами, снял очки и надавил подушечками пальцев на веки. Что, если в тестовом для джуна не требовалось докапываться до проблемного участка, а данный критерий успешного выполнения задания был скорее для мидлов? Если это так, то в любом случае стоит оставить комментарий о том, что данная проблема была устранена в следующем релизе библиотеки. И, быть может, ссылку на коммит, где представлены исправленные участки кода. Вряд ли от него требовалось дотошно тестировать собственный код и тем более лезть в исходники и править там. Сниффер написан, анализирует пакеты трафика, выводит на экран. Не это ли основная суть задачи? Если на собеседовании всё же речь зайдет об этой утечке, Джейс ответит. Он в принципе думал об альтернативном решении, пусть и не настолько изящном, как у анонима, но в принципе рабочем. Поэтому он исправил только проблему со своей стороны, а в месте, где, собственно, был источник утечки, оставил развёрнутый комментарий. Ну и набросал поверхностно своё решение. Кто бы ни придумал это дурацкое тестовое, он будет доволен тем, как с ним справился Джейс. Некстати подумалось, что кто-то из команды вполне может быть тем самым анонимом.

***

Уже ближе к вечеру Джейс собрал проект в архив и выслал на указанный Мэдди адрес электронной почты. Затем написал Мэдди в мессенджер, поспрашивал насчёт страховки, питания, парковки. Узнал, что в одном из корпусов есть даже кабинет массажа, а на первом этаже спортзал. Несколько кафетериев располагалось на территории комплекса, куда стекались сотрудники двух корпусов, а под зданиями самого комплекса находилась парковка. Джейс немного был в курсе того, как развивалась компания. Изначально PILTech тесно сотрудничала с Академией, набирая стажёров в самые востребованные направления. Хеймердингер, за которым некогда был закреплён один из отделов в компании, лично отправлял отобранных им студентов на стажировку. До третьего курса, пока Джейс учился, этот отбор был ежегодным, однако в последующие четыре года набор был временно свёрнут в связи с расширением компании, а также наймом более квалифицированных сотрудников. Компания переживала бурный рост, обзавелась современным офисным комплексом рядом с парком и прудами почти в центре Пилтовера, а ещё успела открыть свои офисы в других уголках Рунтерры. Компания также славилась тем, что принимала на работу приезжих из других государств — по взаимовыгодному контракту как для Пилтовера, так и для представителей иных стран. Что до Зауна, здесь ситуация была сложнее в силу сложившейся исторически ситуации между двумя городами. Смягчились ли с годами условия приёма на работу, Джейс не знал. Со слов Кейтлин, Вай приняли в компанию по рекомендации одного из сотрудников, но как обстоит ситуация с другими заунитами, работающими в компании, Кейт ответила весьма обтекаемо, мол, коллеги не жаловались. В других компаниях заунитов чаще всего брали на аутсорс, а если уж заунит становился сотрудником, то ему приходилось буквально выгрызать себе карьерный путь наверх. Джейсу вообще казался ужасно несправедливым социальный разрыв между двумя городами, ведь он неоднократно становился свидетелем неравенства среди коллег, когда талантливый выходец из Зауна оставался годами на одной и той же позиции без роста зарплаты, в то время как его коллега — представитель пилтоверского общества — за несколько лет добирался до верха карьерной лестницы.

Джейс надеялся, что в PILTech’е ситуация с наймом и условия работы для заунитов были значительно лучше. Он так и не решился задать этот вопрос Мэдди. Если в команде, в которой его будут собеседовать, найдётся хоть один заунит, он обязательно спросит.

***

«Привет, Джейс! Команда получила твоё тестовое, завтра-послезавтра жду от ребят вердикт. Среди прочих кандидатов тебя подвинули в приоритет, т.к. тимлиду импонирует описанный тобой опыт работы, а также очень понравились проекты на гитхабе. Буду держать в курсе. С уважением, Мэдди.» Это сообщение Джейс получил два дня назад. И все эти два дня в ожидании ответа Джейс не знал, чем себя занять. Он был безумно рад тому, что оказался в первых рядах на потенциальное собеседование, и в то же время так сильно нервничал, что не мог усидеть на месте. Постоянно проверял смарт-часы или телефон, не написала ли Мэдди, проводил время на тренировке дольше, чем обычно, слушая в наушниках подкаст про сетевые технологии и одновременно изматывая себя до полного истощения. Вечером второго дня смарт-часы коротко завибрировали, оставленные на ванной тумбе рядом с душевой кабиной. До этого дня Джейс никогда так не делал, оставляя технику за пределами ванной, но в свете последних событий он был на взводе. Едва услышав звук, Джейс резко распахнул запотевшую стеклянную дверь, наспех вытер руки полотенцем и тыкнул пальцем на дисплей. Входящее сообщение: maddi_maddi: «Привет, Джейс! Хотела бы с радостью сообщить, что…» Джейс упёрся ладонью в кафельную плитку, прислонившись к ней лбом, сделал медленный вдох и выдох, а затем тихо рассмеялся. Пена холодила торс, стекая вниз по ногам, но Джейсу было всё равно. Пар конденсатом оседал на зеркале, смарт-часы лежали на полотенце, на ещё включенном дисплее отображался конец сообщения: «… Напиши, в какой из слотов тебе поставить собеседование» Он прошёл.

***

57 минут… Джейс судорожно пролистал документ, в котором составил ответы на возможные вопросы. Мэдди сбросила ему примерный список тем и секций собеседования, поэтому он потратил почти неделю, штудируя теорию по C++, сетевым технологиям, базам данных, системному администрированию. Он также на всякий случай прорешал алгоритмические задачи, вспомнил, какие существуют структуры данных и какие операции могут… 58 минут… Нервно тряслась правая нога, в процессе уже слетел тапок, обнажая рисунок с шестерёнками на носке. Джейс сжал переносицу двумя пальцами, провёл ладонями по лицу и вновь вернул руки на столешницу, ощущая себя всё хуже с каждым мгновением. «Перед смертью не надышишься», — драматично подумал Джейс. 59 минут… Пальцы отстукивали по столу отрывистый ритм, пока Джейс, не мигая, смотрел на окно PiltZoom «Дождитесь, пока появится организатор встречи…». В ожидании неизбежного Джейс ещё раз проверил настройки камеры, критически осмотрел себя со стороны. Даже в своей чистой футболке безупречно белого цвета ему казалось, что он выглядит неряшливо, а волосы и вовсе распушились от постоянного их трогания. Быстро пригладил взъерошенные от волнения волосы и поправил съехавшие на нос очки. 30 секунд… Нужно успокоиться. Нужно вспомнить технику квадрата. Повторить за Лест. Вдохнуть. Задержать дыхание. Длинный выдох. Задержать дыхание. Вдох. Пауза. Выдох. Пауза… Значок загрузки PiltZoom пропал. На чёрном фоне сначала возникла аватарка Джейса с глупым мемным котом, а затем появилась ещё одна — с вычурным граффити песочных часов и надписью >ekko<. — Добрый день, сейчас подрублю камеру, — сказала аватарка с граффити голосом, явно принадлежащему молодому парню. Джейс нахмурился, пытаясь вспомнить, где он мог его слышать. — Виктор будет с минуты на минуту, можете включать камеру, как будете готовы. Вот только Джейс не был готов. Вытер влажные руки о домашние шорты, дотянулся на иконки с выключенным микрофоном и произнёс: — Добрый день. А затем нажал на иконку с выключенной камерой, отображаясь на экране вместо мемного кота, и спустя секунду на месте аватарки с граффити… Погодите… Парень с дредами, которого Джейс встретил больше недели тому назад, смотрел прямо в камеру, в изумлении приоткрыв рот. Фон за его плечами был чуть размыт, но угадывались черты опенспейса. — О, — только выдохнул тот, озадаченно теребя волосы. — Ага. Я тот самый чувак с кофе, — сконфуженно отозвался Джейс, опустив глаза. — Что ж, кхем, — молодой человек слегка растерялся. — Здравствуйте ещё раз, Джейс. Меня зовут Экко, я второй интервьюер на этом собеседовании и буду помогать Виктору. Будет удобнее перейти на ты? — Да. Привет, Экко, — Джейс натянуто улыбнулся, чувствуя, как нервы начинают понемногу сдавать. Собеседование ещё не началось, а он уже на пределе. — Приветствую, — раздался низкий, приятный голос с отличительным акцентом. В поле зрения возникла аватарка с пурпурным аксолотлем, однако в голове Джейса не возникли прямые ассоциации в данный момент времени. Его мозгу было попросту не до того. Перед глазами всплыло воспоминание, всё ещё не утратившее своей ясности, где он стоял перед комиссией, ощущая, как пот стекает по спине, а рубашка неприятно липнет к коже. Руки сцеплены в замок перед собой, а взгляд устремлён на молодого симпатичного аспиранта, который, нахмурив свои точёные брови, держал перед собой распечатанную схему из дипломного проекта Джейса и ровным, спокойным голосом, с тем же акцентом, который не изменился за годы, в пух и прах разносил работу выпускника, — Джейс. Джейсу внезапно захотелось покинуть встречу не раздумывая. Он уже буквально навёл мышь на иконку с дверью. Потому что — вот честно — был готов сорваться прямо сейчас. Ничего не получится, ведь это тот самый Виктор. Происходящее походило на плохо прописанную трагикомедию с неожиданными сюжетными поворотами. Он едва не пролил кофе на первого собеседующего. А второй собеседующий разносил его дипломный проект в прошлом. Уму непостижимо. На экране появилась картинка с веб-камеры, на которой, держа тонкими пальцами ручку дымившейся чашки, показался Виктор, и Джейс затаил дыхание, внимательно рассматривая его и сопоставляя с Виктором из памяти. Виктор заметно похудел и выглядел слегка уставшим, очерченные скулы на лице ещё больше заострились, но взгляд янтарных глаз оставался таким же цепким и внимательным, как и в тот день много лет назад. Каштановые кудри были длиннее и вились сильнее, чем тогда, — по всей видимости, в годы аспирантуры Виктор укладывал волосы, а в бытие разработчиком стало не до прихорашиваний. То же можно было сказать и об одежде: строгую академическую форму сменила безразмерная тёмно-синяя толстовка с логотипом компании на груди. Под ней виднелся кусочек чёрной рубашки. Бледно-золотистая молния и такого же цвета шнурки толстовки отчётливо выделялись на фоне всего остального. — Здравствуй… Виктор, — Джейс нашел в себе силы ответить, несмотря на сложившееся тягостное молчание. Экко неловко почесал затылок, словно ему было некомфортно находиться на этой встрече. Ещё на защите диплома Джейс обратил внимание на то, как держался этот Виктор, и не мог поверить в его происхождение. Он держался поистине аристократично — весь такой тонкий, эфемерный, с плавными движениями и ровной манерой общения — он притягивал к себе взгляд, и Джейс не мог не согласиться с тем, что, несмотря на то, что Виктор уничтожал своей речью его выпускную работу, делал он это весьма красиво. Даже то, как он облокачивался на трость, выглядело возмутительно благородно. Прошли годы, а Виктор не утратил утончённости в движениях. Прямо сейчас он подносил кружку к губам элегантно и неторопливо, с лисьим прищуром глядя в камеру, и молчал. По его красноречивому взгляду было понятно, что Джейса он помнит тоже. Изумления в его взгляде не было, вероятно, потому что знал, кто стоит за именем Джейс Талис в заголовке резюме. — Поразительная встреча, — наконец произнёс он с лёгкой иронией, но тем не менее спокойно, отставляя кружку вне поля зрения своей камеры. — Впрочем, предаваться воспоминаниям предлагаю позже. Ещё раз здравствуй, Джейс. Напомню, меня зовут Виктор и я тимлид команды, в которую мы тебя собеседуем, а это Экко, разработчик из команды, и сегодня он также будет помогать вести собеседование. Вернее, он только учится их проводить… — Эй, я ведь уже минимум десять провёл! — встал в позу Экко, смешно всплеснув руками. — Я не виноват, что мне приходится подсказывать кандидатам, что и где править в куске кода. У нас время ограничено, не можем же мы сидеть по два часа на собесе! — Тем не менее, подсказывать нельзя, — покачал головой Виктор, мягко улыбнувшись, и Джейс поразился тому, как его лицу шла улыбка. — Можно направлять, но указывать место, где присутствует проблема, точно не надо, — он снова посмотрел в камеру, заметно расслабленный коротким диалогом со своим коллегой: в выражении лица появилось что-то располагающее, чего не было тогда на защите диплома, и Джейс почувствовал себя чуточку лучше. — Джейс, если не хочешь, чтобы Экко подсказывал, можешь рассуждать вслух, а то он молчание не переносит. — Это правда, — кивнул Экко, усмехнувшись краем рта. — Хорошо, Виктор, я постараюсь не подсказывать. Тем более, думаю, что Джейс и сам всё объяснит, с тестовым он справился без проблем. — Мы сейчас дойдём до него, — Виктор смотрел куда-то сквозь экран, видимо, что-то открывая у себя. — Экко, расскажи про нашу команду и чем мы занимаемся, пока я открываю тестовое и заметки Мэдди. Экко в деталях рассказал про команду и какими проектами она занималась. Выяснилось, что довольно долго команда находилась на аутсорсе, и относительно недавно компания присоединила её в качестве постоянных сотрудников, оценив по достоинству их потенциал на рынке. — Мы с Паудер разрабатываем, как правило, в паре компоненты, — Экко смущённо отвёл глаза. — Раньше у нас ещё был четвёртый разработчик, он чаще один или с Виктором работал. Самые сложные штуки им доставались, потому что, ну… мы с Паудер ещё не такие опытные, скажем так. — Вы успеете настрадаться, — произнёс Виктор, немного отстранился от экрана и поднял глаза. Джейс почувствовал кожей, что сейчас ему зададут тот самый вопрос, на который он отвечал много раз. — Джейс, расскажешь немного про свой путь к нам? Довольно удивительный поворот карьеры у тебя случился. Виктор смотрел заинтересованно в ожидании ответа, и этому было объяснение. В финтехе платили намного больше на рынке, чем любым другим разработчикам, и только дурак уйдёт из финтеха в свободное плавание. Однако Джейс себя дураком не считал. В конце концов он смог наконец произнести вслух то, что давно хотел: — У меня никогда не было настоящей заинтересованности в этой области, — правда давалась слишком легко. — Были… обстоятельства, которые удерживали на месте. Теперь я занимаюсь тем, что мне нравится, и тем, чем всегда хотел, — Джейс расправил плечи, осмеливаясь посмотреть в камеру. Виктор одобрительно хмыкнул, Джейсу не показалось. — И… — он зачастил от волнения, — возможно, прозвучит наивно, но я хотел бы разрабатывать что-нибудь, что приносило бы пользу людям. И потому мне хотелось пройти собеседование, хотя, должно быть, моего опыта недостаточно и… — Джейс провёл по лицу, лихорадочно соображая, как продолжить мысль. — Джейс, — то, как его имя прозвучало из уст Виктора, заставило Джейса осечься и замолкнуть. — Извините, — севшим голосом произнес он. Экко показал большой палец, видимо, желая приободрить. — Всё в порядке, — выражение лица Виктора можно было назвать нейтральным, если бы не приподнятые уголки губ и лукавый блеск в глазах. Он не выглядел раздражённым или недовольным, казалось, наоборот, сказанное… обрадовало его? — Мы посмотрели твои проекты на гитхабе, разработки выглядят впечатляюще для человека без опыта работы. — Ну, это не совсем так, — не согласился Джейс. — Я проходил курсы по разработке. Плюс ко всему, в Академии занимался немного этим всем. — Угу, а твой дипломный проект обладал хорошим потенциалом, — внезапно выдал Виктор и тут же, осознав оплошность, поспешил откашляться. Что? Виктор на самом деле считал, что у его дипломного проекта был потенциал? Это говорит Виктор, из-за которого Джейс едва не провалил защиту? Джейсу не послышалось же? — Сейчас данная оценка не имеет к делу никакого отношения, — продолжил Виктор, явно взволновавшись, судя по тому, как он отвёл глаза. — Как я уже сказал, наработки — очень хороши, но им не хватает слегка… структурированности. Некритично, но в работе она может быть существенна. — Понял, — кивнул Джейс, чувствуя прилив сил после неосторожной похвалы. — Ну, что ж… — Виктор откинулся на кресле. — Полагаю, можем разобрать тестовое. Экко, я помню, у тебя была пара замечаний. — Ага, сейчас зашарю, — Экко защёлкал мышкой. На экране возникло тестовое Джейса, открытое в среде разработки. — Вот, в классе AsyncPacketsHandler.cpp мне показалось проблемным это место... Джейс подробно объяснил, с чем столкнулся, когда разрабатывал обработчик пакетов; Виктор задал пару наводящих вопросов по теории C++, и Джейс на них ответил настолько развёрнуто, насколько смог. Тем не менее, никто из них так и не спросил про комментарий с утечкой памяти, и Джейс слегка расстроился. Дальше, разумеется, Экко и Виктор стали задавать вопросы по теории компьютерных сетей. Их было достаточно, Джейс отвечал, по его мнению, неплохо, хотя и плавал местами. — Хм, допустим, с транспортным уровнем мы разобрались, — Виктор стучал пальцем по столешнице. — Можешь рассказать, на каком уровне мы шифруем передаваемые данные? — Так, в модели OSI — это уровень представления, — Джейс активно жестикулировал. — Это следующий уровень за уровнем приложения — последний обычно видим клиенту в том же браузере на уровне приложений. — А частью какого протокола является процесс шифрования? — вклинился Экко. — Это протокол безопасности SSL/TSL и он работает на нескольких уровнях, — Джейс очень чётко увидел перед собой модель. — На уровне клиента или приложения это HTTPS, например, клиент может увидеть в адресной строке. Следующие нижние уровни — представления, сеанса и транспортный — также реализуют отдельные функции данного протокола. — Хорошо, — Виктор удовлетворённо качнул головой. — Я ещё хотел бы вернуться к тестовому, так как остался один вопрос, но задам его уже после секции кода-ревью. Экко, скинешь ссылку в чат? Джейс открыл Piltech.Code из чата, прочитал условие задачи, а затем уставился в код. Ох, это выглядело явно нелегко. Сложная иерархия классов, множественные указатели, асинхронный код… — Твоя задача — найти все сомнительные места в коде и предложить способы его улучшить, — сказал Экко. — Если будешь рассуждать вслух, нам будет так даже проще оценить ход твоих мыслей. Джейс кивнул и принялся пробегаться взглядом по строчкам. Были места, которые сразу бросились в глаза, и он предложил способ пофиксить проблему. Внимательно наблюдал за лицом Виктора, чьи брови отлично свидетельствовали о верном или неверном направлении, выбранном Джейсом. Но чем глубже Джейс смотрел в код, тем сложнее ему давалось выявлять недостатки. Всё же опыта Джейса было недостаточно, отчего он почувствовал лёгкое отчаяние. — Здесь необходимо освободить память, — он навёл курсор на последнюю строчку функции. — А вот здесь — здесь не хватает залоченного мьютекса*, чтобы другой поток не получил доступа к этому куску кода. — Насчёт последнего, — Виктор сделал глоток из чашки. Спустя час он выглядел ещё более уставшим, чем до этого. Джейсу показалось, что Виктор был нездоров, хотя это мог быть банальный недосып с учётом специфики его работы. — Почему именно здесь необходим мьютекс? И где нам нужно сделать его разблокировку? Джейс задумался, проходя по строчкам кода снова. Молчание растянулось на долгие минуты, как вдруг Экко, сложив руки наподобие рупора, шёпотом произнёс: — Там, где закрываешь ресурсы… — Ох, Экко… — Виктор приложил ладонь ко лбу. — Но, впрочем, так и есть. Если вкратце — сначала нужно закончить работу с ресурсами, и только затем освободить доступ к коду. — Ясно, спасибо! — Джейс мысленно пометил себе, где у него пробелы с теорией. — Думаю, с этой секцией тоже разобрались, — Виктор поставил кружку на стол и вновь посмотрел в камеру. — Джейс, у меня остался вопрос насчёт твоего комментария в тестовом. Вижу, ты обнаружил давнюю плавающую проблему, которая жила в R2K много релизов подряд. Можешь рассказать подробнее о том, как бы ты её пофиксил? Джейс с энтузиазмом изложил примерное решение, с волнением наблюдая за Виктором. Тот слушал внимательно, нахмурившись, и его лицо всё больше походило на то самое, что Джейс видел на защите дипломного проекта. Под конец он начал сбиваться и завершил свою мысль весьма сумбурно. «Он не этого ожидал», — с ужасом промелькнула мысль. — Да, в теории звучит неплохо, — медленно, словно подбирая слова, начал Виктор. — Однако есть несколько сомнительных мест, на которые стоило бы обратить внимание, — перечислил их, и Джейс заметно поник. — Но решение сгодится, — сдержанно закончил Виктор, — очень похвально, что ты отловил утечку памяти и поразмыслил над её исправлением. Это не подняло настроение Джейсу от слова совсем, но он продолжал вежливо улыбаться. Время собеседования подходило к завершению, и Джейс чувствовал себя измотанным. По виду собеседующих было непросто сказать, прошёл ли он проверку или нет, довольны ли они его ответами. Последние пять минут Джейс спрашивал про нюансы работы и про сроки ожидания результата собеседования. — Мэдди свяжется с тобой, как будут итоги, — сказал Экко, — мы оставляем фидбек кандидатам вне зависимости от того, прошли они или нет. Спасибо огромное, что пообщался с нами, было круто. — Спасибо за интересные рассуждения, — кивнул Виктор, устало улыбаясь. — Был рад пересечься. Доброго вечера, Джейс. — И вам спасибо! — после этой фразы окно встречи схлопнулось. Джейс растёкся на кресле, пребывая в прострации. Затем, очнувшись, схватил телефон и, открыв переписку с Кейт, написал дрожащими пальцами: jayce_talis [18:23] росточек думаю я проебался Примечания: 0) Зери - чемпион Зауна в League of Legends, в игре стреляет электрическими снарядами, которые рождаются из ее взрывного темперамента. В дизайне её персонажа на одной щеке можно увидеть перекрёстный пластырь. Мне показалось хорошей идеей добавить её в сеттинг, т.к. возможно она ещё появится в повествовании и не раз ввиду её любви к технике и электричеству. 1) Певчая ласточка (Galesong Swallow) - птица-фолловер из карточной игры Legends of Runeterra, связана с регионом Пилтовер-Заун. “Дитя ветра”, имеющее отношение к Жанне, которую обожествляют в Зауне. 2) С++ - язык программирования, который часто используется для нетривиальных решений, особенно для сетевого программирования. В геймдеве пример использования - движок Unreal Engine. 3) Пэт-проекты - то же самое, что и домашние проекты, созданные своими руками. 4) Сниффер - это программа для анализа и разбора пакетов трафика. Если пояснять по-простому, на экран выводится информация, с какого IP пришёл пакет, какого размера, с какой сигнатурой. В случае Джейса представлен самый простой вариант, который разбирает пакеты только на транспортном уровне сети, который ещё упоминался в прошлой главе, но существуют более профессиональные приложения, которые охватывают большую часть уровней. Если интересно потрогать, можно попробовать Wireshark, это профессиональный инструмент, который позволяет посмотреть, что происходит в вашей сети. 5) Также TCP и UDP - протоколы транспортного уровня, первый пояснялся в первой главе. MachineHerald в своем тикете упоминает протокол TCP, это протокол транспортного уровня из модели OSI, который заключается в том, что при взаимодействии конечных узлов в сети (например, ваше устройство и сервер в другой жопе мира) происходит подтвержденная двусторонняя передача пакетов трафика. Каждый пакет проверяется на целостность, поэтому гарантируется 100% передача данных, разбитых на пакеты. Отличие UDP в том, что это по сути “стримовый” протокол, пакеты тупо шлются без проверки и неважно, потеряется часть из них нет. 6) Библиотека - это реализованный функционал, как правило, на том же языке, на котором пишет разработчик. По сути это велосипед, который не нужно изобретать заново, библиотека берет на себя часть того, что вы хотите использовать. Например, посчитать сложную формулу, которая уже реализована в библиотеке. Вам достаточно ввести параметры, чтобы получить результат. 7) Дебаггер - инструмент, который позволяет пройтись по коду в режиме реального времени во время запуска. Для этого на определенной строчке выставляется точка останова, и в этой точке в окне деббагера появляются сделанные на данный момент определенные вычисления. Разработчик может выставить много точек останова, копая всё глубже. Этот инструмент очень часто используется для обнаружения и исправления багов. 8) Джун/Мидл/Сеньор - общепринятые обозначения квалификации разработчиков. Обычно тимлидом (начальником) команды становится сеньор, достаточно опытный разработчик. Джун - это по сути “младший” специалист. 9) Мьютекс (из C++ и С) - конструкция для ограничения доступа к блоку кода. Например, в блоке кода вы сохраняете данные в текстовый файл. Иногда к блоку коду может быть доступ из других точек приложения, и, чтобы не произошло всяких казусов, например, неправильной записи данных в файл, мьютекс блокирует доступ. Когда операция сохранения выполнена, мьютекс снимается (происходит разблокировка).       
Отзывы (12)