Load Balancers

В опросах в твитере и телеграме уверенно побеждают балансеры. В этой статье сделаем небольшой обзор на балансеры, как одну из важных частей в распределённых системах: какую проблему решают, как реализованы.

Rate Limiter

Продолжая серию «введение в дизайн систем», разберём популярный вопрос — rate limiter.

Number of Islands

Классическая задача на DFS — найти количество «островов». Я сам получал вариации этой задачи на двух разных собеседованиях. Разберём не только классическое решение через поиск в глубину, но так же с помощью структуры данных Union-Find.

Как работает HTTPS?

HTTPS — это дополнительная надстройка над старым-добрым HTTP, которая повзоляет нам относительно спокойно сидеть в интернете, не опасаясь, что кто-то читает запросы по пути с паролями и данными кредитных карт. Точнее запросы по-прежнему можно читать, но вот понять что там не выйдет. Ну, или почти не выйдет, ведь систем без уязвимостей нет, верно?

Search Suggestions System

Разбор задачи “Search Suggestions System” на LeetCode. Отличная задача, которая легко пишется за квадрат, и имеет несколько постепенных вариантов улучшения посложнее — разберём их все. Аналогичная задача попалась мне на реальном скайп-интервью в Google.

Беседа с Безосом на Forum on Leadership

Онбординг в Амазоне начался с прочтения и просмотра различных материалов. Один из них — разговор «про лидерство» с Джефом Безосом. Решил записать тезисы на русском.

Coin Change

Разбор задачи «Coin Change» на LeetCode. Каким образом собрать нужную сумму из различных монет используя минимальное их количество? Классическая задача на динамическое программирование.

Stone Game

Разбор задачи “Stone Game IV” на LeetCode. Кто выйдет победителем при условии, что все участники играют оптимально? Задача на динамическое программирование.

Rotting Oranges

Разбор задачи “Rotting Oranges” на LeetCode. Через сколько минут не останется свежих апельсинов? Напишем поиск в ширину, спойлер — очереди.