My Favorite Links
Why
I really want to share my knowledge for everyone and below I write some I think useful links of articles, video and posts.
Список интересных источников, чтобы всегда был под рукой.
Entertainment
- Комиксы webtoons (webtoons.com)
English
- Как улучшить английский в документации (habr)
- Платформа с материалам для изучения грамматики (test-english.com)
IT Misc
- Наглядное руководство по SSH-туннелям (github)
- The System Design Primer, Книга о системном дизайне в электронном виде. (github)
- Злые марсиане, сайт с реальными задачами (cultofmartians.com)
- Авторский блог Vlad Mihalcea (vladmihalcea.com)
- Master programming by recreating your favorite technologies from scratch. (github)
- Авторский блог Шипилева (shipilev.net)
- Авторский блог Черемина (cheremin.info)
- Авторский блог Jenkov (jenkov.com)
- C# EF Конкурентные обновления в базе данных (youtube)
- 15 причин почему ты все еще Джун (habr)
- Антон Кекс — The world needs full-stack craftsmen (youtube)
- P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети (habr)
Code challenges
- A series of distributed systems challenges brought to you by Fly.io (fly.io)
- Programming challenges for seasoned developers (codecrafters.io)
Reliability
- Сложность метастабильных состояний отказа на примере Такси / Яндекс Go Infra Meetup #2 (youtube)
System Design
- Владимир Маслов — System Design. Как построить распределенную систему и пройти собеседование (youtube)
- The System Design Primer, Книга о системном дизайне в электронном виде. (github)
- Публичное интервью по System Design. Александр Поломодов. (youtube)
- System Design: Design a URL Shortener like TinyURL (youtube)
- Tiny URL - System Design Interview Question (URL shortener) (youtube)
- Теория шардирования - System Design (youtube)
- Платформа для подготовки techprep (techprep)
- Разработка и проектирование высоконагруженных систем (часть 1) / Олег Бунин (Онтико) (youtube)
- Разработка и проектирование высоконагруженных систем (часть 2) / Олег Бунин (Онтико) (youtube)
- Разработка и проектирование высоконагруженных систем (часть 3) / Олег Бунин (Онтико) (youtube)
- Highload 1. Вводное занятие, примеры проектирования систем, сбор требований. (youtube)
- System Design Newsletter (systemdesign.one)
- System Design Codex Newsletter (systemdesigncodex.com)
- Авито Автозагрузка: как качать миллионы фотографий в сутки / Евгений Толмачев (Авито) (youtube)
- How Figma’s databases team lived to tell the scale (figma.com)
- Как Figma удалось открыть себе путь к почти бесконечному масштабированию баз данных (habr)
- Дмитрий Волыхин — System Design-интервью для практиков (youtube)
- System Design Interview: Design Twitter (X) (medium)
- Fault Tolerance in Microservices Architecture (medium)
- How Facebook Scaled Live Video to a Billion Users (systemdesignone)
- How Instagram Scaled to 2.5 Billion Users (systemdesignone)
- Consistent Hashing Explained (systemdesignone)
TinyURL
- System Design: Design a URL Shortener like TinyURL (youtube)
- Tiny URL - System Design Interview Question (URL shortener) (youtube)
- Twitter / Newsfeed System Design Interview Question (youtube)
Testing
- Is Your API ACTUALLY Ready for User Traffic? (youtube)
Managment
- Александр Логинов — Матрица компетенций и оценка Java-разработчиков (youtube)
- How to answer interview questions with the STAR method (resume.io)
Kotlin
- Framework for testing concurrent data structures (github)
- Kotlin: An Illustrated Guide (typealias.com)
Koin (kotlin lib)
- Koin 3.2 - Improving the Kotlin Developer Experience by Arnaud Giuliani (youtube)
Coroutines
- Coroutines and Loom behind the scenes by Roman Elizarov (youtube)
Java
- Java Stream API (habr)
- Многопоточность Java (habr)
- LJV: Чему нас может научить визуализация структур данных в Java (habr)
- Алексей Шипилёв — Shenandoah: сборщик мусора, который смог (youtube)
- Делаем свою простейшую систему сборки для Java (habr)
- Алексей Рагозин — Java в контейнере: особенности эксплуатации (youtube)
- Александр Ланцов — Прогревая JVM: CRaC и другие фокусы (youtube)
ORM
- Александр Белов — Jimmer ORM: альтернатива JPA (youtube)
Spring
- The best way to use the Spring Transactional annotation (vladmihalcea.com)
- Spring with Maven BOM (baeldung.com)
- Алексей Нестеров — Spring Cloud в эру Kubernetes (youtube)
- Гексагональная архитектура со Spring Boot (habr)
- Илья и Федор Сазоновы — БД-укротитель (youtube)
- Никита Летов — Используем @Transactional like a Pro (youtube)
Spring Cloud
- Алексей Нестеров — Spring Cloud в эру Kubernetes (youtube)
- Spring Cloud и Spring Boot Admin - Инструменты наблюдаемости (youtube)
- Использование Spring Cloud для микросервисов на Spring Boot (youtube)
- Никита Летов — Единая точка входа или точка отказа: путь к non-blocking API Gateway (youtube)
Backend
- Python и Ruby под нагрузкой: самый низкий уровень / Григорий Петров (Evrone) (youtube)
Security
JWT
- How To Validate a JWT Token (medium)
Docker
- How to reduce JVM docker image size (medium)
- Контейнеры мертвы. Да здравствуют виртуальные машины! / Виктор Попов (НЛМК) (youtube)
- Алексей Рагозин — Java в контейнере: особенности эксплуатации (youtube)
Microservices
- Outbox pattern (microservices.io)
- Service Mesh for Java Developers (youtube)
- Вам не нужен Service Mesh, но это не точно, Александр Тарасов - Backend (youtube)
- Микросервисы через боль и превозмогание / Филипп Дельгядо (youtube)
- What is the Dual Write Problem? | Designing Event-Driven Microservices (youtube)
- Алексей Кашин — Надежно отправляем события в Apache Kafka. От CDC до паттерна Transactional Outbox (youtube)
Tracing
- 5 GB трейсов в секунду, или Как устроена система трассировки в Ozon / Владимир Балун (Ozon) (youtube)
Programming
- Сайт с дизайн паттернами (refactoring.guru)
- SOLID в картинках (habr)
- Set’ы в Android (alexanderklimov.ru)
- HashSet в java (javarush.com)
Message brokers
- RabbitMQ против Kafka: два разных подхода к обмену сообщениями (habr)
- Типовое использование RabbitMQ (habr)
- Publishing Events to Kafka using an Outbox Pattern (medium)
- Kafka Connect (confluent.io)
- Kafka Connect learn guide (confluent.io)
- Григорий Кошелев — Когда всё пошло по Кафке (youtube)
- Григорий Кошелев — Когда всё пошло по Кафке 2: Разгоняем продьюсеров (youtube)
- Как правильно выбирать очередь / Владимир Перепелица (Mail.Ru Group) (youtube)
- Евгений Ненахов — Потоковая обработка с Kafka в условиях Big Data (youtube)
- What is the Dual Write Problem? | Designing Event-Driven Microservices (youtube)
Real systems
- Apache Kafka (apache.org)
- RabbitMQ (rabbitmq.com)
- Redpanda (aka kafka on c++) (redpanda.com)
- NSQ (nsq.io)
- Nats-Server (nats.io)
- ZeroMQ (zeromq.org)
- PgQ (queue in PostgreSQL) (postgresql.org)
Reactive
- Intro To Reactor Core (baeldung.com)
- Java agent to detect blocking calls from non-blocking threads (github)
- Никита Мельников — Использование акторной модели в системах финансовых транзакций (youtube)
Алгоритмы
- Статья про сортировки (Описание алгоритмов сортировки и сравнение их производительности) (habr)
- Сортировки от жены (leetcode.com)
SDUI (BDUI) pattern
- Beagle is an open source framework that helps developers implement Server-Driven UI in a cross-platform way (usebeagle.io)
- DivKit is an open source Server-Driven UI (SDUI) framework (github)
- Airbnb, A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts (github)
- Документация DivKit (divkit.tech)
- Интерактивные примеры DevKit (divkit.tech)
- What is Server-Driven UI? (youtube)
- A Deep Dive into Airbnb’s Server-Driven UI System (medium)
- What is Server-Driven UI? (judo.app)
- Яндекс выпускает DivKit — фреймворк для server-driven UI с открытым кодом (habr)
- Быстрый запуск фичей с Server Driven UI | Александр Свиридов, Ozon (youtube)
- Back-end driven UI - Алексей Шпирко (Avito) (youtube)
- Server Driven UI, Tom Lokhorst (English) (youtube)
- KotlinConf 2019: Lona: Scaling Server-driven UI by Laura Kelly & Nathanael Silverman (youtube)
- Backend-Driven UI – Алексей Новиков (youtube)
- Бэкенд на BDUI и метафорах | Антон Чеботаев, Яндекс Маркет - (youtube)
- У вас BDUI: как с этим жить // Вячеслав Соколов, дизайнер цифровых продуктов в Альфа-Банке (youtube)
HyperLogLog
- HyperLogLog (wikipedia.org)
- The Algorithm with the Best Name - HyperLogLog Explained (youtube)
- Redis HyperLogLog (redis.io)
HTTP
- Кэширование в HTTP | Курс “Компьютерные сети” (youtube)
gRPC
- Дмитрий Бугайченко — gRPC client-side load balancing — зачем, что, как и WTF? (youtube)
- jocker-grpc-loadbalancing (github)
- Сергей Антоничев — «gRPC-стримы на практике в Go» (youtube)
Caches
Common
- Как распилить монолит на сервисы и сохранить производительность In-memory кэшей без потери консистентности (habr)
Hazelcast
- Виктор Гамов — Распределяй и властвуй: введение в распределенные системы (youtube)
Redis
- Успехи и провалы с Redis / Иван Летенко (Infobip) (youtube)
Databases
Common
- Илья Сазонов и Федор Сазонов — Offset и keyset: почём пагинация для продакшена? (youtube)
MongoDB
- Руководство по выживанию с MongoDB / Сергей Загурский (Joom) (youtube)
- Postgres vs Mongo / Олег Бартунов (Postgres Professional) (youtube)
PostgreSQL
Common
- Trunk is an open-source package installer and registry for PostgreSQL extensions (pgt.dev)
- Postgres vs Mongo / Олег Бартунов (Postgres Professional) (youtube)
- PostgreSQL and UUID as primary key (maciejwalkowiak.com)
- Илья и Федор Сазоновы — БД-укротитель (youtube)
- Михаил Жилин — Как PostgreSQL может сделать больно, когда не ожидаешь? (youtube)
GIN index
- Understanding Postgres GIN Indexes: The Good and the Bad (pganalyze.com)
- Индексы в PostgreSQL — 7 (habr)
FTS (Full Text Search)
- Новые возможности полнотекстового поиска в PostgreSQL / Олег Бартунов (Postgres Professional) (youtube)
Indexes
- Владимир Ситников — B-Tree индексы в базах данных на примере Spring Boot-приложений, PostgreSQL, JPA (youtube)
- Андрей Сальников — Индексы в PostgreSQL. Как понять, что создавать (youtube)
Data engineering
- Database vs Data Warehouse vs Data Lake | What is the Difference? (youtube)
- Как бизнес-аналитику выстроить работу в проектах DWH (Data Warehouse). Структура работ (habr)
- Андрей Серебрянский — Как построить платформу для стриминга данных на Kafka (youtube)
Recommender systems
- Андрей Кузнецов — Мастер-класс: Пишем рекомендательную систему музыки на Java (youtube)
Photo
- How Can I Resize an Image Using Java? (baeldung.com)
Monitoring
Grafana
- Мониторинг с Grafana. Best practices (habr)
Golang
Language
- Как я пишу HTTP-сервисы спустя 13 лет работы с Go (habr)
- Pipelines (go.dev)
- About context pkg (digitalocean.com)
- Database Transactions in Go with Layered Architecture (blog)