Через череду собеседований к работе мечты
Nov. 28th, 2022 12:34 amВыяснил, что на предыдущей работе меня могут принять. Оставил этот вариант пока на потом.
Для компании А из соседней страны сначала сделал техническое задание на Си++ с матрицами, где благодаря шаблонам реализовал оптимизацию с отложенными вычислениями. Потом было техническое собеседование, затем ещё с лидером команды. А вот на собеседовании с техническим директором оказалось, что всё же они хотят меня на месте, но я не могу в силу личных причин.
Из компании К1 со мной поговорили предварительно уже давно часок, и всё.
Компания К2 (того же уровня для меня, что и К1) присылала мне сначала кучу общих и не очень вопросов на английском, на которые надо было ответить по-английски же развёрнуто. Долго тянул, но отправил. Потом они прислали тест GIA assessment на сайте thomas.co на предмет, насколько я корректно и быстро отвечаю. Сделал, жду следующий этап.
Компания Ф из другой соседней страны, для которой я когда-то делал даже тестовое задание и прошёл все собеседования, в то время не нанимала на удалёнку, а теперь - да! Договорились, что будем собеседоваться в середине декабря, у них ближе к концу года наём какой-то очередной будет.
С компанией Л из далёкой страны (а поэтому удалёнка с ними - нормально!) сначала было техническое ознакомительное собеседование, затем уже детальное техническое собеседование. И только потом задачка типа Connected-component labeling. Для решения я выбрал вариант обхода по одной фигуре, когда, кроме результирующих фигур, ничего не запоминается, только читается исходная чёрно-белая матрица, т.к. нет дополнительного расхода памяти. Было странное нераскрываемое подробно требование: это должно быть решение уровня продакшена. В общем, я сначала сделал просто нахождение контуров (внешних идентифицирующих и внутренних - "дыр"), потом добавил оптимизацию с использованием памяти, чтобы при прохождении следующих колонок сохранялись возможные промежуточные результаты от фигур, потом добавил многонитку, т.к. такой алгоритм только на чтение очень хорошо параллелится (разбиваем исходную матрицу на участки для каждой нитки, потом объединяем по всем ниткам результат в виде множества). По ходу написал загрузку картинок из файлов PNG. По ходу написал кучу юнит-тестов, которые мне позволили иногда понять лучше, что я на самом деле пишу, какой должен быть ответ. Потом ещё для больших картинок нагенерил тесты и спокойно рефакторил, добавляя оптимизацию и многонитку.
Затем было кодревью решения. Поругали, что оставил одну слишком длинную функцию (я её "испортил", увеличив размер для варианта с оптимизацией, до этого она была достаточно короткой и читаемой). Поругали за оверинженериг юнит-тестирования, но я не согласился, объяснил, что очень мне это помогло сделать продакшин уровня решение. В тестах же предугадал некоторые вопросы (что проверять можно поворачивая и отражая исходную матрицу - должно получаться то же количество фигур в результате).
Теперь должно будет назначено окончательное собеседование. Пока жду.
С компанией П тоже из далёкой страны пока жду завтра в обед лайвкодинга на час.
А с местной компанией У было техническое ознакомительное собеседование, дали задачки, одну из них я, похоже, решил сегодня, но остаётся вторая, она посложнее будет с обфускированным кодом, пока только стал подступаться, но время ещё есть.
Увольнение же, похоже, настанет где-то в середине-конце января.
https://mpd.livejournal.com/185416.html
Для компании А из соседней страны сначала сделал техническое задание на Си++ с матрицами, где благодаря шаблонам реализовал оптимизацию с отложенными вычислениями. Потом было техническое собеседование, затем ещё с лидером команды. А вот на собеседовании с техническим директором оказалось, что всё же они хотят меня на месте, но я не могу в силу личных причин.
Из компании К1 со мной поговорили предварительно уже давно часок, и всё.
Компания К2 (того же уровня для меня, что и К1) присылала мне сначала кучу общих и не очень вопросов на английском, на которые надо было ответить по-английски же развёрнуто. Долго тянул, но отправил. Потом они прислали тест GIA assessment на сайте thomas.co на предмет, насколько я корректно и быстро отвечаю. Сделал, жду следующий этап.
Компания Ф из другой соседней страны, для которой я когда-то делал даже тестовое задание и прошёл все собеседования, в то время не нанимала на удалёнку, а теперь - да! Договорились, что будем собеседоваться в середине декабря, у них ближе к концу года наём какой-то очередной будет.
С компанией Л из далёкой страны (а поэтому удалёнка с ними - нормально!) сначала было техническое ознакомительное собеседование, затем уже детальное техническое собеседование. И только потом задачка типа Connected-component labeling. Для решения я выбрал вариант обхода по одной фигуре, когда, кроме результирующих фигур, ничего не запоминается, только читается исходная чёрно-белая матрица, т.к. нет дополнительного расхода памяти. Было странное нераскрываемое подробно требование: это должно быть решение уровня продакшена. В общем, я сначала сделал просто нахождение контуров (внешних идентифицирующих и внутренних - "дыр"), потом добавил оптимизацию с использованием памяти, чтобы при прохождении следующих колонок сохранялись возможные промежуточные результаты от фигур, потом добавил многонитку, т.к. такой алгоритм только на чтение очень хорошо параллелится (разбиваем исходную матрицу на участки для каждой нитки, потом объединяем по всем ниткам результат в виде множества). По ходу написал загрузку картинок из файлов PNG. По ходу написал кучу юнит-тестов, которые мне позволили иногда понять лучше, что я на самом деле пишу, какой должен быть ответ. Потом ещё для больших картинок нагенерил тесты и спокойно рефакторил, добавляя оптимизацию и многонитку.
Затем было кодревью решения. Поругали, что оставил одну слишком длинную функцию (я её "испортил", увеличив размер для варианта с оптимизацией, до этого она была достаточно короткой и читаемой). Поругали за оверинженериг юнит-тестирования, но я не согласился, объяснил, что очень мне это помогло сделать продакшин уровня решение. В тестах же предугадал некоторые вопросы (что проверять можно поворачивая и отражая исходную матрицу - должно получаться то же количество фигур в результате).
Теперь должно будет назначено окончательное собеседование. Пока жду.
С компанией П тоже из далёкой страны пока жду завтра в обед лайвкодинга на час.
А с местной компанией У было техническое ознакомительное собеседование, дали задачки, одну из них я, похоже, решил сегодня, но остаётся вторая, она посложнее будет с обфускированным кодом, пока только стал подступаться, но время ещё есть.
Увольнение же, похоже, настанет где-то в середине-конце января.
https://mpd.livejournal.com/185416.html
no subject
Date: 2022-11-28 02:10 am (UTC)Мне давно интересно, что британские учёные советуют в таких случаях делать. Неужели писать примерно так:
void step1(void) {
/* do stuff here */
}
void step2(void) {
/* do more stuff here */
}
void step3(void) {
/* do final stuff here */
}
void do_stuff(void) {
step1();
step2();
step3();
}
Даже если забыть про передачу параметров туда-сюда и придумывание названий всем функциям, какой смысл подобной деятельности?
Re: забыть про передачу параметров туда-сюда и придумыв
Date: 2022-11-28 09:37 am (UTC)А оправданная претензия была к этой функции:
Которая до оптимизации была вот такой:
И да, забыл сказать, что к нотации, выбору имён - были претензии.
no subject
Date: 2022-11-28 07:51 am (UTC)Какие интересные нынче запросы.
Re: Какие интересные нынче запросы.
Date: 2022-11-28 09:42 am (UTC)Но процесс у всех - очень разный.
Я был удивлён, что вот так бывает, в таком порядке: сначала - два собеседования, второе достаточно подробно техническое, и только потом - челедж, а потом код-ревью челеджа.
Код посмотреть.
Date: 2022-11-28 08:35 am (UTC)Мне интересно в целях саммобразования.
Спасибо.
Re: Код посмотреть.
Date: 2022-11-28 09:39 am (UTC)no subject
Date: 2022-11-28 08:48 am (UTC)Re: Мдя. не потянул бы.
Date: 2022-11-28 09:44 am (UTC)Главное - ввязаться в бой! ;-)
И да, сил и времени - очень много отнимает, возраст - чувствуется.
Но в целом общение - очень приятное, я бы сказал.
Re: Мдя. не потянул бы.
Date: 2022-11-28 03:32 pm (UTC)Конечно если это не biz buzz.
Судя по Вашим описаниям, задания достаточно сложные.
Матрицы на мой взгляд не меньше 8 часов работы.
Я бы попросил оплату.
PS.
Я наверное "наглая скотина" но уточню свой предыдущий вопрос.
Можно ли где на гитхабе посмотреть задания и код к ним. Очень интересует ваше решение на темплейтеах.
Заранее большое спасибо.
Re: Я бы попросил оплату.
Date: 2022-11-28 04:08 pm (UTC)Но вы правы, не меньше 8-ми.
Но у меня есть интерес.
Если честно, первый раз слышу настолько конкретно поставленный вопрос об оплате тестового задания.
Таким образом, я уже третье тестовое задание в этом сезоне поиска работы делаю бесплатно!
С другой стороны, меня прёт от выполненного задания, которое засчитали.
Я каждый раз что-то новое узнаю...
Да и не вечно я буду этим заниматься, время выхода на новую работу неотвратимо приближается.
no subject
Date: 2022-11-28 04:46 pm (UTC)У меня есть тест для клиентов. )
Я предлагаю клиентам за небольшую плату от стоимости основных работ, составить ТЗ.
Если клиент не готов оплатить ТЗ, то значит он еще не созрел для работы.
Успехов!
Re: своеобразный тест на "вменяемость" компании
Date: 2022-11-28 07:53 pm (UTC)Нет, пожалуй, не буду пока просить.
С ТЗ и клиентами - тут всё же несколько другое.
Вот, если клиент стал просить для него сделать много вариантов, чтобы можно было выбрать из чего, то да, пусть оплачивает эти варианты.
У меня даже был такой случай, когда я делал прототип программы для подбора причёсок в он-лайне.
Это было ещё на яве в виде апплетов на странице.
А т.к. я работал в рамках фирмы, которая до этого делала сайт и предлагала на выбор дизайн, и за это мои товарищи не брали денег, то клиент привыкший к таким отношениям потребовал, чтобы и прототип моего апплета был бесплатным. Но у него тогда не получилось меня убедить. :-)
Re: своеобразный тест на "вменяемость" компании
Date: 2022-11-29 10:50 am (UTC)в одном французском фильме было правило для девушек "никогда не принимай от молодого человека предложение провести выходные после вторника, потому что после вторника у всех приличных девушек выходные уже распланированы".
Другими словами это поднятие своей стоимости в глазах клиента.
Точно также просьба об оплате тестового задания, это поднятие своей стоимости.
Вас просто за это будут больше уважать. Это показывает что у Вас достаточно предложений из которых вы можете выбирать.
Поробуйте! ) Для Вас риск минимален. А у компании вы получаете дополнительные баллы. Вас просто отмечают, как необычного кандидата, таким образом вы очень выделяетесь из списка других кандидатов.
Успехов!
PS.
Я пишу о "постоплате", после выполнения задания. Предоплату просить не надо. Они вас не знают. )
Re: после выполнения задания. Предоплату просить не над
Date: 2022-11-30 12:02 pm (UTC)Я предпочту осознавать, что они мне - должны! ;-)