Developer's Sandbox
868 subscribers
3 photos
5 videos
46 links
Опыт и самообучение практикующего разработчика

Связь с автором: @alpa011235
Download Telegram
Наступает 2024 год ♥️

Хочу пожелать всем успехов в Новом Году! 🎄🎁

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

Благодарю вас за то, что читаете этот канал, ставите реакции и пишете комментарии! 🐱
И поздравляю Вас с наступающим 2024 годом!❄️

———
Небольшая статистика:
Канал создан 14.06.2022
Первый пост я опубликовал 15.07.2023, вышло, что от идеи до начала реализации прошел год и 1 месяц
На сегодняшний день '31.12.2023', написано 28 постов и 41 пример на 🐙Github, они доступны в обновляющемся Меню

———
Обновление:
В IDEA есть Run Configurations, благодаря которым можно по одному клику настроить, что конкретно будет запускаться, и их можно сохранить в файл
Т.е. когда кто-то через IDEA откроет проект, они будут у него доступны

Я добавил их в каждый репозиторий:
📦 sandbox
☕️ sandbox-java
🌱 sandbox-spring-context
🌱 sandbox-web
🐘 sandbox-postgresql
🌱 sandbox-spring-data-jpa
📖 sandbox-kafka

Особенно это удобно для 📖sandbox-kafka, в котором, по одному клику можно запустить кластер с одним брокером, либо с двумя, либо добавить мониторинг, и еще, в дополнении к confluentinc image, добавились и другие — bitnami и wurstmeister
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉26🎄42👍2🔥1
Новогодние праздники внесли свои коррективы и что-то "Буду стараться писать одну/две статьи в неделю" не получилось 🫠

Тем не менее, продолжим и поговорим о консольных инструментах Apache Kafka

Почему именно консольных?

Есть большое количество продуктов, предоставляющих UI для Apache Kafka, среди них:
1⃣ UI for Apache Kafka, используемый в моих примерах
2⃣ AKHQ
3⃣ Confluent Control Centre
4⃣ Offset Explorer
5⃣ Kafka IDEA Plugin

Однако, судя по опыту, не всегда на проекте есть Web UI, иногда даже может не быть прямого доступа из локальной машины, а на сервере таких инструментов не будет

Помимо этого, данные инструменты умеют далеко не все, что предоставляют их консольные аналоги, а если и умеют, то платно

Поэтому переходим к консольным инструментам, а среди них:
1⃣ Kafka tools — инструменты входящие в состав самой Apache Kafka
2⃣ Kcat — предоставляет более удобный интерфейс, но требует отдельной установки

Давайте остановимся на Kafka tools, и посмотрим, какие операции мы можем выполнить:

📖 kafka-configs.sh
Получить полную конфигурацию брокера/топика
Добавить или обновить конфигурацию брокера/топика
Удалить или сбросить до значения по умолчанию конфигурацию брокера/топика

📖 kafka-topics.sh
Получить список всех топиков
Получить информацию по топику
Создать топик с заданной конфигурацией
Увеличить топику количество партиций
Удалить топик
Удалить все сообщения в топике

📖 kafka-delete-records.sh
Удалить сообщения в топике с самого начала до определенного offset'a

📖 kafka-console-consumer.sh
Прочитать все сообщения с самого начала либо под определенной consumer-group
Прочитать одно сообщение с определенной партиции и offset'a

📖 kafka-console-producer.sh
Отправить сообщение с возможностью указания key,value,headers
Если совместить kafka-console-consumer и kafka-console-producer, можно скопировать все сообщения из одного топика в другой [Например из DLT в основной, чтобы заново обработать сообщения]

📖 kafka-consumer-groups.sh
Получить информацию о всех/одной consumer group
Получить план по сбрасыванию offset'a для заданной consumer group
Сбросить offset до самого начала или определенного значения для заданной consumer group

📖 kafka-log-dirs.sh
Получить информацию об объеме данных в топике по каждой партиции, а также суммарно

📖 kafka-run-class.sh
Получить текущий последний offset в топике
Сделать partition log dump

📖 kafka-reassign-partitions.sh
Сгенерировать и выполнить reassigning plan, по которому можно перераспределить партиции в кластере

