Coder Doesn’t Know
1.1K subscribers
42 photos
4 videos
1 file
23 links
- про IT & Big Tech
- Жизнь в Европе
- Релокацию и быт 🏝

По вопросам и консультациям: @coderdoesntknow_support

DISCLAIMER: Views/ideas are mine, not my employer’s. For info & educational purposes only.

P.S. I don’t share insights about my employer
Download Telegram
Не так давно мой знакомый проходил техскрин в Meta и вот, что у него спросили:

Behavioral questions:
- Tell me about yourself;
- Tell me about your most significant impact on a project;
- Tell me about cross-team collaboration;
- Tell me about a conflict that you had at work.

LeetCode:
 - https://leetcode.com/problems/binary-tree-vertical-order-traversal/
 - https://leetcode.com/problems/merge-sorted-array/

А вы прошли бы техскрининг?

#faang #interview #algorithms #behavioral
🔥92
Если вы пользуетесь Claude, расскажите, какие полезные скиллы, команды или MCP-серверы вы создали?
2
С Днём Победы!
112👎5👍2
Плюсы жизни в Лондоне 🇬🇧

Прошел год, как я переехал из Амстердама 🇳🇱 в Лондон 🇬🇧, и вот 5 плюсов, которые я заметил:

1️⃣ Для программиста Лондон - это одно из лучших мест в мире. Количество вакансий тут огромное. Количество предложений, которое приходит на LinkedIn, не сравнится с тем, что было, когда я находился в Нидерландах или в Казахстане. Но! Стоит учитывать, что мое резюме стало с тех пор привлекательнее на рынке. Практически все, а то и все гиганты IT тут есть.

2️⃣ Тут всегда есть чем заняться на любой кошелек и любой вкус. Начиная от Национального музея, который бесплатный, и заканчивая концертами, футбольными ⚽️ матчами, и даже периодически НБА 🏀 проводит игры тут.

3️⃣ Квартиры (те, в которых я жил, по крайней мере 😃) намного теплее, чем в Нидерландах. К примеру, живя в НЛ, я спокойно мог прийти раньше того, как запустится бойлер по таймеру (обычно вы ставите его на определенное время, чтобы сэкономить, так как тепло стоит больших денег в Европе. Ставишь по таймеру, и перед приходом с работы квартира нагревается, но если приходишь раньше, то получается неприятная история), и температура могла быть 14–16 градусов в квартире (освежающе, правда?), но в Британии я всю зиму почти не включал батареи, и температура была минимум 21 градус. Возможно, просто сам дом был теплее, хоть ему и 200 лет.

4️⃣ Да и вообще климат очень мягкий. Я всю свою жизнь слышал о Британии как о Туманном Альбионе, о том, что «в Лондоне опять дожди» (с) Оксимирон, но дожди в основном ночью, а утром максимум трава мокрая. Летом очень солнечно, и температура держится около +30 градусов тепла. Зимой тоже тепло, в среднем ночью было +5, а днем около +10 градусов.

5️⃣ ОЧЕНЬ МАЛО КОМАРОВ. Я их ненавижу. Они всегда выбирают искусать меня. Если вы ночуете со мной в одной комнате, то будьте спокойны, вы в безопасности, все комары будут есть меня 😁. Что в Астане, что в Амстердаме были комары. Хоть в Амстердаме их нааамного меньше, чем в Астане, они периодически все равно залетали в окно, а так как москитную сетку не поставить так просто, а кондера в комнате нет, летом, когда жарко, приходилось страдать. В Лондоне я спокойно сплю с открытым окном летом.

#uk #london
🔥19👍83
👋️️ Несколько фото в дополнение к посту выше из района, в котором я живу.
😍21🔥9🤩52
Минусы жизни в Лондоне 🇬🇧

Прошел год, как я переехал из Амстердама 🇳🇱 в Лондон 🇬🇧 и вот 5 минусов, которые я заметил:

