Daniil Dyachenko's blog.

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

  1. Комиксы webtoons (webtoons.com)

English

  1. Как улучшить английский в документации (habr)
  2. Платформа с материалам для изучения грамматики (test-english.com)

IT Misc

  1. Наглядное руководство по SSH-туннелям (github)
  2. The System Design Primer, Книга о системном дизайне в электронном виде. (github)
  3. Злые марсиане, сайт с реальными задачами (cultofmartians.com)
  4. Авторский блог Vlad Mihalcea (vladmihalcea.com)
  5. Master programming by recreating your favorite technologies from scratch. (github)
  6. Авторский блог Шипилева (shipilev.net)
  7. Авторский блог Черемина (cheremin.info)
  8. Авторский блог Jenkov (jenkov.com)
  9. C# EF Конкурентные обновления в базе данных (youtube)
  10. 15 причин почему ты все еще Джун (habr)
  11. Антон Кекс — The world needs full-stack craftsmen (youtube)
  12. P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети (habr)

Code challenges

  1. A series of distributed systems challenges brought to you by Fly.io (fly.io)
  2. Programming challenges for seasoned developers (codecrafters.io)

Reliability

  1. Сложность метастабильных состояний отказа на примере Такси / Яндекс Go Infra Meetup #2 (youtube)

System Design

  1. Владимир Маслов — System Design. Как построить распределенную систему и пройти собеседование (youtube)
  2. The System Design Primer, Книга о системном дизайне в электронном виде. (github)
  3. Публичное интервью по System Design. Александр Поломодов. (youtube)
  4. System Design: Design a URL Shortener like TinyURL (youtube)
  5. Tiny URL - System Design Interview Question (URL shortener) (youtube)
  6. Теория шардирования - System Design (youtube)
  7. Платформа для подготовки techprep (techprep)
  8. Разработка и проектирование высоконагруженных систем (часть 1) / Олег Бунин (Онтико) (youtube)
  9. Разработка и проектирование высоконагруженных систем (часть 2) / Олег Бунин (Онтико) (youtube)
  10. Разработка и проектирование высоконагруженных систем (часть 3) / Олег Бунин (Онтико) (youtube)
  11. Highload 1. Вводное занятие, примеры проектирования систем, сбор требований. (youtube)
  12. System Design Newsletter (systemdesign.one)
  13. System Design Codex Newsletter (systemdesigncodex.com)
  14. Авито Автозагрузка: как качать миллионы фотографий в сутки / Евгений Толмачев (Авито) (youtube)
  15. How Figma’s databases team lived to tell the scale (figma.com)
  16. Как Figma удалось открыть себе путь к почти бесконечному масштабированию баз данных (habr)
  17. Дмитрий Волыхин — System Design-интервью для практиков (youtube)
  18. System Design Interview: Design Twitter (X) (medium)
  19. Fault Tolerance in Microservices Architecture (medium)
  20. How Facebook Scaled Live Video to a Billion Users (systemdesignone)
  21. How Instagram Scaled to 2.5 Billion Users (systemdesignone)
  22. Consistent Hashing Explained (systemdesignone)

TinyURL

  1. System Design: Design a URL Shortener like TinyURL (youtube)
  2. Tiny URL - System Design Interview Question (URL shortener) (youtube)

Twitter

  1. Twitter / Newsfeed System Design Interview Question (youtube)

Testing

  1. Is Your API ACTUALLY Ready for User Traffic? (youtube)

Managment

  1. Александр Логинов — Матрица компетенций и оценка Java-разработчиков (youtube)
  2. How to answer interview questions with the STAR method (resume.io)

Kotlin

  1. Framework for testing concurrent data structures (github)
  2. Kotlin: An Illustrated Guide (typealias.com)

Koin (kotlin lib)

  1. Koin 3.2 - Improving the Kotlin Developer Experience by Arnaud Giuliani (youtube)

Coroutines

  1. Coroutines and Loom behind the scenes by Roman Elizarov (youtube)