📖 kafka-producer-perf-test.sh
Провести нагрузочное тестирование со стороны Producer'a и получить детальный отчет

📖 kafka-consumer-perf-test.sh
Провести нагрузочное тестирование со стороны Consumer'a и получить детальный отчет

И это далеко не все возможности, которые предоставляют консольные инструменты. Я привел лишь основные.

Вы можете попробовать запустить их сами, они доступны на 🐙Github, рекомендую сначала ознакомиться с quick-start.md

До новых встреч!

#sandbox_kafka #cheatsheet #console_tools

 Меню
 Подпишись: @developer_sandbox
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍63
В прошлый раз мы рассмотрели как выглядит одно и то же приложение, при использовании технологий — JDBC, Spring JDBC, Hibernate и Spring Data JPA.

Давайте теперь добавим еще технологий — Spring Data JDBC, MyBatis, JOOQ.

🌱 Spring Data JDBC — реализация ORM фреймворка от Spring. Внутри не использует Hibernate, а отправляет запросы, используя JdbcTemplate.

Имеет свои аннотации [Id, Column, MappedColleсtion и т.д.] в пакете org.springframework.data.annotation.
Поддерживает генерацию SQL на основе имени метода в репозитории.

Какие отличия от Hibernate?
— Отсутствует свой язык запросов [нет JPQL, только SQL]
— Отсутствует Lazy Loading [one-to-many отношение будет получено сразу, вместе с N+1 проблемой]
— Отсутствует кеширование [не отслеживается состояние сущности. Нужно явно вызывать методы репозитория]
— По умолчанию поддерживается только тип Identity для генерации id [поддержку Sequence, UUID нужно написать самим]
— По умолчанию нет поддержки Batch операций [поддержку можно написать через свой абстрактный репозиторий]

Основным подходом является DDD [Domain-Driven Design], и понятие Aggregate является ключевым при работе с фреймворком, например:
— Нет явной поддержки many-to-one [можно получить только id связанной сущности либо объект AggregateReference]
— Нет явной поддержки many-to-many [нужно создать отдельную сущность]
— Каскадные операции применяются только для агрегата [при обновлении агрегата, дочерние сущности пересоздаются]

Пример доступен на 🐙Github

🐦 MyBatis — persistence framework. Имеет более низкоуровневый API, чем Spring Data JDBC/JPA, но более высокоуровневый, чем JDBC/Spring JDBC.

Какие основные особенности?
— В качестве сущности может использоваться POJO [Plain Old Java Object]
— Вместо Repository используется понятие Mapper [имеет свой дополнительный синтаксис при написании SQL]
— Конфигурируется с помощью XML либо аннотаций
— Имеет свой генератор кода, генерирующий простой CRUD и сами сущности на основе БД

Пример доступен на 🐙Github

💡 jOOQ [java Object Oriented Querying] — библиотека, генерирующая DSL [Domain Specific Language] для работы с SQL в формате type safe через fluent API.

Какие основные особенности?
— Генерирует сущности на основе БД, а также DAO классы с набором готовых методов
— Генератор гибко настраивается [можно добавить equals, hashCode. Аннотации JPA и Spring Context и т.д.]
— По умолчанию использует стратегию именования сгенерированных классов по имени таблицы [если их назвать во множественном числе, такие классы и получим. Исправить можно через свою стратегию именования]
— Иногда совмещают с более высокоуровневыми Spring Data JDBC/JPA

Пример доступен на 🐙Github

#sandbox_java_database_tools

Меню
Подпишись: @developer_sandbox
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍82
Во время работы над постом я сталкиваюсь с нюансами, которые не всегда можно правильно описать в самом посте.
Например, из-за объема либо неподходящего контекста

Однако поделиться хотелось бы и для этого я создал чат, в котором планирую писать о нюансах [как что-то работает или не работает] гораздо чаще, ведь для этого не нужно готовить целый пост

Как еще можно использовать чат?
— Анонсы и обсуждение будущих постов
— Можете задавать вопросы любого уровня
— Будем общаться вместе на тему разработки [можно общаться свободно, а нюансы, которые я планирую писать, буду выделять тегами, чтобы их можно было найти]

