Pull to refresh
7
0
Send message

Эволюция оценки программиста на интервью

Reading time12 min
Views9.6K

Я более десяти лет жизни писал код в одной российской компании и активно собеседовал-нанимал людей. За это время успел пообщался с четырьмя сотнями кандидатов. На моих интервью было все – от алгоритмических задач до разговоров о «жизни». Но форма вторична – я рассматриваю интервью как инструмент для проверки совпадения с кандидатом по культуре. И все эти десять лет в моей компании менялся подход к оценке программиста на интервью и менялась культура.

Любое собеседование адекватно компании, которая его проводит. Даже если от собеседования «бомбит» и «подгорает» - проблема в кандидате, а не в компании. И как кандидат я очень рад такому простому фильтру для отбраковки не подходящих мне компаний. Но и компания тоже преследует свои цели – сохранение и изменение своей культуры за счет найма «правильных» людей. Проверка технических навыков тоже важна, но важнее нанимать людей, с которыми можно работать.

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

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments29

Примитивы синхронизации в JavaScript: cемафоры и хоккей

Reading time12 min
Views9K

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

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments7

Как новому тимлиду завоевать доверие команды: 9 правил, которые я усвоил за полгода в этой роли

Level of difficultyEasy
Reading time10 min
Views5.8K

Привет! Меня зовут Кирилл Комиссаров, я пришел на позицию лида примерно полгода назад. Срок небольшой, но за это время многое понял о том, почему доверие в команде так важно. 

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

Позиция тимлида вообще предполагает relationship management, который может быть направлен как и на команду, так и наверх, в сторону стейкхолдеров. Но в этой статье я хочу поговорить именно про связку TL + Dev Team. Руководителю важно выстроить и поддерживать доверительные отношения с сотрудниками. Это поможет эффективно управлять командой и добиваться слаженной и продуктивной работы.

Если люди вам доверяют, вы будете получать более полную и достоверную информацию, сможете вовремя реагировать на проблемы, решать конфликты и строить долгосрочные планы.

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

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments8

Зеттелькастен. Книга «Как делать умные заметки»

Level of difficultyEasy
Reading time5 min
Views14K

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

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments13

Пять простых шагов для понимания JSON Web Tokens (JWT)

Reading time5 min
Views621K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments60

Пишем кастомный трансформер AST на TypeScript

Reading time11 min
Views7.5K

Команда TestMace снова с вами. На этот раз мы публикуем перевод статьи о преобразовании кода TypeScript, используя возможности компилятора. Приятного чтения!


Введение


Это мой первый пост, и в нём мне бы хотелось показать решение одной задачи с помощью API компилятора TypeScript. Чтобы найти это самое решение, я долгое время копался в многочисленных блогах и переваривал ответы на StackOverflow, поэтому, чтобы уберечь вас от такой же участи, я поделюсь всем тем, что я узнал о таком мощном, но слабо документированном наборе инструментов.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments1

Анализ подходов к связыванию модулей в Node.js

Reading time7 min
Views3.2K
Многие разработчики Node.js для связывания модулей используют исключительно создание жёсткой зависимости с помощью require(), однако существуют и другие подходы, со своими плюсами и минусами. О них я в этой статье и расскажу. Будут рассмотрены четыре подхода:

  • Жёсткие зависимости (require())
  • Внедрение зависимостей (Dependency Injection)
  • Локаторы служб (Service Locator)
  • Контейнеры внедряемых зависимостей (DI Container)
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments0

О динамическом программировании на пальцах

Level of difficultyEasy
Reading time9 min
Views23K

Как динамическое программирование может упростить нашу жизнь? Как можно оптимизировать решение задач?

Сегодня мы разберем динамическое программирование на пальцах с примерами на Python!

Усаживайтесь поудобнее, леди и джентльмены!

Вперед!
Total votes 24: ↑19 and ↓5+14
Comments17

Паттерны реактивности в современном JavaScript

Level of difficultyHard
Reading time12 min
Views11K



"Реактивность" — это то, как системы реагируют на обновление данных. Существуют разные типы реактивности, но в рамках этой статьи, реактивность — это когда мы что-то делаем в ответ на изменение данных.


Паттерны реактивности являются ключевыми для веб-разработки


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


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


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

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

Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments8

Современные архитектуры фронт-энда

Reading time12 min
Views47K

image


В статье "Contemporary Front-end Architectures" рассмотрены архитектуры фронт-энда с точки зрения потоков данных в исторической ретроспективе.


Материал состоит из трех частей


  1. Теория и история
  2. Реализация
  3. Перспективы

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments14

Как команда технарей свой бизнес создавала. Сезон 4 – крах и рост в серийного предпринимателя с амбициозным проектом

Level of difficultyEasy
Reading time6 min
Views2.4K

Тема развития из разработчика в предпринимателя очевидно актуальна. Предыдущие мои три статьи на эту тему собрали 160К+ просмотров и более 600 закладок. Точно знаю уже несколько кейсов, когда люди создавали свой бизнес после прочтения.

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

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

Интересно, поехали
Total votes 9: ↑6 and ↓3+3
Comments4

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Level of difficultyEasy
Reading time26 min
Views33K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее
Total votes 128: ↑128 and ↓0+128
Comments96

