Роксана Петрюк

Роксана Петрюк

Темы
Неделя
Nov 4, 2019 → Nov 11, 2019

Архив недели @Boui2837

Понедельник


Привет! Я @Boui2837. Я работаю в @facebook в Дублине, Ирландия full stack engineer, до этого 4 года в @AWS. Я из Киева, переехала 5 лет назад. Я люблю фронтенд, бекенд, функциональное программирование и людей. Спрашивайте побольше вопросов, я с удовольствием отвечу)

Ну и если кому-то интересно я люблю делать костюмы, косплеить и fx makeup и, вероятно не сюрприз, у меня есть Инстаграм
notion image
notion image
notion image

Посмотрев что вас интересует я предлагаю такой план: 1 - Ефективное взаимодействие с людьми (или как понять коллег) 2 - Когнитивные искажения и конфликты на работе 3 - GraphQL и REST, зачем это если и так работает 4 - Интервью в Google, Facebook и Amazon

Вторник


-- тред об общении и коллегах Почему некоторые компании работают еффективно, а в некоторых компаниях удивляет как они хоть как-то работают? Как говорил один Достоевский: "Все счастливые семьи одинаковы, все не счастливые семьи несчастны по-своему"

В далёком 200x году в Америке провели исследование, его цель - понять что делает компанию "счастливой". Исследование показало что есть закономерности - превалирующие паттерны поведения людей, процессы, слова и т.д. и они очень коррелируют с еффективностью бизнеса

На базе этого исследования была создана концепция tribal leadership. Концепт определяет пять стабильных "уровней", на которых оперировать группы людей (tribes). Цель - осознать где ты есть и применяя рекомендации подниматься ступень за ступенью.

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

Вы думаете: - мой босс завтавил меня бросить проект, это так broken - мой менеджер закрыл проект, все усилия насмарку - хорошо, что мне быстро сказали о новых приоритетах, теперь я смогу применить усилия в проекте, который нужен Это называется лингвистический фильтр

Человек подумавший первую или вторую фразу будет грустным и фрустрированным, подумавший третью фразу будет настроен на решение задачи at hand. Задача организации создать культуру в которой подумать третью фразу естественнее чем первые две

Извинитн-с, это из Карениной, Толстой конечно

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

L1 (Life sucks), 2% всех организаций в этой категории. Moto: Жизнь не справедлива вцелом. Language: Тут люди много матеряться, все сосет, за"бало и все козлы. Behaviour: неприятие всего и вся, все инициативы в штыки Connections: абсолютный минимум связей, нельзя никому доверять

L1 встречается крайне редко, в IT почти никогда. На этом уровне люди могут воровать вещи с работы, врать, конфликты не иссякают, полный хоровод всего плохого постоянный.

L2 (My Life sucks), 25% M: Именно моя жизнь ужасна Language: они, опять, лажа, ну почему всегда я Behaviour: Апатия, рыцарь печального образа Connections: максимум диады, люди дружат против других

Часто люди на этом уровне испытывают бессилие что-то изменить, это убивают их мотивацию, они не хотят участвовать в инициативах, не генерируют идей. Часто начинающие программисты сталкиваются с этим, либо seniors которые верят что ничего не изменить НИКОГДА.