Недавно посмотрел один интересный доклад, и мой краткий пересказ со ссылкой на сам доклад как раз будут в чате

Присоединяйтесь по ссылке — 📦 Developer's Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2
Что такое Spring Boot и для чего он используется?

🌱 Spring Bootopen-source фреймворк, упрощающий конфигурацию Spring приложений

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

Благодаря convention over configuration подходу, Spring Boot позволяет значительно упростить код. Например:
— подключив spring-boot-starter-actuator в Maven/Gradle мы получаем рабочий функционал мониторинга
— подключив flyway-core и положив файлы миграций в директорию db/migration, они будут автоматически выполнены

За счет чего это работает?

За счет исполнения кода автоконфигураций

Автоконфигурация — обычный бин, помеченный аннотацией Configuration или Autoconfiguration и объявленный в файле META-INF/spring.factories [до версии 2.7] или META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.import [c версии 2.7]

Библиотека, содержащая автоконфигурацию, имеет название Spring Boot Starter

Подключая в наш проект starter, фреймворк автоматически исполняет код автоконфигураций, создавая необходимые бины и исполняя логику, задуманную конкретной библиотекой

А благодаря Conditional аннотациям, такая логика может быть очень гибкой. Например:
— ConditionalOnMissingBean создаст бин, если нет другой реализации
— ConditionalOnProperty создаст бин при наличии определенного свойства в application.yaml

Что еще есть?

Spring Boot предоставляет BOM [Bill Of Materials] spring-boot-dependencies, являющийся готовым набором совместимых между собой версий библиотек

Это дает нам возможность не указывать явно версии для большого количества зависимостей в Maven/Gradle

В наших примерах по работе с БД было много повторяющегося кода. Я вынес общий код в starter и теперь все примеры реализуют один и тот же API контракт:

📚 JDBC
💡 jOOQ
🐦 MyBatis
🪞 Hibernate
🌱 Spring JDBC
🌱 Spring Data JDBC
🌱 Spring Data JPA

#sandbox #java_database_tools_starter

Меню
Подпишись: @developer_sandbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍264
Всем привет! 👋

Последнее время пропал с радаров 🫠

Довольно много времени уходило на подготовку статьи и постоянно откладывал на потом, чтобы написать в желаемом качестве, и вот уже прошел не один месяц 😵‍💫
Помимо этого, стал больше изучать алгоритмы, но чтобы писать по ним статьи, еще нужно разобраться 👨‍💻

Также недавно я проходил Mock Coding Interview у автора канала FAANG Master✈️. Было полезно. Искренне рекомендую вам этот канал, если вам интересна эта тема.

И напоследок:
Как-то в первом сообщении на канале я упоминал, что интересно было бы и самому проводить Mock-интервью [бесплатно] на Java разработчика [Junior, Middle, Senior].

Хотел бы узнать, насколько это интересно вам, - поэтому жду ваших реакций:
👍 — если интересно пройти Mock-интервью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Всем привет! 👋

Наконец-то получилось подготовиться и освободить время под Mock interview 📞

Планирую примерно такой формат:

0⃣ Делаю пост о свободном времени с ссылкой на Google Meet, где можно забронировать встречу, выбрав подходящее время.
1⃣ Встречаемся в назначенное время в Google Meet. [Камера по желанию]
2⃣ Строим план собеседования и разговариваем про опыт. [Собеседование на русском, в будущем можно будет на английском]
3⃣ Вопросы будут про — Java, Spring, работу с БД, очереди. [И некоторые другие общие вопросы, зависит от уровня собеседуемого]
4⃣ Длительность собеседования около часа, но тут как пойдет.
5⃣ В конце делимся отзывами о том как прошло интервью.
6⃣ Mock interview постараюсь построить так, чтобы было интересно специалистам уровня junior/middle/senior.
7⃣ Запись видео индивидуально по желанию, выкладывать на канал не планирую

И уже сегодня хочу устроить тестирование этого формата, есть 2 места, если есть желающие, буду рад 👨‍💻