1️⃣ Нет четкого разделения между хорошими районами и плохими. Ты можешь идти по очень красивому и благополучному району, но перейдя через улицу можно попасть в около-гетто. Это шокировало изначально.
Еще интересный факт, что, например, в странах наподобие моей, чем ближе ты к центру города, тем лучше дома и районы, тем безопаснее улицы, но тут это вообще не так. У тебя легко могут своровать телефон именно в центре, тогда как в зонах дальше первой и второй это встречается в разы реже.

2️⃣ Воровство - это следующий шокирующий пункт. Моя семья лично столкнулась с тем, что человек на электровелосипеде в балаклаве чуть не выдернул телефон из рук. Спасла только реакция. Можно часто увидеть, как люди держат в Лондоне телефон, а именно - двумя руками 😁️️️️️️. Находясь в Астане или Амстердаме, я и не думал о том, что у меня могут выдернуть из рук телефон.

3️⃣ Большие налоги. Для меня, как для человека, привыкшего к тому, что в Казахстане договариваешься о зарплате после налогов и получаешь оговорённую сумму ежемесячно, а работодатель уже платит медстраховку, 10% пенсионки за тебя и 10% подоходного налога, это было шоком. Тут шкала прогрессивная и может легко добраться до 45 или 47 процентов + если ты получаешь бонусы, то налог может быть и больше 50%, лично проверил.

4️⃣ Конечно же, дорогое жилье, как для съема, так и для покупки. Начнем с покупки, обычным смертным, как мы, приходится платить ипотеку по 20-30 лет и я, как человек, который всю жизнь избегал этого, всё ещё не могу с таким смириться. Насчет аренды, цены на квартиры в неплохом районе легко могут начинаться от 2500 фунтов в месяц + коммуналка + консил такс может быть около 300 фунтов. Итого, если вас перевозят, скажем, с зарплатой 80 000 - 90 000 фунтов в год до налогов, то вы будете сводить концы с концами. Именно такую зарплату мне предложила одна из компаний, когда я еще находился в Казахстане 🇰🇿, но посчитав я понял, что для меня будет в разы выгоднее поработать на эту компанию из Казахстана и действительно, было очень беззаботное время, когда не нужно было думать о деньгах 😃.

5️⃣ Все услуги, в которых задействован человек, стоят дорого. Например, вокал в Казахстане 3 раза в неделю на месяц будет стоить 50 тысяч тенге или около 100 долларов, тут за одно занятие можно отвалить 100 фунтов.

#uk #london
👍10🤔5🔥21
Хахаха, а что за фетиш такой: вы с коллегой сидите друг напротив друга, и у вас назначен 1:1 звонок с ним. Вот наступает час Х, и на ваших ноутбуках вылезает напоминание о встрече.
Коллега встает и идет в кабинет, где у вас будет звонок. Ты встаешь и идешь за ним. Но ведь могли бы пойти вместе, innit?
😁14🥴2👎1
Уровни в бигтехе, и есть ли жизнь после сеньора?

Многие считают, что после сеньора логичное продолжение карьеры - это стать Engineering Manager, но на самом деле это не повышение, а смена направления.

В компаниях поменьше сеньор часто является самым скиллованным и опытным человеком на проекте. И этого обычно достаточно. Иерархия для инженера в таких компаниях может выглядеть примерно так:
Intern SWE → Junior SWE → Middle SWE → Senior SWE → CTO.
Почему так? Потому что в небольшой компании CTO может быть самым технически подкованным специалистом в компании, удерживающим контекст сразу нескольких проектов.

Когда мы говорим о больших компаниях, уровней становится в разы больше. Чем выше уровень, тем шире скоуп ответственности и тем важнее мыслить глобально, а не фокусироваться на деталях имплементации. Например, линейка уровней может быть такой:
Intern SWE → Junior SWE → Middle SWE → Senior SWE → Staff SWE → Senior Staff SWE → Principal SWE → Fellow
Чем правее позиция, тем меньше в компании таких людей и тем больше скоуп обязанностей.

Также путаницу часто создает роль менеджера. Нужно понимать, что есть два направления: Individual Contributor (IC) и Manager.
С треком IC мы разобрались, а вот стать менеджером можно, пройдя позицию Senior. То есть после сеньора открывается путь либо в Staff Engineer, либо в Engineering Manager.
В менеджерском треке путь будет выглядеть так:
Intern SWE → Junior SWE → Middle SWE → Senior SWE → Senior SWE → Manager → Senior Manager → Director → Senior Director

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