Разработка рекомендательных систем: три открытых библиотеки от Сбера

Level of difficultyEasy
Reading time4 min
Views3.9K

Делимся своими открытыми библиотеками для разработки рекомендательных систем. Что? Да! Рассказываем подробнее. Всем известно, что Сбер это уже не просто банк, а огромная технологическая компания, которая включает в себя и сервисы компаний-партнёров: электронную коммерцию, индустрию развлечений и даже медицину. Количество пользователей достигло 108 млн, и для каждого из них мы создаём персональные рекомендации, которые помогают не потеряться в разнообразии предложений и выбрать лучшее.

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments3

Утечки памяти в SSR: причины, поиск, устранение

Level of difficultyHard
Reading time12 min
Views4.4K

Привет, Хабр! Меня зовут Владимир Захаров (@‌vzkhrv), я расскажу про SSR. На самом деле, утечки памяти работают в JavaScript везде – и на сервер-сайте, и на клиенте, поэтому информация будет полезна даже тем, у кого пока нет SSR. Давайте чуть подробнее познакомимся. Я ведущий фронтэнд-разработчик, около 8 лет в отрасли. В Зарплате.ру больше не работаю, но основной опыт, о котором хочу рассказать, получен именно там. Я люблю плавающие баги, разговоры о техдолге и шутки про ненастоящих программистов. Поговорим про утечки в памяти в SSR, про работу с памятью и про то, как всё это выглядит в браузере и в nodejs. Ну, и естественно, как со всем этим жить.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments4

Борьба с утечками памяти в веб-приложениях

Reading time13 min
Views14K
Когда мы перешли от разработки веб-сайтов, страницы которых формируются на сервере, к созданию одностраничных веб-приложений, которые рендерятся на клиенте, мы приняли определённые правила игры. Одно из них — аккуратное обращение с ресурсами на устройстве пользователя. Это значит — не блокировать главный поток, не «раскручивать» вентилятор ноутбука, не сажать батарею телефона. Мы обменяли улучшение интерактивности веб-проектов, и то, что их поведение стало больше похоже на поведение обычных приложений, на новый класс проблем, которых не существовало в мире серверного рендеринга.


Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments2

Хороший ретрай, плохой ретрай, или История одного падения

Level of difficultyMedium
Reading time17 min
Views37K

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

Читать далее
Total votes 152: ↑152 and ↓0+152
Comments32

Прогресс WebAssembly и будущее веба. Быстрые интерфейсы, пример Figma

Level of difficultyEasy
Reading time5 min
Views7.9K

Скетч из статьи Лин Кларк «Создание и работа с модулями WebAssembly»

WebAssembly (Wasm) — это бинарный формат для безопасного и эффективного выполнения портативных программ в стековой виртуальной машине (в браузере или на сервере). Как и ASM.js, представляет собой низкоуровневый код. Есть ещё WAT — WebAssembly Text, человекочитаемая версия бинарного кода.

WebAssembly — не столько язык программирования, сколько цель компиляции, новый вид ассемблера, который работает близко к железу, принимая программы на C, C++, Rust и других привычных языках. При этом Wasm гораздо быстрее ASM.js и выполняет код в браузере почти как нативные программы под любой ОС.
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments16

Основы полнотекстового поиска в ElasticSearch. Часть третья

Level of difficultyMedium
Reading time4 min
Views4.9K

Это третья и заключительная статья из цикла, в которой рассмотрим стандартную модель ранжирования документов в Elasticsearch.

После того как определено множество документов, которые удовлетворяют параметрам полнотекстового запроса, Elasticsearch рассчитывает метрику релевантности для каждого найденного документа. По значению метрики набор документов сортируется и отдается потребителю.

В Elasticsearch существует несколько моделей ранжирования документов. По умолчанию используется Okapi BM25.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments1

Митапы PiterJS вернулись

Level of difficultyEasy
Reading time3 min
Views1.4K

Всем привет! Мы – PiterJS, крупнейшее российское сообщество JavaScript-программистов базирующееся в Санкт-Петербурге. 17 августа мы провели митап #57 в дата-центре компании Selectel, который собрал большую аудиторию неравнодушных разработчиков. Мы возобновляем регулярные митапы (традиционно по четвергам) после длительного перерыва, и собираемся делать драйвовые и ламповые встречи для всех на регулярной основе! И уже 21 сентября приглашаем вас на #58 митап в офисе Эльбрус Буткемп.

Наша миссия – нести знания, объединять людей с общими интересами. Нам важно, чтобы вы были в курсе последних событий, могли находить новых друзей и расширять свой нетворкинг, став частью нашей “семьи”. Мы максимально открыты аудитории, а наши мероприятия полностью бесплатные. 

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0

Создаём npm пакет, совместимый с CJS, ESM, написанный на TypeScript

Reading time6 min
Views8.3K

Здравствуйте! Меня зовут Евгений, я бакенд разработчик в компании ClickON. Хотелось бы поделиться опытом создания npm пакета, который умеет встраиваться в CommonJS, ESModule проект. Опишем подводные камни, попытаемся сделать универсальный пакет, прикрутим алиасы.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments7

Information

Rating
Does not participate
Registered
Activity