L3 (I am great, and you're not) - 48% M: одинокий воин L: много Я, я пошел, я сделал, я написал B: звездность, один я тут работаю mode C: Dominantion diads. Встречается 1:1 с людьми и раздает команды, очень плохая реакция на критику или советы
notion image

Одинокий воин обычно ОЧЕНЬ одаренный, умный, быстрый и четкий разработчик/ца. Две проблемы: bus factor всегда 1 и если в команде две+ звёзды - почти всегда есть конфликты. Ретроспектива = парад обвинений, дизайн сессия на повышенных тонах, code review друг другу не отправляют,пр.

Многие организации buy this все равно, потому что им хватит еффективности звёзды чтобы решать их задачи. Звёзды имеют тенденцию выгорать, к сожалению, и страдать от того, что их окружают не звёзды. Если ничего не делать звезда уйдет, а их легаси останется без контекста.

L4 (We are great), 22% Это уровень на котором в организации начинают говорить о company values L: мы(наша команда), наша цель, они (другие команды) B: критика и feedback принимаются и желательны, никого не перебивают на дизайн сессиях, новые люди перенимают культуру организации

Интересное происходит со связями. Люди в команде все на одном уровне, много общаются, часто ходят вместе на обед, все знают о том какие задачи сейчас решает кто-то в команде. Чаще всего люди принимают решения втроем (не вдвоем как L3). Есть ощущение общности, сильная командность

Одно ограничение L4, полное название этого уровня такое: We are great and they are not L4 испытывает tribal pride - это означает что другие команды не воспринимаются как часть большой команды, не получают нужный контекст и т.п. Иногда это big problem

L5 (Life is great) - 2% M: Высаживаемся на Марсе Это момент поиска голубых океанов, у орг. есть МИССИЯ и часто свой Илон. L: общее благо, цель, назначение. B: люди создают кросс-командные связи, никакой изоляции, все немного хаотично, все знают цель, но не всегда есть четкий план
notion image

Тут все и концепт и работа, это работа на будущее человечества, неизвестных больше чем известных, много теорий. Это когда ты не exceed expectations, но redefine expectations. Это компания Big bets, все всем помогают потому что одна команда не потянет то, что надо сделать

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

Ещё немного о том, какого девелопера вы увидите на каждом уровне: L1 и L2 - pre-expert или tactical experts L3 - achievers (главное хорошо грести, пофиг куда) L4 - business catalysts, strategists L5 - co-creators, synergists Решила не переводить, надеюсь понятно

Чисто по приколу можете оценить себя, свою организацию и своих коллег по критериям. Какой вы уровень? Жаль, что все не так просто, конечно. Нельзя поставить на ком-то крест потому что он был вчера грустный. Применяйте этот фреймворк нежно. Люди могут менять уровни довольно легко.

Как перейти с L1 к L2 Путешествуйте, посмотрите мир, не все хотять вас убить, открывайтесь людям, заводите знакомства, присоединяйтесь к каким-то инициативам, программам обмена, internships. Go were action is and join it.

L2 к L3 Попросите больше feedback, что думают другие люди о вас и вашей работе? Kill anxiety. Найдите что-то небольшое и сделайте так чтобы оно заработало. IMPACT! Сформируйте свою диаду, найдите кого-то в команде и общайтесь. Ваша цель - апатии нет - я самый крутой/ая - ДА

L3 к L4 Ключевое - делитесь всей информацией. Где-то что-то важное услышали, прочитали, добавили метод - в групповой чат, в пост, в имейл. Растите свой bus factor. Нет доминации, даёшь дискуссию - создавайте триады - обсуждайте важные решения не 1:1, а втроем миннимум

L3 к L4 Команда - стройте ее и инвестируйте в нее. Это позволит вам наконец уйти в отпуск на 2 недели. Ваши цели должны быть больше чем то, что может сделать идеальный программист за 5 дней. Будьте амбициозны и не пытайтесь все сделать сами, тут инвестиция в команду и окупится.

L4 к L5 Найдите ваш Noble Cause. Определитесь с вашими Core Values. Постройте свой Vision. А потом не давайте мысли о том, что 'но это же не в нашем коде' остановить вас. Тут вы будете говорить с бизнес-ребятами, вы будете писать дизайн доки, вы будете на митингах.

L5 к L4 Когда решения будут приняты, все rodmaps всех команд примут ваши изменения, пыль осядет можно будет снова работать как обычно. Но вы теперь точно will make world a better place. Это прекрасно и будет мотивировать всех вокруг тоже.

Организации инвестируют в core values и тренинги по коммуникации ибо это помогает быть L4. Если ваша не инвестирует - вам может повезти и все и так норм, а может и не повезти. Управление в этом смысле определяет как будет в организации, будет ли культура продуктивной

Причем тут коллеги? Слушайте как говорят ваши коллеги, помогайте им если у них L2 день. Ловите себя на L3 поведении, оно того не стоит. Ваш лучший друг feedback - есть что сказать? - не откладывайте, человек может не осознавать что его поведение деструктивно.

Вот так. Потому теперь я могу любить людей - я их лучше понимаю. На этом по tribal leadership все. Ещё раз книга вот: amzn.to/33hWJBB Вопросы, примеры приветствуются. Надеюсь это было полезно. Всегда в зале есть 'книга была лучше' люди, потому... 🤷
notion image

И да, это не корпоративная шиза, честно. Оно работает, мне много раз помогало переосмыслить ситуацию. Иногда я понимала, что я L3 и часть проблемы, иногда что я L2 и надо что-то делать, пару раз в Facebook мы уже делали L5 investigations и проекты.

🔥Тред (Роксана Петрюк)

Среда


-- тред про graphql -- До того как я начала работать в Фейсбуке о graphql я слышала, но не использовала. В моем проекте мы используем много graphql с Relay. Тут будет: graphql и Rest, что graphql даёт, что graphql не дает, как влияет на процесс + Relay

Идея graphql Представим что у нас есть user profile. Это гигантская сущность - тут все - friends, subscription, relationship status. Эта сущность логическая - части хранятся в разных хранилищах, где-то кеш, что-то обновляется часто, что-то transient. Итого, допустим ~500 fields

У нас есть UI. UI компоненты используют малую часть полей user profile. Например - name и photo url, location и privacy settings, etc. Вопрос - Как компонентам получить нужные данные из user profile? Также - как избежать передачи полей, которые не нужны ни одному из компонентов?

Можно забить на overfetch - брать все и распределять поля на уровне компонентов. Это ужасно, не делайте так. Можно писать rest endpoint для каждого компонента отдельно, но тогда вы получите 400 endpoints со всевозможными комбинациями полей user profile, maintainability 0

Но мы хитрые! Мы напишем REST endpoint с параметрами, что-то вроде fields-list. Это будет один endpoint, за ним мы спрячем resolve, acess control, etc всеx нужных полей. Компонент будет запрашивать свой fields-list, maintainbility растет. Поздравляю, мы почти изобрели graphql.

Теперь мы не копируем resolve код для одной сущности на сервере много раз. Это хорошо. Но наши компоненты всё ещё не знают когда им надо обновляться если поле X поменялось (один из field-list запросов вернул обновленные данные). Нашим UI компонентам не хватает важнейшего свойства

UI компоненты должны декларативно определить свои data requirements, что из user profile они рендерят или используют. В graphql это называется Query. Сервер определяет что вообще он может дать - (f.i. user profile) - это GraphQL Object.

Итого на сервере единожды описываем как доставать ВСЕ. Немного упростив получаем - schema и resolvers на Graph QL server-е. Schema состоит из Query(все r запросы), Mutation(все cud запросы), и Subscription деклараций. Все graphql objects(req/resp) описываются также в схеме.

На UI компоненты обернуты в Queries. В разных фреймворках это выглядит по-разному. В Relay это либо хук либо компонент- контейнер. Дальше больше.

Все типизировано сразу и полностью. Нельзя использовать на UI поле котрого нет, компиляция упадет. Что это даёт? Возможность работать в полностью независимых командах в моно репозитории, без страха кого-то поломать. Это важный момент - это еnabling growth.

Декларативный подход даёт одно сверхпреимущество -- optimization из коробки -- дедупликация data requirements ui компонентов, UI кеш, оптимальный re-fetch, re-render on data update, data requirement locality, computable fields. Это все Relay.

Что такое GraphQL? Это только query language спецификация. GraphQL server имплементация может быть на любом языке. GraphQL server resolvers и server context содержат всю магию auth. Тут ничего не меняется кардинально - токены, сессии, roles, итд

Что GraphQL вам не даст? - спокойную и лёгкую миграцию из/в REST - easy hiring, все таки learning curve есть - opensource предпочитает REST, потому меньше опций по имплементациям - Dynamic shemas это хак и будет работать так себе, потому если типы какие-то динамичные - 0 benefit

Четверг


Часто люди пробующие GraphQL ошибаются так: - плохой изначальный schema design - продолжают думать об endpoints, а не о objects - не хорошая организация релизов - graphql server и client должны всегда быть on a same page (это сложно) Вот тут bit.ly/2WVieWv подробнее

Зачем? Чтобы забыть о каких-то там body/path параметрах, data updates handling - фреймворк все сделает сам Надо что-то зарендерить? Не надо трогать сервер - просто добавляешь нужное поле в Query компонента. Надо как-то хитро что-то вычитать из базы или кеша - код пишешь один раз

На этом по graphql у меня все. Завтра отвечу на оставшиеся вопросы! Спасибо большое за внимание и прекрасные вопросы. Традиционно - лучший туториал хоть и не книга bit.ly/2NrLbX7 Всем спасибо ! И если хотите -
notion image

🔥Тред (Роксана Петрюк)
-- тред о конфликтах (на работе) -- GraphQL это интересно, но ничто в программировании не сравнится с чувством когда кто-то не делает ревью и тормозит push/land твоего кода. Тут поговорим о том как злиться меньше, как адекватно реагировать и вести диалог в продуктивном ключе.

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

Зачем нужно это все нашему мозгу? Мозг ищет путь малейшего сопротивления, бережет енергию. Думать сознательно и последовательно - много енергии Предустановленный натренированный эволюцией или окружением путь - мало енергии. Мозг ЛЮБИТ шорткаты.

Шорткаты = когнитивные искажения, они же cognitive biases. Их великое множество и мы все им подвержены, выхода нет. Описывать это все никакого твиттера не хватит, но вот вам уже готовая статья: bit.ly/36LF2wj

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

Идея с тяжестью такая - конфликт имеет тенденцию 'назревать'. Время, которое проходит от первопричины конфликта до разговора о том, что было бы хорошо так не делать - критический фактор. Вот книга, а я приведу примеры далее: amzn.to/2qw2MUD

Шерил очень громко печатает во время встреч. Марк видит в этом неуважение к присутствующим. Плохо: Марк злится на Шерил, и потом обсуждает с коллегами, что она их не уважает. Хорошо: Марк подходит к Шерил, после встречи и просит не печатать. Шерил - ок, извини Марк.

Дать фидбек важно не только вовремя. Его важно дать правильно. 3 момента: - лингвистический фильтр важен - выбирайте слова - говорите все как есть, не делайте бутер из комлимента и фидбека - человек может вас не понять - полностью продумайте что ВЫ хотите, в чем проблема

Тут конечно же я не могу не упомянуть книгу о радикальной откровенности. Не делайте ваш фидбек слишком мягким, не делайте его агрессивным, не пытайтесь манипулировать. Будьте откровенны и говорите по делу. Кратко тут: bit.ly/34BNkFl
notion image

Очень важна культура в компании, чтобы конфликтов было мало надо постоянно напоминать людям чтобы они давали фидбек. Ведь мы все поломаны, у нас культурный контекст, склонность к замещению, мы стесняемся, мы не хотим тратить время. Но. -- Feedback is a gift --

Пятница


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

Обязательно обе команды должны знать друг друга лично - человек из VC это говорящая голова. Зная человека проще понять почему он принимает определенные решение, найти аргументы для спора, вести диалог в целом. Это повышает уровень доверия, bias который можно использовать 🤟

Обвинения. Неприятная штука. Жжет карму, уменьшает скорость разработки так как люди работают дефенсивно, либо приводит к полному Фоллауту, потому что 'все равно им все не так'. Обычно проблема не в людях в итоге, а в процессах, системе прав исполнения, гибкости фреймворка...

Прежде чем обвинять кого-то на обеде или стендапе, трижды подумайте. Можно дать фидбек 1:1 если надо. Публично, скажем для post mortem, 5 whys отличная техника bit.ly/2K087uu

Ничего не помогает. Дал фидбек два раза, поговорил с командой, они видит эту же проблему, попросил их поговорить с ним, результат 0.Это кандидат для эскалации. Поговорите об этом с его/ее менеджером. У некоторых людей есть bias пока менеджер не скажет ничего не делать.Cultural bg
notion image

Это последняя ступень, сожжёт вашу карму. Применяйте очень нежно.

А теперь самый важный твит в этом треде и самый важный вопрос. Задайте себе этот вопрос и очень честно, предельно откровенно, ответьте на него для себя: Я часть решения или я часть проблемы?

Вспоминаем когнитивные искажения. Откладываем эмоции в коробочку. Отбрасываем все о проблеме, что может быть субъективно, типа 'мне показалось'. Анализируем:

- что было первопричиной конфликта? (5 почему) - что бы вы думали о этом конфликте если бы с другой стороны? (если ответ 'сильно бы удивился', надо фидбек) - каковы были мои действия, усугубили ли они конфликт? - могу ли я понять и простить?

Знаете свои самые сильные когнитивные искажения? Задайте себе вопросы by bias: Не кажется ли мне этот фреймворк лучше, потому что я его нашел/ла или потому что я его уже знаю? Может Вася не мудак, раз выкатил в прод без тестов, а просто надо дать ему меньше таксов, разгрузить?

Почему это все важно? Закон Конвея: bit.ly/2qx7rWm Вроде юмор, но не юмор.
notion image

Все ошибаются в общении. Это нормально. Не давайте вашим ошибкам возможности перерасти в конфликты. Не давайте отсутствию нормальной коммуникации определять как будет выглядеть ваш продукт. Обсуждая технические решения думайте о task at hand, а не о том как победить оппонента.

На этом по избежанию/решению конфликтов у меня все. Надеюсь, это было полезно и поможет сделать ваши волосы мягкими и шелковистыми, ещё больше. Keep calm and #readthebook
notion image

🔥Тред (Роксана Петрюк)
-- пятничное -- По оформлению сегодня, я надеюсь, понятно, что мы уходим от будней. Сегодня я хочу поговорить о самовыражении, выгорании и о музыке. Хочу поделиться своим плейлистом и посмотреть ваши 🖤 В конце опять будет книга-рекомендация 😏
notion image

Я не психолог и не претендую. Это история о моем опыте. В ~сентябре 2017 года я не прошла в Google. Процесс собеседования занял 4 месяца, после onsite interview мне отказали. В это же время работать в Amazon было сложно, так как продукт развивался очень не туда куда мне хотелось.

Отказ от Google выбил меня из колеи. Опуская драму, это заставило меня задуматься - почему 'пройти в Google' стало для меня таким мерилом счастья. Что такое 'успех' вообще? Чего хочу именно я? От чего я реально получаю удовольствие?

Я жила ожиданиями что вот-вот и настанет жизнь. Что вот-вот и можно уже будет расслабиться. Но вот незадача, в процессе я забывала жить. Почему? Это была психология моих родителей овация от психологов В свои 28 лет я чувствовала себя на 45 и по здоровью, и по стилю жизни.

Но, осознание этого всего, дало мне толчок. Я прошла собеседование в Фейсбук. Встретила новых людей. Это вдохновило на ЗОЖ, зал, чтение новых книг. Новые книги позволили посмотреть на жизнь по-другому вот я тут, в принципе довольная опытом погружения в выгорание.

Книга, которая была полезна: bit.ly/2CqGaaT К ней можно относиться по-разному, она упрощает многие вещи. Но когда все не понятно и вы в печали последнее, чего хочется, это сложного академ языка

Что же такого я осознала? - Я живу по правилам, которые меня не устраивают - Я не самовыражаюсь ни в работе, ни в жизни - Я делаю не то что хочу, а то что от меня ожидают - Я инфантилизирую себя - Я слишком много думаю о том как что-то выглядит, а всем все равно 😅

И вот коронное: Мы все умрем 🧐 Абсолютно точно 🧐 Никто ещё этого не избежал 🧐 Какой смысл жить не свою жизнь? (инстаграм-пафос-вкл)

Очень важно понять от чего конкретно вы получаете удовольствие и забить на то, что кто-то об этом может подумать. Для меня это было 3 вещи: - создавать (арт, fx makeup, костюмы,пробовать новые технологии) - слушать музыку и посещать конценрты - ездить на машине

Музыка это прекрасно. Кроме того, что это кратчайший путь в наши эмоции, мозг можно направлять с помощью музыки - shorturl.at/hlO79 (кратко - мозг особо пластичен под воздействием музыки). Я обожаю писать код под музыку.

Бросайте сюда ваши любимые треки для программирования

Сюда просто что-то послушать. Я слушаю все от Виноградного дня до Nessun Dorma.

Я люблю Carpenter Brut, Fever Ray, alt-j, bmth, Lorn, Lana Del Rey, the xx, nine inch nails, Billie Eillish, highly suspect, architects, apparat, moderat, Erik Satie и т.п

Спасибо за музыку 🖤 На этом тред заканчивается, но не обсуждение и взаимное распространие любимой музыки) Написать это было сложнее, чем я ожидала.. ну что же. Классной нам всем пятницы! #readthebook
notion image