Забронировать время на сегодня можно по ссылке — mock
Если есть вопросы/пожелания, буду ждать в комментариях 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥133👍3
Всем привет! 💻

Добавил 2 места на Mock interview:
1⃣ В субботу на 18:00 (GMT+3)
2⃣ В воскресенье на 15:00 (GMT+3)

Записаться можно по ссылке — mock [edited: все забронировано]

Напоминаю формат:
1⃣ Встречаемся в назначенное время в Google Meet. [Камера по желанию]
2⃣ Строим план собеседования и разговариваем про опыт. [Собеседование на русском, в будущем можно будет на английском]
3⃣ Вопросы будут про — Java, Spring, работу с БД, микросервисы, очереди и т.д. что является сейчас актуальным
4⃣ Подойдет уровням Junior/Middle/Senior
5⃣ Сразу отвечать на вопросы не будем, а будем идти дальше. Весь разбор и фидбек в конце интервью, где мы обменяемся отзывами

Кое что изменил:
1⃣ Длительность собеседования будет 1.5 часа, в прошлый раз часа не хватило
2⃣ Сделаю митинг публичным и опубликую на канале ссылку, чтобы каждый мог в качестве зрителя зайти и посмотреть. Но запись самого собеседования все еще будет по желанию.
3⃣ Желательно иметь установленную IDE [Я надеюсь успеть подготовить некоторые практические задачи]

Если есть вопросы, буду ждать в комментариях 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
📶 Через 15 минут мы начинаем наше Mock interview, присоединиться в качестве зрителя в Google Meet можно по ссылке
[edited: завершено]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Media is too big
VIEW IN TELEGRAM
Итак, самая первая публичная версия Java Mock Interview [можно сказать бета тестирование 🫠]

Постепенно буду стараться улучшать формат, определенно моему навыку проведения интервью есть куда расти 🤔

В комментариях под этим видео поделюсь более подробным фидбеком и своими мыслями по поводу интервью 📞

Всем большое спасибо за то, что присоединились! 👨‍💻
Особенно респект Максиму за то, что не обладая большим опытом, не постеснялся поучаствовать 👍

Таймкоды:
1. Кратко про опыт 01:27
2. Иерархия коллекций и их реализации 03:27
3. Как работает HashMap 05:10
4. Контракт между equals и hashCode 06:37
5. Типы исключений 07:40
6. Про String Pool 08:59
7. Про try-with-resources 10:06
8. Отличие lambda-выражения от анонимного класса 11:23
9. Про Stream API 12:14
10. Что такое Spring Boot 13:33
11. Жизненный цикл бина 14:45
12. Что такое DI 15:12
13. Аннотация Transactional 16:46
14. AOP 18:02
15. ACID 19:01
16. Задача "Account" 19:44
17. Задача "Error" 29:26
18. Задача "Counter" 01:07:08
19. Финальные разговоры 01:18:09
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23
📶 Через 8 минут мы начинаем наше Mock interview, присоединиться в качестве зрителя в Google Meet можно по ссылке
[edited: завершено]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Media is too big
VIEW IN TELEGRAM
Вторая запись тестирования формата Java Mock Interview 👨‍💻 [почему-то перестало записывать изображение, но только на теоретической части, пришлось вставить картинку 🫠]

Всем спасибо, кто присоединился и особенно за вашу активность! 👍

Я многое для себя подчерпнул 🤔
Поэтому следующим постом, как только его подготовлю, я опишу свои выводы и мысли, о разных способах проведения собеседований ✏️

А в комментариях под этим постом, я оставлю свой фидбек и свои решения задач "Error" и "Person" 🔊

Таймкоды:
1. Кратко про опыт 00:12
2. Разница между монолитом и микросервисами 02:08
3. Как делить на микросервисы 03:39
4. Troubleshooting в микросервисах 04:36
5. Способы общения между микросервисами 06:05
6. Гарантии доставки в Apache Kafka 08:45
7. SOLID 09:56
8. Идемпотентность 15:06
9. Connection Pool 16:40
10. Ключ партиционирования в Kafka 17:42
11. Типы БД 18:42
12. ACID 21:52
13. Блокировки 24:39
14. Индексы в БД 28:21
15. JMM 32:03
16. Отправка запросов в несколько потоков 33:07
17. Разная конфигурация на разных окружениях 35:16
18. Тестирование 36:36
19. Задача "Person" 44:00
20. Задача "Error" 55:21
21. Задача "Account" 01:09:23
22. Задача "Counter" 01:11:19
23. Outbox 01:16:11
24. Финальные разговоры 01:19:53
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍5
Привет! 👋
Поговорим на тему собеседований 💬