Мы, конечно же, подробно обсудим каждый уровень, но это уже в следующих сериях 😁️️️️
🔥9👍7🤓31🤔1
90% IT-резюме не проходят скрининг в Big Tech из-за одних и тех же ошибок. Мой опыт ревью десятков CV за последние 3 года это подтверждает.

Вот топ-11 поинтов, которые усилят ваше резюме:

1️⃣ Контактные данные - компактно в одну строку

ИМЯ | телефон | email | linkedin - одной строкой сверху. Чисто, без блоков.
👉 Пример: JOHN DOE | +7-777-777-1234 | coderdoesntknow@gmail.com | linkedin.com/in/yakovshmidt

2️⃣ Заголовок-«био» в одну строку под именем

Сразу после имени - резюме всей карьеры: «7+ years of experience, including highly available distributed systems, robust bank microservices, and team leadership». Рекрутер за 3 секунды понимает уровень и специализацию.

3️⃣ Одна строка контекста про каждую компанию

Перед достижениями внутри компании стоит указать что это за компания и масштаб: «Citi is an American multinational investment bank and financial services corporation with 200K+ employees». Это придаёт вес твоим достижениям (масштаб = серьёзность задач).

4️⃣ Сильные глаголы действия в начале

Designed, Developed, Led, Optimized, Migrated, Reduced, Spearheaded, Launched. Никаких «was responsible for» / «participated in».

5️⃣ Большинство буллет поинтов измеримы в цифрах - с форматом «было → стало»

Примеры из моего CV:
• «designed and developed an event tracing application, reducing error investigation time by 6x (~30 to ~5m)»
• «engineered the National Educational Database (20K+ requests/s), automating data processing, reducing paperwork by ~70%»

6️⃣ Связь технического решения с бизнес-результатом

Не «написал сервис», а «co-designed and co-developed store modules, increasing revenue by 20%» или «...reducing manual work for obtaining client information by ~90%, processing 10k+ events/day».

Каждое техническое достижение переведено в деньги, время, пользователей, надёжность или тому подобное.

7️⃣ Лидерство и менторство как отдельные буллеты

Даже у не-менеджеров поинты по менторству, онбордингу и лидерству очень важны.

Примеры:
• «Consistently appointed as Interim Team Lead for 3 senior-level engineers (~3 mos/yr), collaborating with 10+ teams»
• «Conducted 10 technical interviews, hired and onboarded 2 backend engineers».

8️⃣ Stack. Технологии, с которыми работали под каждой компанией.

Технологии перечислены по каждому месту работы отдельно. Рекрутер и ATS сразу видят релевантный стек именно для той задачи.

9️⃣ Обратный хронологический порядок + честная обработка пробелов

Свежий опыт сверху. Пробелы (декрет, переезд, неоконченный вуз) не скрываются, а переформулируются позитивно: «Maternity Leave... refined skills, solved LeetCode challenges», «Incomplete — proceeded with self-education».

🔟 Компактный «хвост»: Education → Scores → Languages → Hobbies

В конце сжатые секции: образование (с GPA если ≥3.5, экстракуррикулы, fellowship), объективные пруфы навыков (LeetCode Top 15%, CodeSignal 844/850, Codeforces, AWS Certified), языки и хобби. Хобби делают резюме «человечным», хотя занимают всего одну строку.

1️⃣1️⃣ Одностраничное резюме.

Да, это возможно 😁️
🔥12👍742👌1
CV_Yakov_Shmidt_2023.pdf
91.8 KB
Прикладываю своё резюме 2023 года, с которым меня пригласили на собеседования в Google, Meta, Amazon, Uber, Bolt и Stripe.
🔥32👍92😍1
Как подготовиться к алгоритмам, если у вас есть только пара месяцев, а не год.

