💻 Coding interviews in a nutshell
7.15K subscribers
24 photos
214 links
Разбор задач для собеседований, по одной каждую неделю.

У микрофона Виктор @vitkarpov. ex-Amazon, ex-Yandex
加入频道
В прошлый раз я писал про балансеры, которые помогают в горизонтальном масштабировании системы. Однако, не смотря на то, что инстансов приложений может быть много, всё равно остаются походы по сети и ограничения времени работы базы данных.

Хотелось бы иметь возможность минимизировать эти два фактора, особенно в приложениях с драконовскими требованиями к времени ответа.

На помощь приходит кеширование – https://vitkarpov.me/posts/cache/
💻 Coding interviews in a nutshell pinned «Happy Monday! 👋 https://vitkarpov.me/posts/load-balancers/»
Happy Monday! 👋

Продолжаем говорить про основы распределённых систем. На этой неделе коротко обсудим шардирование.
https://vitkarpov.me/posts/database-partitioning/
К нам в команду (Amazon Advertising, UK, Edinburgh) открыта вакансия — https://www.amazon.jobs/en/jobs/1282597/software-development-engineer-advertiser-insights-and-performance
Пишите в личку, если интересна релокация в солнечный Эдинбург — отвечу на вопросы. Если есть серьёзные намерения, могу провести мок-интервью и сделать рефер.
Happy Monday! 👋
На этой неделе разберём сериализацию и десериализацию дерева. Хорошая задача на рекурсию, и довольно популярная на собеседованиях. Я сам получал её один раз. Ещё и про сериализацию в целом можно поговорить.
https://vitkarpov.me/posts/serialize-and-deserialize-binary-tree/
💻 Coding interviews in a nutshell pinned «К нам в команду (Amazon Advertising, UK, Edinburgh) открыта вакансия — https://www.amazon.jobs/en/jobs/1282597/software-development-engineer-advertiser-insights-and-performance Пишите в личку, если интересна релокация в солнечный Эдинбург — отвечу на вопросы.…»
Happy Monday! 👋
Возьму перерыв на недельку в разборах задач, исписался. Накидайте в чатик хороших задач для разбора.
Happy Monday! 👋
Задача этой недели — расстановка N ферзей на шахматной доске. Классическая задача на backtracking.
https://vitkarpov.me/posts/n-queens/
Happy Monday! 👋
Продолжаем решать задачи, на этой неделе — «найти медиану в потоке чисел».
Любопытная задача на кучи с очень компактным, но необычным решением.
https://vitkarpov.me/posts/find-median-from-data-stream/
Forwarded from M🇺🇦
Если кто-то хочет на этот хайринг эвент Амазона, то киньте мне свой линкедин в личку, я форвардну рекрутеру

We're looking for exceptional folks like you to join our team! At first glance, I think your skill-sets are in line with a Software Development Engineering role we have here at Amazon within our Amazon Fulfillment Technologies team (https://www.youtube.com/watch?v=3bdRKaodLK8&feature=emb_title). We are conducting fully virtual interviews the week of Nov 30th - Dec 4th for SDE roles in Toronto, Canada (relocation is required).
Привет!
В пятницу 23 октября, в 17 по Москве, будет вебинар про собеседования с Олегом Громовым (Facebook, ex-Yandex, ex-Toptal). Подключайтесь, должно быть интересно и полезно 😊 https://www.crowdcast.io/e/10-tips-for-developer/register
Happy Monday! 👋
На этой неделе разбираемся с жадными алгоритмами. Напишем квадратное решение и перепишем за линию с помощью «жадинки».
https://vitkarpov.me/posts/container-with-most-water/
Как разработчику успешно пройти собеседования в FAANG

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

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

📝 Делайте резюме под каждую позицию. Упоминайте только релевантный опыт, а для позиций уровня senior и выше описывайте не только свои достижения в разработке, но и в организации командной работы и найме, достижении бизнес-целей.