Для себя я определяю следующие виды ⤵️

0⃣ Ленивое — собеседующий не имеет четких критериев для отбора кандидата, например, это разработчик, которого попросили провести интервью помимо его работы, а ему это делать лень. В таком случае, просто гуглится топ ~10 вопросов по Java и кое-как формируется слабое представление о том, подходит ли человек. Отсюда такая потребность в вопросах вроде "Отличие ArrayList от LinkedList", "Расскажите про ACID", "Расскажите про контракт equals и hashCode" и т.д. которые можно выучить, и если кандидат даже ни разу не умеет писать код, принимать ответственность и решать реальные проблемы заказчика, он его пройдет. Отчасти от неподходящего кандидата поможет последующий испытательный срок, но он может длиться 3 месяца, а интервью от часа до трех, тут количество сил несоизмеримо, а хочется отсеивать неподходящих кандидатов как можно скорее, скажем так, по принципу fail fast 🙂

1⃣ Тестовое задание — компания выдает задачу, которую за определенное время нужно выполнить. Казалось бы, хороший способ проверить навыки на небольшом проекте, похожем на задачу из реальной работы, однако тут есть свои минусы. Обходится ли такая проверка? Да конечно, человек может обратиться к своему другу Senior'y, найти решение в интернете, т.к. это может быть далеко не первое собеседование в такую компанию и решение уже давно слили в сеть, а постоянно придумывать новые задачи не то чтобы хочется, учитывая, что задача должна быть похожа на что-то реальное, даже если слегка изменить ее вид, суть останется той же. И при последующем обосновании своего решения, если оно вообще будет, также можно большую часть заучить, и с большой вероятностью пройти этот этап.

2⃣ Под проект — собеседующий понимает для какой конкретной работы и с какими навыками ему нужен человек. Вопросы составляются исходя из того, что придется делать на работе. Если много работы с БД, значит вопросы на понимание работы с БД, если писать средней сложности API, значит вопросы по всему циклу написания API. Т.е. здесь работает принцип, чтобы найти как можно более подходящего по навыкам человека для конкретной работы, и не переплачивать за тот опыт, который вероятнее всего не пригодится, а именно не нанимать Senior'a с опытом 10+ лет за много денег, чтобы делать средней сложности API на условно стабильном проекте.

3⃣ Под компанию — в случае, когда в компании несколько проектов, и собеседующий понимает, чем занимается его компания и какие требования должны быть к кандидату, чтобы он подходил под как можно большее количество имеющихся проектов. В данном случае имеет смысл большее количество концептуальных вопросов и их понимание, т.к. если кандидат понимает принципы, например, разобрался с тем как устроен Spring, то поставив его на проект где используется Quarkus, он сможет разобраться в нем достаточно быстро и в приемлемом качестве. Такого кандидата в большей степени можно назвать инженером, чем разработчиком на определенном фреймворке.

4⃣ FAANG — условно стандартный подход, используемый Big Tech компаниями, включающий в себя, например, [Behavioral, Coding, System design] интервью в различных количествах и вариациях. В сети огромное количество материалов "как пройти в FAANG", тем не менее, задача эта не из легких и требует большой дисциплины. Сама идея построения процесса найма высококвалифицированных инженеров по Hard и Soft скилам, достаточно сложная, особенно с масштабом таких компаний. Не всем интересно долго решать задачи на Leetcode, однако таковы правила игры, с которыми многие могут быть не согласны. Что говорить, например, в Meta даже Git не используется, не говоря уже о Spring и других технологиях. Дает ли прохождение таких интервью гарантию, что вы идеальный разработчик? — Да нет, и вот пример.