1️⃣ Старт для новичков
Во-первых, если с алгоритмами ты никогда дел не имел(а), то стоит начать с easy задачек. Но каких? Я бы выбрал список под тип этого и просто шел бы задача за задачей: ссылка на топ-50 easy задачек.

2️⃣ Главное правило: Фреймворк 25/5
Для easy и medium задач используй правило 25/5. Если за 25 минут ты не можешь решить задачу и в голову вообще ничего не идет - не трать время, посмотри первую подсказку.

Если через 5 минут решение так и не приходит, смотри следующую подсказку. И так каждые 5 минут, пока не поймешь, как решить, или пока не закончатся подсказки.

Когда подсказки закончились, открывай само решение, полностью его изучай и пытайся воспроизвести без подглядывания в ответ. Если получилось - отлично. Через неделю попробуй перерешать её заново без подсказок.

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

3️⃣ Переход на следующий уровень
Как только топ-50 easy задач решено, то можно переходить к другому списку - NeetCode Top-150. С YouTube-каналом NeetCode ты еще встретишься не раз, поверь 😄.

Здесь уже смесь задач разного уровня. Используй то же правило 25/5 для easy/medium.

Hard задачи пока что можешь пропускать. Но если очень хочется попробовать, расширь правило до 45/5: 45 минут пытаешься решить сам, а затем каждые 5 минут открываешь по подсказке. Если все открыто, но всё ещё не понятно - изучай готовое решение.

4️⃣ Выход в люди (Мок-собеседования)
Как только у тебя в арсенале будет около 100 решенных задач, пора идти на мок-собеседования с такими же готовящимися, как ты.
Где их искать? В Телеграме есть несколько профильных групп, вот одна из них: 👉 Mockerviews.

Как понять, что ты готов?
Определить готовность можно так: открываешь рандомную, но часто встречающуюся на собеседованиях задачу уровня Medium на LeetCode, ставишь таймер и пытаешься решить. Если в большинстве случаев это удается - ты готов(а).

Зачем нужны моки?
Они помогают научиться объяснять свое решение другому человеку. Уметь решать задачу в тишине и уметь решать её под давлением - это совершенно разные вещи. Поэтому желательно найти несколько человек, с которыми вы будете собеседовать друг друга.

И последнее...
В процессе подготовки ты сам(а) будешь видеть места, над которыми стоит поработать, а на моках всплывут неочевидные подводные камни. Главное - не игнорируй их.

И не тяни с реальными собеседованиями. Собеседования - это часто дело случая. Произойти может всё что угодно, и чем больше попыток ты сделаешь, тем выше шансы получить работу мечты.

Поверь мне, как человеку, который прошел все этапы собеседования в Google, нашел команду, но hiring committee дал отказ после полугодового процесса. Лучше попробовать, как можно раньше, ведь попыток попасть в одну и ту же компанию мечты может быть много.
👍25🔥973
Был у меня как-то звонок с рекрутером из одного из самых быстрорастущих стартапов в области генеративного ИИ для создания видео и изображений 🤔.

Так вот, предложили прекрасные условия, а именно:
• возможность стать миллионером, как только они станут публичными 🤑;
• работа 10–12 часов в сутки, но, как уже говорил, с гибким графиком (а именно: можно прийти в офис к обеду, но уйти далеко за полночь);
• график 6/1;
• Естественно, никакой удаленки.
• Зарплатную вилку, конечно же, никто не скажет, но, так как работать будешь на 80% (80%, Карл!) больше, то даже х2 от текущей зарплаты того не стоит, так как через год-два такого темпа тебя, скорее всего, выбросят на обочину разбираться со своими ментальными проблемами, вроде выгорания.

Согласились бы на такие условия?
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🤯8🗿6🤔3
Как нужно себя вести на алгоритмическом собеседовании

Пошаговый план, чтобы решить любую задачу и получить заветный "Hire" 👍.

Здесь мы не будем обсуждать подготовку и предположим, что к алгоритмам ты уже готов(а). Если нет, то вот тебе ссылка на подробный план, как подготовиться.

Итак, как же действовать на собеседовании:

1️⃣ Нужно понять, в чём заключается проблема