Java

  1. Java Stream API (habr)
  2. Многопоточность Java (habr)
  3. LJV: Чему нас может научить визуализация структур данных в Java (habr)
  4. Алексей Шипилёв — Shenandoah: сборщик мусора, который смог (youtube)
  5. Делаем свою простейшую систему сборки для Java (habr)
  6. Алексей Рагозин — Java в контейнере: особенности эксплуатации (youtube)
  7. Александр Ланцов — Прогревая JVM: CRaC и другие фокусы (youtube)

Spring

  1. The best way to use the Spring Transactional annotation (vladmihalcea.com)
  2. Spring with Maven BOM (baeldung.com)
  3. Алексей Нестеров — Spring Cloud в эру Kubernetes (youtube)
  4. Гексагональная архитектура со Spring Boot (habr)
  5. Илья и Федор Сазоновы — БД-укротитель (youtube)

Spring Cloud

  1. Алексей Нестеров — Spring Cloud в эру Kubernetes (youtube)
  2. Spring Cloud и Spring Boot Admin - Инструменты наблюдаемости (youtube)
  3. Использование Spring Cloud для микросервисов на Spring Boot (youtube)
  4. Никита Летов — Единая точка входа или точка отказа: путь к non-blocking API Gateway (youtube)

Backend

  1. Python и Ruby под нагрузкой: самый низкий уровень / Григорий Петров (Evrone) (youtube)

Security

JWT

  1. How To Validate a JWT Token (medium)

Docker

  1. How to reduce JVM docker image size (medium)
  2. Контейнеры мертвы. Да здравствуют виртуальные машины! / Виктор Попов (НЛМК) (youtube)
  3. Алексей Рагозин — Java в контейнере: особенности эксплуатации (youtube)

Microservices

  1. Outbox pattern (microservices.io)
  2. Service Mesh for Java Developers (youtube)
  3. Вам не нужен Service Mesh, но это не точно, Александр Тарасов - Backend (youtube)
  4. Микросервисы через боль и превозмогание / Филипп Дельгядо (youtube)
  5. What is the Dual Write Problem? | Designing Event-Driven Microservices (youtube)

Tracing

  1. 5 GB трейсов в секунду, или Как устроена система трассировки в Ozon / Владимир Балун (Ozon) (youtube)

Programming

  1. Сайт с дизайн паттернами (refactoring.guru)
  2. SOLID в картинках (habr)
  3. Set’ы в Android (alexanderklimov.ru)
  4. HashSet в java (javarush.com)

Message brokers

  1. RabbitMQ против Kafka: два разных подхода к обмену сообщениями (habr)
  2. Типовое использование RabbitMQ (habr)
  3. Publishing Events to Kafka using an Outbox Pattern (medium)
  4. Kafka Connect (confluent.io)
  5. Kafka Connect learn guide (confluent.io)
  6. Григорий Кошелев — Когда всё пошло по Кафке (youtube)
  7. Григорий Кошелев — Когда всё пошло по Кафке 2: Разгоняем продьюсеров (youtube)
  8. Как правильно выбирать очередь / Владимир Перепелица (Mail.Ru Group) (youtube)
  9. Евгений Ненахов — Потоковая обработка с Kafka в условиях Big Data (youtube)
  10. What is the Dual Write Problem? | Designing Event-Driven Microservices (youtube)

Real systems

  1. Apache Kafka (apache.org)
  2. RabbitMQ (rabbitmq.com)
  3. Redpanda (aka kafka on c++) (redpanda.com)
  4. NSQ (nsq.io)
  5. Nats-Server (nats.io)
  6. ZeroMQ (zeromq.org)
  7. PgQ (queue in PostgreSQL) (postgresql.org)

Reactive

  1. Intro To Reactor Core (baeldung.com)
  2. Java agent to detect blocking calls from non-blocking threads (github)

Алгоритмы

  1. Статья про сортировки (Описание алгоритмов сортировки и сравнение их производительности) (habr)
  2. Сортировки от жены (leetcode.com)