Конечно, можно комбинировать подходы, но нет 100% рабочего метода, как быстро понять подойдет ли вам кандидат. Даже если вы уверены в своем методе, на определенной выборке кандидатов, у вас все равно будет определенный процент ошибок. Но это все лишь мое мнение 🙂

А что вы думаете по этому поводу?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍72
Наступает 2025 год ♥️🎆

Хочу поблагодарить всех, кто остается на канале и кто только недавно подписался! 🐱

За этот год не так много времени уделял каналу, однако, что-то всё-таки было:
1⃣ Консольные инструменты Apache Kafka
2⃣ Обзор Spring Data JDBC, MyBatis, JOOQ
3⃣ Что такое Spring Boot и для чего он используется?
4⃣ Mock interview 1
5⃣ Mock interview 2
6⃣ Поговорим о собеседованиях

А все предыдущие посты доступны в Меню

———

А в рамках этого поста хочу поделиться каналами, которые время от времени читаю:
🚀 Java: fill the gaps
🚀 Кодируем
🚀 Канал Андрея про бекенд
🚀 javaswag
🚀 Алексей Литвинов | Голосовые сообщения
🚀 FAANG Master

И в каждом из них я находил для себя полезную информацию, так что спасибо и их авторам 🎁

С наступающим 2025 годом! ☃️🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
4🎄15🎉85👍5
Всем привет! 👩‍💻

Я не забил на канал. Часть 1

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

На данный момент единого плана на канал нет, мое видение все еще формируется, и я буду пробовать разные идеи.

Однако в ходе размышлений накопился список того, чем этот канал точно не будет, об этом и поговорим в этой части:

1⃣ Канал под рекламу

Этот канал не бизнес, здесь нет и не будет контентщиков, рекламщиков, закупщиков и менеджеров по рекламе, а каналы такого типа рекламироваться здесь не будут, у нас просто разные цели.

Канал я веду один и моя основная специализация все еще инженер, а не предприниматель или маркетолог (хоть это и безусловно полезные навыки, стоящие обучения).

2⃣ Бесполезный контент

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

— Сгенерированный через AI
— Скопированный у другого автора и слегка отредактированный
— Пересказ документации
— Кликбейт статьи вроде  "JOOQ уничтожил Hibernate!", а потом читаешь статью, а там приложение сложности "Hello World!" на JOOQ

3⃣ Пытаться всем угодить

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

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

4⃣ Прогрев аудитории с целью продажи чего-либо

Контент из серии "как прекрасно можно жить" или "каким успешным можно стать", купив, например, мои курсы (только делается это планомерно, в простой естественной формулировке и с примерами, чтобы было ощущение, что я максимально честен с вами для увеличения продаж).

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

До встречи! 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
527👍11🔥11🎄1
Всем привет! 👋

Внезапное включение, с коллегой решили потренироваться в System Design. А так как я давно ничего не писал, то подумал что можно провести его публично

Если вам интересно послушать или прокомментировать — присоединяйтесь! Начнём уже через 35 минут, в 18:00 по МСК (ссылку на Google Meet отправлю за 5 минут до начала).

До встречи! 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5
Через 5 минут начинаем — https://meet.google.com/fmj-wohu-ahg
👍1
Media is too big
VIEW IN TELEGRAM
Всем привет!

Выкладываю запись нашей System Design сессии как некоторые и просили 👨‍💻

Получилось точно интереснее, чем если бы мы вдвоем сидели и обсуждали систему

Всем спасибо за участие и активность! 👍

А вот пару хороших видео на тему системного дизайна на ютубе:
Открытая сессия по System Design от Тинькофф — Разрабатывается также система бронирования отелей
Доклад на тему System Design интервью в целом — просто хорошее видео о процессе и практическом подходе к интервью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥15
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Всем привет! 👋

Сегодня планируем еще одно тренировочное System Design интервью в 19:00 по МСК

Если вам интересно послушать/прокомментировать/задать дополнительные вопросы — присоединяйтесь!

Ссылку на google meet пришлю за 5 минут в канал, запись будет

До встречи! 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍73
Через 5 минут начинаем — https://meet.google.com/yat-jubt-dur