• Прочитай вопрос (дважды! Да-да, потрать несколько дополнительных минут, но пойми задачу правильно).
• Возьми 1-2 примера и на них вслух воспроизведи проблему, а также то, что должно быть получено на выходе.
• Не стесняйся задавать уточняющие вопросы:
• Разбери возможные edge cases (крайние случаи).
• Разбери входные и выходные данные, их тип, что они могут в себе содержать, а также ограничения размеров (скорее всего, интервьюер скажет, что размер либо очень большой, либо небольшой, и тебе не стоит переживать на этот счёт. Уточнить всё равно стоит).

2️⃣ Как только мы разобрали, в чём собственно проблема, самое время предложить решение

• Начни с метода грубой силы (он же brute force или naive approach). Это когда ты предлагаешь самый простой вариант решения — обычно самый неоптимальный, но зато очевидный. Это необходимо: если ты не найдёшь решения лучше, у тебя уже будет хоть какой-то рабочий вариант. Помни, что написать плохое, но рабочее решение лучше, чем вообще ничего. Всё равно есть шанс получить хотя бы “weak hire” даже с самым naive решением.
• Оцени сложность по времени и памяти. На собеседованиях мы работаем с worst-case scenario (худшим сценарием).
• Ищи зацепки в описании задачи. Например, если массив отсортирован, нужно найти кратчайший путь, топ-К элементов и тому подобное. Это поможет понять, в каком направлении копать.
• Если же ты никак не можешь понять, как решить задачу, то примени бустеры - BHDCA (Boosters Help Developers Crack Algorithms):
Brute force optimizations - посмотри на своё наивное решение. Если там есть зацепки вроде вложенных циклов или повторяющихся действий, то это потенциальное место для оптимизации.
Hunt for properties - ищи математические или логические свойства. Ты как бы прищуриваешься и спрашиваешь себя: «А какое скрытое правило или закономерность здесь работают? Могу ли я сжульничать (в хорошем смысле) благодаря математике или логике?»
Decrease the difficulty - упрости задачу. Например: если нужно идти в 4 направлениях, упрости и сначала реши так, будто направление всего одно.
Cycle through the Catalog - мысленно пробегись по тому, какие структуры данных и алгоритмы ты учил(а).
Articulate your blocker - скажи интервьюеру, что ты застрял(а), объясняя, что именно не можешь найти. Рассуждай вслух. Это даст твоему интервьюеру возможность помочь.

3️⃣ Объясни интервьюеру решение полностью.

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

4️⃣ ОЧЕНЬ ВАЖНО: Когда решение презентовано, получи «зелёный свет» от интервьюера.

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

5️⃣ Пишем код

• Сначала пишем основную логику.
• После - helper functions.
• Если застрял(а), то остановись, возьми какой-нибудь пример и пройдись шаг за шагом по коду.

6️⃣ Проверяем решение

Как только код полностью написан, нам обязательно нужно его проверить:
• Идём сверху вниз, будто мы отладчик (debugger).
• Все каверзные куски кода проверяем особенно тщательно.
• Сначала проверяем на простых примерах, после чего усложняем.
• Проверяем edge cases, которые обсудили в самом начале.
• Чекпоинтимся с интервьюером, что его всё устраивает.

Вот и всё! Работа мечты почти в кармане 😉. Не забывай, что интервьюер на собеседовании для того, чтобы найти хорошего кандидата, а не завалить тебя. Если в компании токсичное интервью, ты уверен(а), что тебе будет комфортно там работать?
12🔥8👎2🫡1
Как мы помогли приютам для животных?

Несколько раз я проводил инициативу, в которой можно было отправить донат в приют и получить консультацию или мок-интервью взамен. Больше деталей про это тут: https://t.me/coderdoesntknow/206

Итого в приюты вы отправили 150 000 тенге, на которые бездомные собаки и кошки получили лечение, еду или другую помощь. 🙏

Спасибо каждому, кто помогал и участвовал в этом.

В следующий раз, я уверен, мы сможем собрать больше и улучшить еще хотя бы немного качество жизни наших братьев меньших 🐈‍⬛🐕
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥11👍5😎2