🔥Тред (Роксана Петрюк)

Суббота


Все треды пока что: Пятничный Оптимистический Нигилизм bit.ly/2rpR2U5 Избежание конфликтов bit.ly/2qxF1M7 GraphQL bit.ly/2CvJ5yQ Tribal Leadership (Толстой, а не Достоевский тред) bit.ly/2CoFHWC

Воскресенье


-- тред о интервью -- В моей жизни было 3 самых важных интервью. Amazon, Google и Facebook - два из них я прошла. Сегодня я раскажу как отличалась подготовка, ощущение от собеседования, и стоит ли ждать когда "будешь готов", чтобы податься.
notion image

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

Что порождает страх? Мы все боимся быть отвержеными - кто-то больше, кто-то меньше. Это эволюционное - это аналог изгнанания из племени, считай страх смерти. "Надо быть абсолютно готовым чтобы начать процесс" - байка, которую мозг нам заливает, чтобы избегать стресса отказа

Примите сразу, до начала процесса, что вам отказали. Примите, что удача это весомая часть успеха и может пойти и так и так. Дальше - просто делайте все, что можете. Нашла интересную статью по теме, там есть ещё советы: medium.com/better-program…

Само интервью - 1-2 телефонных звонка, если все ок - 5 интервью в одном из офисов с инженерами и иногда менеджерами. Если не ок - вас запомнили и через год пригласят попробовать ещё. Если телефонные интервью +/- одинаковы везде, то онсайты(в офисах) отличаются значительно.