SDUI (BDUI) pattern

  1. Beagle is an open source framework that helps developers implement Server-Driven UI in a cross-platform way (usebeagle.io)
  2. DivKit is an open source Server-Driven UI (SDUI) framework (github)
  3. Airbnb, A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts (github)
  4. Документация DivKit (divkit.tech)
  5. Интерактивные примеры DevKit (divkit.tech)
  6. What is Server-Driven UI? (youtube)
  7. A Deep Dive into Airbnb’s Server-Driven UI System (medium)
  8. What is Server-Driven UI? (judo.app)
  9. Яндекс выпускает DivKit — фреймворк для server-driven UI с открытым кодом (habr)
  10. Быстрый запуск фичей с Server Driven UI | Александр Свиридов, Ozon (youtube)
  11. Back-end driven UI - Алексей Шпирко (Avito) (youtube)
  12. Server Driven UI, Tom Lokhorst (English) (youtube)
  13. KotlinConf 2019: Lona: Scaling Server-driven UI by Laura Kelly & Nathanael Silverman (youtube)
  14. Backend-Driven UI – Алексей Новиков (youtube)
  15. Бэкенд на BDUI и метафорах | Антон Чеботаев, Яндекс Маркет - (youtube)

HyperLogLog

  1. HyperLogLog (wikipedia.org)
  2. The Algorithm with the Best Name - HyperLogLog Explained (youtube)
  3. Redis HyperLogLog (redis.io)

HTTP

  1. Кэширование в HTTP | Курс “Компьютерные сети” (youtube)

gRPC

  1. Дмитрий Бугайченко — gRPC client-side load balancing — зачем, что, как и WTF? (youtube)
  2. jocker-grpc-loadbalancing (github)
  3. Сергей Антоничев — «gRPC-стримы на практике в Go» (youtube)

Caches

Common

  1. Как распилить монолит на сервисы и сохранить производительность In-memory кэшей без потери консистентности (habr)

Hazelcast

  1. Виктор Гамов — Распределяй и властвуй: введение в распределенные системы (youtube)

Redis

  1. Успехи и провалы с Redis / Иван Летенко (Infobip) (youtube)

Databases

Common

  1. Илья Сазонов и Федор Сазонов — Offset и keyset: почём пагинация для продакшена? (youtube)

MongoDB

  1. Руководство по выживанию с MongoDB / Сергей Загурский (Joom) (youtube)
  2. Postgres vs Mongo / Олег Бартунов (Postgres Professional) (youtube)

PostgreSQL

Common

  1. Trunk is an open-source package installer and registry for PostgreSQL extensions (pgt.dev)
  2. Postgres vs Mongo / Олег Бартунов (Postgres Professional) (youtube)
  3. PostgreSQL and UUID as primary key (maciejwalkowiak.com)
  4. Илья и Федор Сазоновы — БД-укротитель (youtube)

GIN index

  1. Understanding Postgres GIN Indexes: The Good and the Bad (pganalyze.com)
  2. Индексы в PostgreSQL — 7 (habr)
  1. Новые возможности полнотекстового поиска в PostgreSQL / Олег Бартунов (Postgres Professional) (youtube)

Indexes

  1. Владимир Ситников — B-Tree индексы в базах данных на примере Spring Boot-приложений, PostgreSQL, JPA (youtube)
  2. Андрей Сальников — Индексы в PostgreSQL. Как понять, что создавать (youtube)

Data engineering

  1. Database vs Data Warehouse vs Data Lake | What is the Difference? (youtube)
  2. Как бизнес-аналитику выстроить работу в проектах DWH (Data Warehouse). Структура работ (habr)
  3. Андрей Серебрянский — Как построить платформу для стриминга данных на Kafka (youtube)

Recommender systems

  1. Андрей Кузнецов — Мастер-класс: Пишем рекомендательную систему музыки на Java (youtube)

Photo

  1. How Can I Resize an Image Using Java? (baeldung.com)

Monitoring

Grafana

  1. Мониторинг с Grafana. Best practices (habr)

Golang

Language

  1. Как я пишу HTTP-сервисы спустя 13 лет работы с Go (habr)
  2. Pipelines (go.dev)
  3. About context pkg (digitalocean.com)
  4. Database Transactions in Go with Layered Architecture (blog)

HomeLab

  1. Secure authentication for EVERYTHING! // Authentik (youtube)
  2. Cloudflare tunnels are pretty cool (youtube)