Акцентируйте внимание интервьюера на проектах, в которых вам удалось блеснуть. У большинства ваших собеседников будет совсем немного времени, чтобы ознакомиться с резюме. Поэтому вы можете рассказать не только о самом последнем опыте, а о своих главных достижениях. Подавайте себя с выгодной стороны, но не врите.

👩‍💻 Подготовьте связный рассказ о себе и своём опыте. Он точно пригодится на поведенческих интервью, а сокращённая версия с примерами успешных проектов и вашими пожеланиями к новой работе - для вводного рассказа о себе на каждой секции. Репетируйте вслух и с диктофоном.

🦾 Отведите несколько месяцев на подготовку к алгоритмическим задачам. Прорешайте не меньше 30-50 задач на Leetcode по разным темам, найдите или придумайте обобщённый алгоритм решения задач и придерживайтесь его. Старайтесь начинать писать код только когда алгоритм решения задачи известен, включая edge-кейсы и его сложность.

📣 Говорите во время решения задач. То, как вы размышляете, не менее важно, чем то, насколько быстро и верно вы находите решение задачи. Ведите диалог с собеседующим, чтобы получать постоянную обратную связь. Если вы не уверены, уточните, что правильно поняли задачу.

⚙️ На system design интервью обозначьте общую архитектуру решения и постарайтесь углубиться в область, в которой вы разбираетесь лучше всего. Ведите себя как техлид, уточняющий требования у заказчика, и двигайтесь от общего к частному. Держите в голове план решения задачи и следите за временем.

🤝 Для позиций высокого уровня ваши софт-скиллы важнее, чем умение писать код. Прокачивайте умение работать в команде - обсуждать, спорить, договариваться. Учитесь презентовать и продавать свои идеи, быть услышанным, принимать чужую точку зрения. Развивайте эмпатию, не поддавайтесь эмоциям и учитесь ладить с другими и собой.

🇬🇧 Учите английский язык. Вашего уровня будет достаточно для прохождения собеседований примерно тогда, когда вы сможете понимать на слух большую часть выступлений с профильных конференций и сможете убедительно рассказать о своих проектах. Продолжайте учиться - выразительность и точность никогда не будет лишней, особенно если вы не носитель языка.

💰 Собеседуйтесь в несколько компаний и старайтесь получить несколько оферов. Это поможет торговаться (в пределах рынка и вилки зарплат на данной позиции) и чувствовать себя спокойнее. Будьте открыты к предложениям рекрутеров, держите их в курсе процесса и сообщайте о получении других оферов.

🤯 Будьте готовы к отказам и не принимайте их слишком лично. Несмотря на стремление объективно оценить каждого кандидата, иногда процесс даёт сбой - и вам попадается собеседующий не в настроении или неудачная задача. Крупные компании придерживаются правила "лучше не нанять хорошего разработчика, чем нанять плохого", поэтому иногда отказывают даже лучшим.

Ну и напоследок: не рвитесь исключительно в FAANG только ради строчки в резюме. Лучше оказаться на своём месте в небольшой компании, делать что-то важное, развиваться и иметь слово в принятии решений, чем быть винтиком в большом корпоративном механизме. Удачи!
Happy Halloween! 🎃 Правда же это страшный кошмар, да? 😊
Happy Monday! 👋
Задача этой недели на динамическое программирование. По-моему, является классическим примером введения в такой тип задач.
https://vitkarpov.me/posts/unique-paths/
Happy Monday! 👋
Продолжаем решать задачи на динамическое программирование, на этой неделе разбираем двумерную дпшечку.
https://vitkarpov.me/posts/number-of-dice-rolls-with-target-sum/
Постримили за собеседования, алгоритмы в работе, Амазон, Яндекс и жизнь. По-моему, вышло любопытно — https://www.youtube.com/watch?v=bw76xJlAAxo
Завтра, в субботу в 12 по Москве, Паша Франков будет рассказывать про оформление резюме для тех, кто хочет войти в IT. Полагаю так же будет любопытно всем, кто просто давно не обновлял своё резюме и не искал новую работу. Должно быть интересно!