Каждая компания ищет людей, которые вольются в коллектив легко. Это называется cultural fit. Ваша задача - не только подготовится технически, но и понять что именно в ваших методах, историях, реакциях на вопросы приближает вас к образу идеального кандидата, а что удаляет.

- Amazon - Leadership principles это фреймворк в Амазоне для всего. Все онсайт интервью - возможность продемонстрировать ваши сильные LP. Cultural fit в Амазоне архиважен. amazon.jobs/en/principles

- Amazon - Техника применяемая в Амазон называется STAR. hr-portal.ru/blog/metodika-… STAR дает очень понятную структуру вашим ответам, а грамотно ввязаные в ответы примеры демонстрации вами LP (customer obsession например) упростят собеседующему понимание вас, как кандидата.

- Google - Google ищет прежде всего excellence в инженерном смысле. Ожидайте задач норм выше среднего - часто это что-то, что сведётся к bfs, dfs, Dijkstra, динамическому программированию или рекурсии. Будьте готовы оценить сложность рекурсивного алгоритма.

Incredible slide deck from Google from SRECon on architecting a large scale distributed system, including how to approach scaling, how to evaluate tradeoffs along various axes as well as tons of back of the envelope calculations to justify each decision usenix.org/sites/default/…
- Google - NALSD - non-abstract large scale system design интервью или придумать архитектуру Х, но все не заканчивается на квадратиках. Архитектуру надо оценить в реальных числах - число машин, throughput r/w, network, etc. Вот 🤟 пример с srecon: twitter.com/copyconstruct/…

