# Asshole test
Some years back I applied to join IBM's grad scheme, there was a
peculiar stage to the process I've not seen elsewhere. It was during the
onsite day, where a batch of 20 or so applicants were put through
various tests in an IBM office. They called it the "group test"; around 8
of us were led to a room and asked to solve a puzzle together. Each of
us was given an information pack, there was a white board, and a timer
ticking down from 60 minutes. At first there was silence as we looked at
our packs, then the first voice: "Let's pool our information", someone
stands up by the whiteboard, grasping a marker. Silence, it's not clear
how this information should be parsed. One person starts reading theirs
out word for word. This is not going to scale. Someone interrupts.
Before long the whiteboard leader has been deposed and another is
wielding the marker. Then another fights for control. The 60 minutes
has run out, the puzzle is unsolved. Confused and drained we head off to
the next test.
At the end of the day the group is split into two rooms, my room is
given the good news and I go on to join the grad scheme. Six months
later I am shadowing a colleague who is running the "group test". I
asked him if he'd ever seen a group complete the test? "Oh, it's not
about that, this is an asshole test. You see who turns into an asshole
under pressure and they don't make it to the next round".
https://johnpublic.mataroa.blog/blog/the-asshole-test/e
Some years back I applied to join IBM's grad scheme, there was a
peculiar stage to the process I've not seen elsewhere. It was during the
onsite day, where a batch of 20 or so applicants were put through
various tests in an IBM office. They called it the "group test"; around 8
of us were led to a room and asked to solve a puzzle together. Each of
us was given an information pack, there was a white board, and a timer
ticking down from 60 minutes. At first there was silence as we looked at
our packs, then the first voice: "Let's pool our information", someone
stands up by the whiteboard, grasping a marker. Silence, it's not clear
how this information should be parsed. One person starts reading theirs
out word for word. This is not going to scale. Someone interrupts.
Before long the whiteboard leader has been deposed and another is
wielding the marker. Then another fights for control. The 60 minutes
has run out, the puzzle is unsolved. Confused and drained we head off to
the next test.
At the end of the day the group is split into two rooms, my room is
given the good news and I go on to join the grad scheme. Six months
later I am shadowing a colleague who is running the "group test". I
asked him if he'd ever seen a group complete the test? "Oh, it's not
about that, this is an asshole test. You see who turns into an asshole
under pressure and they don't make it to the next round".
https://johnpublic.mataroa.blog/blog/the-asshole-test/e
👍3🔥1
#Interviews #Amazon
.
I just had a talk with a hiring Bar Raiser about an interesting case happened to me at a de-brief early this week.
We were hiring a guy, who have consistently showing gaps in one of the principles. He was "behaving wrong" in past engagements with his teammates, and also showed the same behavioral pattern in the interview.
.
After the loop was finished, I was certain we would reject him - for not learning on mistakes. In a de-brief though, the team decided to hire him, believing he would be a good fit for Amazon.
.
When I discussed this case with the Bar Raiser, he mentioned that we quite often (if not always), "hire with a risk". However, we always evaluate how big the risk is, if there are overweiging stengths, and if we can come up with an effective and realistic short-period mitigation plan.
.
Anyways, my point is keep doing well at the interviews and do not under-estimate Behavioral part of the interview. If you messed up with one LP, the others can save you.
.
I just had a talk with a hiring Bar Raiser about an interesting case happened to me at a de-brief early this week.
We were hiring a guy, who have consistently showing gaps in one of the principles. He was "behaving wrong" in past engagements with his teammates, and also showed the same behavioral pattern in the interview.
.
After the loop was finished, I was certain we would reject him - for not learning on mistakes. In a de-brief though, the team decided to hire him, believing he would be a good fit for Amazon.
.
When I discussed this case with the Bar Raiser, he mentioned that we quite often (if not always), "hire with a risk". However, we always evaluate how big the risk is, if there are overweiging stengths, and if we can come up with an effective and realistic short-period mitigation plan.
.
Anyways, my point is keep doing well at the interviews and do not under-estimate Behavioral part of the interview. If you messed up with one LP, the others can save you.
👍4
Forwarded from Software Engineer Updates
YouTube
Senior Engineer Breaks Down Systems Design Interview
In this video, Alex Golec, a Software Engineering Manager at Reddit and previously a Software Engineer at Google, uses his extensive experience to break down a mock Systems Design Interview.
This is the first of many videos in Inspect Element, an interviewing.io…
This is the first of many videos in Inspect Element, an interviewing.io…
Forwarded from Bohdan Shtepan 🇺🇦
Что быстро пришло в голову:
The Making of a Manager: What to Do When Everyone Looks to You.
Легкое чтиво и, по сути, автобиография одного из первых сотрудников Фейсбука, которая выросла с рядового дизайнера-интерна в топ-менеджеры. Эту книжку часто рекомендуют для подготовки к бихейву. Но здесь нет никаких рецептов или откровений. Даже конфликтные ситуации покрыты весьма поверхностно. Но, тем не менее, книжка хорошая.
Software Engineering at Google: Lessons Learned from Programming Over Time.
Прочел эту книжку по рекомендации одного из участников этого сообщества. Книжка очень хорошо описывает множество разных процессов в Гугле, но актуально и для любой большой технологической компании. После более 5 лет работы в аутсорсе/аутстафе и прочтения этой книжки я решил для себя, что назад в аутсорс - ни ногой.
Own Your Tech Career: Soft Skills for Technologists.
Легкая книжка с простыми истинами о том, как рости как специалист в своей сфере. Наверное, для многих эта книжка не будет глубоким откровением, но поможет систематизировать определенные навыки и упростит отношение ко многим вещам.
The Making of a Manager: What to Do When Everyone Looks to You.
Легкое чтиво и, по сути, автобиография одного из первых сотрудников Фейсбука, которая выросла с рядового дизайнера-интерна в топ-менеджеры. Эту книжку часто рекомендуют для подготовки к бихейву. Но здесь нет никаких рецептов или откровений. Даже конфликтные ситуации покрыты весьма поверхностно. Но, тем не менее, книжка хорошая.
Software Engineering at Google: Lessons Learned from Programming Over Time.
Прочел эту книжку по рекомендации одного из участников этого сообщества. Книжка очень хорошо описывает множество разных процессов в Гугле, но актуально и для любой большой технологической компании. После более 5 лет работы в аутсорсе/аутстафе и прочтения этой книжки я решил для себя, что назад в аутсорс - ни ногой.
Own Your Tech Career: Soft Skills for Technologists.
Легкая книжка с простыми истинами о том, как рости как специалист в своей сфере. Наверное, для многих эта книжка не будет глубоким откровением, но поможет систематизировать определенные навыки и упростит отношение ко многим вещам.
❤3
Forwarded from Nurbek Ismagulov
Теоретическая часть:
Подборки:
Awesome Competitive Programming: https://codeforces.com/blog/entry/23054
Coding Interview University: https://github.com/jwasham/coding-interview-university
Ресурс с большим кол-вом инфы по Computer Science на английском: https://teachyourselfcs.com
Книги:
Общая теория:
1) Algorithms (4th Edition) от Robert Sedgewick
2) The Algorithm Design Manual от Steven S. Skiena
3) Guide to Competitive Programming от Antti Laaksonen
С фокусом на подготовке к собеседованиям:
1) Cracking the Coding Interview от Gayle Laakmann McDowell
2) Elements of programming interviews in Java от Andan Aziz
Очень удобный сайт для подбора книг https://anvaka.github.io/greview/
Ресурсы для практики решения задачек:
https://leetcode.com (Большой набор задач с собеседований)
https://firecode.io (Очень заходит для начинающих, но особо не развивается)
https://hackerrank.com (Описание задач больше похоже на олимпиадное программирование)
https://codeforces.com (Олимпиадное программирование как оно есть)
https://codingcompetitions.withgoogle.com (Соревнования проводимые Google)
Подборка задач от hackerrank для подготовки к собеседованиям: https://www.hackerrank.com/interview/interview-preparation-kit
Курсы по алгоритмам на русском:
Очень короткий курс по структурам данных: https://stepik.org/course/1547
Курс по алгоритмам покрывающий основные темы: https://stepik.org/course/217
Курс по динамическому программирования для начинающих: https://www.youtube.com/watch?v=AawQnuYSY4Y&list=PLUfHxBkkFMScK6mOOWp5s6LgbzmtfwmYQ
Алгоритмическое программирование Очно-заочный курс Петра Калинина: https://algoprog.ru
Математика для олимпиад по программированию: https://stepik.org/course/4603
Курсы по алгоритмам на английском:
Курс от ИТМО: https://courses.edx.org/courses/course-v1:ITMOx+I2CPx+1T2018/course/
Курс от СПБГУ: https://www.coursera.org/learn/competitive-programming-core-skills
Статья на русском о подготовке и прохождении собеседования в гугл и фейсбук: https://tproger.ru/articles/work-in-google/
Leetcode Patterns: https://medium.com/leetcode-patterns
LeetCode course: https://github.com/sarthfrey/leetcode-course
Dynamic Programming Patterns: https://leetcode.com/discuss/general-discussion/458695/dynamic-programming-patterns
Must do Dynamic programming Problems: https://leetcode.com/discuss/general-discussion/1050391/must-do-dynamic-programming-problems-category-wise
Большая подборка материалов на все темы связанные с интервью https://docs.google.com/document/d/1VNoEUzBtyCw0fDw0X_bvuhmCwz1qhNjETPJc5VRZqm8/
System Design:
1) The System Design Primer https://github.com/donnemartin/system-design-primer
2) Grokking the System Design Interview https://www.educative.io/collection/5668639101419520/5649050225344512
3) Видео по подготовке к System Design Interview https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ/featured
Machine Learning Systems Design:
https://github.com/chiphuyen/machine-learning-systems-design
Статьи по алгоритмам:
На русском:
DSU: https://habr.com/ru/post/104772/
Topological sort: https://habr.com/ru/post/100953/
Rabin Karp: https://e-maxx.ru/algo/rabin_karp
На английском:
DP:
Презентация от Stanford: http://web.stanford.edu/class/cs97si/04-dynamic-programming.pdf
Подборки:
Awesome Competitive Programming: https://codeforces.com/blog/entry/23054
Coding Interview University: https://github.com/jwasham/coding-interview-university
Ресурс с большим кол-вом инфы по Computer Science на английском: https://teachyourselfcs.com
Книги:
Общая теория:
1) Algorithms (4th Edition) от Robert Sedgewick
2) The Algorithm Design Manual от Steven S. Skiena
3) Guide to Competitive Programming от Antti Laaksonen
С фокусом на подготовке к собеседованиям:
1) Cracking the Coding Interview от Gayle Laakmann McDowell
2) Elements of programming interviews in Java от Andan Aziz
Очень удобный сайт для подбора книг https://anvaka.github.io/greview/
Ресурсы для практики решения задачек:
https://leetcode.com (Большой набор задач с собеседований)
https://firecode.io (Очень заходит для начинающих, но особо не развивается)
https://hackerrank.com (Описание задач больше похоже на олимпиадное программирование)
https://codeforces.com (Олимпиадное программирование как оно есть)
https://codingcompetitions.withgoogle.com (Соревнования проводимые Google)
Подборка задач от hackerrank для подготовки к собеседованиям: https://www.hackerrank.com/interview/interview-preparation-kit
Курсы по алгоритмам на русском:
Очень короткий курс по структурам данных: https://stepik.org/course/1547
Курс по алгоритмам покрывающий основные темы: https://stepik.org/course/217
Курс по динамическому программирования для начинающих: https://www.youtube.com/watch?v=AawQnuYSY4Y&list=PLUfHxBkkFMScK6mOOWp5s6LgbzmtfwmYQ
Алгоритмическое программирование Очно-заочный курс Петра Калинина: https://algoprog.ru
Математика для олимпиад по программированию: https://stepik.org/course/4603
Курсы по алгоритмам на английском:
Курс от ИТМО: https://courses.edx.org/courses/course-v1:ITMOx+I2CPx+1T2018/course/
Курс от СПБГУ: https://www.coursera.org/learn/competitive-programming-core-skills
Статья на русском о подготовке и прохождении собеседования в гугл и фейсбук: https://tproger.ru/articles/work-in-google/
Leetcode Patterns: https://medium.com/leetcode-patterns
LeetCode course: https://github.com/sarthfrey/leetcode-course
Dynamic Programming Patterns: https://leetcode.com/discuss/general-discussion/458695/dynamic-programming-patterns
Must do Dynamic programming Problems: https://leetcode.com/discuss/general-discussion/1050391/must-do-dynamic-programming-problems-category-wise
Большая подборка материалов на все темы связанные с интервью https://docs.google.com/document/d/1VNoEUzBtyCw0fDw0X_bvuhmCwz1qhNjETPJc5VRZqm8/
System Design:
1) The System Design Primer https://github.com/donnemartin/system-design-primer
2) Grokking the System Design Interview https://www.educative.io/collection/5668639101419520/5649050225344512
3) Видео по подготовке к System Design Interview https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ/featured
Machine Learning Systems Design:
https://github.com/chiphuyen/machine-learning-systems-design
Статьи по алгоритмам:
На русском:
DSU: https://habr.com/ru/post/104772/
Topological sort: https://habr.com/ru/post/100953/
Rabin Karp: https://e-maxx.ru/algo/rabin_karp
На английском:
DP:
Презентация от Stanford: http://web.stanford.edu/class/cs97si/04-dynamic-programming.pdf
Codeforces
An awesome list for competitive programming!
This is a project I started from late January 2016.
🔥6
Forwarded from Software Engineer Updates
Hiring Site Reliability Engineers
https://www.usenix.org/system/files/login/articles/login_june_07_jones.pdf
https://www.usenix.org/system/files/login/articles/login_june_07_jones.pdf
#systems #design #patterns
https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/
https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/
Docs
Architecture styles - Azure Architecture Center
Learn about architecture styles for cloud applications, including descriptions, recommendations, best practices, and recommended deployment with Azure services.
👍5
Forwarded from Software Engineer Updates
YouTube
TDD for those who don't need it - GopherCon SG 2017
Speaker: Chew Choon Keat
For the longest time, I didn’t write tests. Writing tests is a chore, a waste of time, and doesn’t GTD. The snobbery of the test community only turned me off even more; discouraging good developers from trying TDD. Now, I write tests…
For the longest time, I didn’t write tests. Writing tests is a chore, a waste of time, and doesn’t GTD. The snobbery of the test community only turned me off even more; discouraging good developers from trying TDD. Now, I write tests…
Очень крутое и компактное видео от Principal Engineer at Amazon. Интересно, что я в таком режиме живу уже какое то время. Иногда даже кажется, что работать стал меньше, но продуктивности, или как говорят в Амазоне, импакта больше.
Хотя, и нарисовалась одна проблема, с меня теперь менеджер мой никак не слезет: даёт все больше и больше крупных задачек. Интересно че хочет? Может быть думает где мой предел :))
https://youtu.be/c3pzcV9yi24
Хотя, и нарисовалась одна проблема, с меня теперь менеджер мой никак не слезет: даёт все больше и больше крупных задачек. Интересно че хочет? Может быть думает где мой предел :))
https://youtu.be/c3pzcV9yi24
YouTube
How I Have Time For Everything (From A Principal At Amazon)
Here's exactly how I am able to juggle all the things that are going on in my life. The ideas are relatively simple and practical, but you have to implement them in your life for them to work.
NEWSLETTER - Sign up to my free newsletter: https://alifeeng…
NEWSLETTER - Sign up to my free newsletter: https://alifeeng…
👍2🔥1
#interview #coding
В различных пабликах вижу вопросы типа: «когда мне дали задачку Х, я сразу решил задачку оптимальным способом. Что я мог сделать иначе/лучше?»
Во время интервью вы должны показать, что вы не просто умеете решать задачки, знаете алгоритмы и структуры данных, а что вы умеете применять правильные решения в нужных ситуациях, и без over-engineering.
Поэтому, прежде чем писать решение задачки, даже если оно простое, очень важно собрать информацию о задаче.
Часто задачку дают, не дав всю информацию до конца, и кандидат либо уточнит заранее, либо сделает собственные допущения - то есть, сделает то что надумал у себя а голове, а не то, что просит его собеседник. Для Миддлов и выше это красный флаг, если человек рвётся в бой.
Поэтому прежде чем предлагать решение, удостоверься, что понимаешь что нужно сделать. В идеале если сперва проговариваешь решение, прежде чем бросаешься писать код, и только потом пишешь код. Прежде чем писать код, так же желательно поговорить тест кейсы, чтобы удостовериться что решение покрывают крайние случаи, и уточнить что предлагаемая сложность допустима. После всех этапов выше, написание кода - дело техники. Может занять минут 5-10.
На интервью важно показать, что ты не просто решаешь задачки, а показать как ты решаешь технические проблемы: как собираешь требования, как проясняешь неясности, как дизайнишь решение, и как удостоверяешься, что решение точно работает. И только потом пишешь код.
Все это можно перевести на язык Лидерских принципов в Амазоне: Are right a lot, Deep Dive, Think Big, Earn trust, Customer Obsession, and etc.
Фреймворк по которому я работаю:
1. Сбор информации: уточняющиеся вопросы о задаче, о том где и как ее применяют, об ограничениях, размерах, и типах данных (int, star, negative positive, uppercase lowercase, punctuation, etc)
2. Поняв задачу в деталях, я предлагаю несколько тест кейсов, чтобы удостовериться наверняка, что я понял задачу точно. Я покрываю такие вопросы как какие данные приходят на вход и какие на выход, то есть как устроен API. В этом есть несколько плюсов: ты даешь возможность собеседнику подсказать тебе если ты что то недопонял и что ты ты точно понимаешь и осознаешь крайние случаи
3. Поняв задачу, включая тест кейсы, предлагаешь решения и их сложности, и проверяешь у собеседника, что это вписывается в его ожидания. Тем самым, показав свою зрелость, ты даёшь собеседнику возможность повысить тебе сложность раньше, и тем самым повысить свои шансы на то, что он тебя уже будет планировать на Bar Rasing level
4. Только после того как ты поймёшь, что ты понял задачу, написал тест кейсы, проговорил это все с интервьюером, и он дал тебе зелёный свет писать код, то только тогда можно писать код.
5. Следующий пункт очень важен: написав решение задачки, ты используешь выше-приведённые тест кейсы, чтобы прогнать их через своё решение, где шаг за шагом ты объясняешь значение каждой переменной и как они меняются. Это даёт сигнал собеседнику, что ты умеешь проверять свои решения и исправлять ошибки если таковы имеются.
Рекомендую решать литкод задачки, используя этапы выше, чтобы натренировать этот навык, и на самом интервью у вас все будет куда более естественно и гладко.
Удачи на интервью!
Вопросы пишите в комментариях.
В различных пабликах вижу вопросы типа: «когда мне дали задачку Х, я сразу решил задачку оптимальным способом. Что я мог сделать иначе/лучше?»
Во время интервью вы должны показать, что вы не просто умеете решать задачки, знаете алгоритмы и структуры данных, а что вы умеете применять правильные решения в нужных ситуациях, и без over-engineering.
Поэтому, прежде чем писать решение задачки, даже если оно простое, очень важно собрать информацию о задаче.
Часто задачку дают, не дав всю информацию до конца, и кандидат либо уточнит заранее, либо сделает собственные допущения - то есть, сделает то что надумал у себя а голове, а не то, что просит его собеседник. Для Миддлов и выше это красный флаг, если человек рвётся в бой.
Поэтому прежде чем предлагать решение, удостоверься, что понимаешь что нужно сделать. В идеале если сперва проговариваешь решение, прежде чем бросаешься писать код, и только потом пишешь код. Прежде чем писать код, так же желательно поговорить тест кейсы, чтобы удостовериться что решение покрывают крайние случаи, и уточнить что предлагаемая сложность допустима. После всех этапов выше, написание кода - дело техники. Может занять минут 5-10.
На интервью важно показать, что ты не просто решаешь задачки, а показать как ты решаешь технические проблемы: как собираешь требования, как проясняешь неясности, как дизайнишь решение, и как удостоверяешься, что решение точно работает. И только потом пишешь код.
Все это можно перевести на язык Лидерских принципов в Амазоне: Are right a lot, Deep Dive, Think Big, Earn trust, Customer Obsession, and etc.
Фреймворк по которому я работаю:
1. Сбор информации: уточняющиеся вопросы о задаче, о том где и как ее применяют, об ограничениях, размерах, и типах данных (int, star, negative positive, uppercase lowercase, punctuation, etc)
2. Поняв задачу в деталях, я предлагаю несколько тест кейсов, чтобы удостовериться наверняка, что я понял задачу точно. Я покрываю такие вопросы как какие данные приходят на вход и какие на выход, то есть как устроен API. В этом есть несколько плюсов: ты даешь возможность собеседнику подсказать тебе если ты что то недопонял и что ты ты точно понимаешь и осознаешь крайние случаи
3. Поняв задачу, включая тест кейсы, предлагаешь решения и их сложности, и проверяешь у собеседника, что это вписывается в его ожидания. Тем самым, показав свою зрелость, ты даёшь собеседнику возможность повысить тебе сложность раньше, и тем самым повысить свои шансы на то, что он тебя уже будет планировать на Bar Rasing level
4. Только после того как ты поймёшь, что ты понял задачу, написал тест кейсы, проговорил это все с интервьюером, и он дал тебе зелёный свет писать код, то только тогда можно писать код.
5. Следующий пункт очень важен: написав решение задачки, ты используешь выше-приведённые тест кейсы, чтобы прогнать их через своё решение, где шаг за шагом ты объясняешь значение каждой переменной и как они меняются. Это даёт сигнал собеседнику, что ты умеешь проверять свои решения и исправлять ошибки если таковы имеются.
Рекомендую решать литкод задачки, используя этапы выше, чтобы натренировать этот навык, и на самом интервью у вас все будет куда более естественно и гладко.
Удачи на интервью!
Вопросы пишите в комментариях.
👍17❤2