- Google - Попробуйте оценить сколько нужно машин для фронтенда google.com? Ответ может удивить. Вот полезнейшие числа: gist.github.com/hellerbarde/28… Google даст возможность пройти mock интервью этого собеседования также, вы научитесь многому при любом исходе.
notion image

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

- Facebook - Опыт в NALSD не помешает. Хорошо показать, что умеешь углубляться в проблему + посмотреть на вопрос широко,подходишь и так и сяк. Хорошо продемонстрировать самостоятельность, умение принимать решения исходя из контекста и ресурсов, умение налаживать диалог с людьми.

- Facebook - Знание тонких струн души вашей среды поможет. Это значит вы понимаете. А значит - вы подходите. Вы фронтендер? Максимальное количество паралельных ajax запросов в chrome? Меняется ли оно если с web worker? Critical render path, layout trashing, OWASP 10 prevention

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

На этом по разнице между FB, Google и Amazon у меня все. Традиционно #readthebook Рекомендую The Dune, Фрэнка Герберта. Обратите внимание на "Fear is a mind killer..." Всем кто проходит интервью сейчас - большой удачи, все, что ни делается - к лучшему. Вопросы - сюда @Boui2837
notion image

🔥Тред (Роксана Петрюк)
Все треды пока что: Пятничный Оптимистический Нигилизм bit.ly/2rpR2U5 Избежание конфликтов bit.ly/2qxF1M7 GraphQL bit.ly/2CvJ5yQ Tribal Leadership (Толстой, а не Достоевский тред) bit.ly/2CoFHWC
Вот и подошла к концу моя неделя в @jsunderhood. Все ещё люблю людей 🤷 Мои треды: twitter.com/jsunderhood/st… twitter.com/jsunderhood/st… Спасибо всем за уточнения. Спасибо, что читали. Пишите еще! PS: Follow тут - @Boui2837
notion image

Понедельник


Hi everyone! I am Ujjwal and some of you must know me as @ryzokuken. I'm a compilers hacker at @igalia which means all my work is open-source (I currently work on @v8js and @tc39) and I am also a core collaborator at @nodejs. Really looking forward to an amazing week with you!

Ссылки