Разбор реального собеседования | Java Middle | Микросервисы | Базы данных | Spring | Docker Jetbulb

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 มิ.ย. 2024
  • Техническое собеседование на позицию Middle Java Developer.
    Иногда приходится проводить или проходить собеседование без каких-либо конкретных требований к кандидату и сведений о проекте. В таком случае выдвигается общий список требований, без учета специфики проекта или команды. Одними из таких требования являются технологии которые необходимо знать: Java, Spring, PostgreSQL, Docker, Gradle.
    Такой подход вовсе не означает, что компания плохая, подозрительная или же не знает, что делать с потенциальным кандидатом. Компания просто хочет найти потенциального сотрудника и усадить его за проект, что будет актуален в момент onboarding.
    Вот и у нас точна такая ситуация. Компания ищет сотрудника уровнем Middle Java Developer. Нам предстоит задать вопросы, получить на них ответы и разобраться какой шеврон можно присудить кандидату.
    Погнали!
    Программа
    00:00 Описание компании и позиции
    02:08 Нововведения последних версий Java
    05:50 Java Memory Model, Heap, Stack, Object
    08:00 Class Object
    14:20 Коллекции, Collections Framework, Fail-fast, Concurrency
    18:10 Многопоточность, Happened-before, коллекции, синхронизация
    22:12 Spring Boot, стартеры, Spring BOM, валидация данных, Spring Web
    30:38 Микросервисы, Docker, Monitoring, Observability
    39:40 Выводы
    Получи реальный опыт решения коммерческих задач в Agile команде
    до 6 человек iprody.com/
    Запись на обучение и собеседование:
    iprody.com/interview
    t.me/iPrody_Online
    Мы в социальных сетях:
    t.me/jetbulb
    / jetbulb
  • บันเทิง

ความคิดเห็น • 97

  • @faniskhalikov9736
    @faniskhalikov9736 3 หลายเดือนก่อน +5

    Отличный формат! Очень ёмко и без воды. Спасибо!

  • @donlinoleum831
    @donlinoleum831 4 หลายเดือนก่อน +5

    Крутейший контент! Все по делу и интересно смотреть)

  • @user-uq9jp1wk4f
    @user-uq9jp1wk4f 4 หลายเดือนก่อน +4

    Классные объяснения!Спасибо!

  • @baxiskerimzade2690
    @baxiskerimzade2690 4 หลายเดือนก่อน +9

    Спасибо,хочется больше материала для мидлов,как и куда )

  • @walcermelodia
    @walcermelodia 4 หลายเดือนก่อน +2

    Как всегда огонь! Продолжай в том же духе)))

  • @kolabaka6851
    @kolabaka6851 4 หลายเดือนก่อน +3

    Спасибо, хоть понятно мало новичку, но ваши видео невероятно полезны

    • @SinDat
      @SinDat 2 หลายเดือนก่อน

      ничего не понял, но очень интересно?)

  • @user-fy8vj7el5q
    @user-fy8vj7el5q 2 หลายเดือนก่อน +1

    Ох супер, прямо перед интервью посмотрел видос и половина этих вопросов была

  • @mastermaster293
    @mastermaster293 2 หลายเดือนก่อน

    О, яке круте відео! Можно ще таких побільше

  • @Implodeside
    @Implodeside 4 หลายเดือนก่อน +5

    Топ контент, действительно алмаз среди бисера скамеров аля, как войти в айти за 2 секунды.

  • @user-gk3ep5mq9r
    @user-gk3ep5mq9r 4 หลายเดือนก่อน +9

    Сегодня смотрел что нового в 21. Улучшили свитч, добавили виртуальные потоки. Ещё что-то по мелочам

    • @twobeerornottwobeer5973
      @twobeerornottwobeer5973 4 หลายเดือนก่อน +1

      У нас на работе самая последняя java, вот только пишем мы не на спринг

  • @user-se4gg9sk4b
    @user-se4gg9sk4b 4 หลายเดือนก่อน +1

    Спасибо

  • @alias_5800
    @alias_5800 4 หลายเดือนก่อน +2

    Про нововведения: стоит сказать про виртуальные потоки и pattern matching в свитче. Думаю, достаточно

  • @JohnJohn31595
    @JohnJohn31595 3 หลายเดือนก่อน +1

    thank you!

  • @user-oi9yf8ve3i
    @user-oi9yf8ve3i 4 หลายเดือนก่อน +9

    Собеседование на мидла, выглядит как мое, когда меня на Джуна брали 😀

  • @user-sm9ck7wc8c
    @user-sm9ck7wc8c 4 หลายเดือนก่อน +5

    благодаря Escape Analysis и скаляризации из Java 6, объекты, которые являются исключительно локальными и не возвращаются за пределы выполняемого метода, сохраняются в стеке

    • @zakharka3938
      @zakharka3938 4 หลายเดือนก่อน +1

      Скаляризация это оптимизация JIT-компилятора, которая позволяет в принципе не создавать объект при соблюдении определенных условий. А раз объект (как единое целое) не создается, то и хранить его не надо ни в стеке, ни в куче. Таким образом это работает только при соблюдении определенных условий и только при JIT-компиляции, которая запускается не для каждого метода.

  • @user-mz9oz1oc3l
    @user-mz9oz1oc3l 4 หลายเดือนก่อน +2

    Максим, спасибо большое. Интревью на мидла меньше всего в интернете: на джуна дофига, на синьера тоже есть а мидл ну извините))

  • @bratatatata
    @bratatatata 4 หลายเดือนก่อน +1

    👍👍👍👍👍👍

  • @noki1614
    @noki1614 23 วันที่ผ่านมา +1

    видос имба

  • @user-007-1
    @user-007-1 4 หลายเดือนก่อน +3

    Вроде бы не сложное собеседование, а где искать такие вакансии?

  • @user-jp5cs1mj7k
    @user-jp5cs1mj7k 19 วันที่ผ่านมา +1

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

    • @Jetbulb
      @Jetbulb  18 วันที่ผ่านมา

      Речь идет о живой записи? Если да, то это скорее всего невозможно из-за ограничений GDPR. Разве что, снимать только себя и свой голос.

    • @user-jp5cs1mj7k
      @user-jp5cs1mj7k 17 วันที่ผ่านมา

      @@Jetbulb Так я це і мав на увазі, а що навіть голос інтервювера не можна буде записати?(Якщо він дасть дозвіл) Був би дуже корисний контент.

  • @petrivanov1565
    @petrivanov1565 4 หลายเดือนก่อน +5

    Как то однобоко выглядят собесы. Расскажи то, что можно загуглить за 5-10 сек. Имхо, не менее важной дисциплиной является "Решать нерешаемое" и посмотреть за алгоритмом мышления человека.
    - к вам пришли с back 2 back интеграции с 401 ошибкой. Ваши действия.
    - у вас есть X джоб, которые ранаются N раз каждый час, все бегают на одной бд. Джобы падают в рандомных местах. Ваши действия.
    - у вас в бд появилось 3 млн записей апдейта для сущностей, которых у вас нет. Ваши действия.
    - у вас лагает бд. Ваши действия.
    - вы столкнулись с проблемой, на которую не можете найти готового решения, ваши дейтсвия.

    • @user-tk7nh1jw3y
      @user-tk7nh1jw3y 2 หลายเดือนก่อน

      На всё один ответ - гугулить

  • @walcermelodia
    @walcermelodia 4 หลายเดือนก่อน +1

    Первый!

  • @user-bt9hx3ik6e
    @user-bt9hx3ik6e 4 หลายเดือนก่อน +1

    спасибо большое за видео, как всегда лаконично и подробно. можно ли какой-то познавательный видос по вебсокетам(спринговым и не спринговым) и grpc? интересно было бы узнать, с какими технологияим лучше работать в случае с вебсокетами

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +1

      Спасибо за идею и то, что смотришь нас. Обязательно рассмотрим и что-то придумаем.

  • @fnmby
    @fnmby 3 หลายเดือนก่อน +1

    отдельный лайк за картинку на заднем плане

  • @cucu2212
    @cucu2212 3 หลายเดือนก่อน

    на каком сайте такие обявления искать?

  • @TheJabberwahh
    @TheJabberwahh 4 หลายเดือนก่อน +1

    Только и'теребл :) ударение на первый слог. Так же как в нулэбл например.

  • @prayer4675
    @prayer4675 2 หลายเดือนก่อน

    COPY и ADD в Dockerfile отличаются ещё и тем, что ADD распаковывает архивы, то есть не просто копирует.

  • @user-jp6dk4lx9y
    @user-jp6dk4lx9y หลายเดือนก่อน

    У email аннотации по дефолту регулярка ".*", то есть ни на какой имейл паттерн она не проверяет, а лишь на отсутстыие нала

  • @SlevySoddik
    @SlevySoddik 2 หลายเดือนก่อน

    странно что в вопросе о JMM ни разу не спросили про связь happens before и байткод

  • @vitamin2845
    @vitamin2845 4 หลายเดือนก่อน +2

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

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +1

      Привет! Конечно реально. Я тому живое подтверждение. Собеседование в компанию при релокации, именно таким и было. Вопросы были по сути проекта

  • @viktor.florinskiy
    @viktor.florinskiy หลายเดือนก่อน +1

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

    • @Jetbulb
      @Jetbulb  หลายเดือนก่อน +1

      Абстракция

  • @alexandr6055
    @alexandr6055 4 หลายเดือนก่อน +1

    Ты немного затронул реактивщину. Как считаешь, есть ли смысл начинать изучать её, если в джава 21 проект лум по сути ставит целью отказаться от реактивного программирования с помощью легковесных вирт. потоков?

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +3

      Пока Virtual Thread не отполировали, я бы не списывал реактивщину.
      Однако, есть у меня соображения что Project Loom все-таки может ее нагнуть.
      Но как и любой технарь скажу, что надо все смотреть в сравнении. Очень рекомендую почитать приложенную статья. Там четко показывается, что Project Loom не панацея и реактивщине есть место. Но также, что всему есть свое место и применение.
      dzone.com/articles/demystifying-virtual-thread-performance-unveiling

  • @user-lz2ob9vf7v
    @user-lz2ob9vf7v 4 หลายเดือนก่อน +1

    Макс, что думаешь на счёт faang-like подхода к собесам, когда есть тех скрин + панелька (алго + сис диз)? Последнее время прихожу к выводу, что такой подход более прагматичный, да и мир не крутится одной Java, можно и с чем-то другим поработать

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +2

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

    • @user-lz2ob9vf7v
      @user-lz2ob9vf7v 4 หลายเดือนก่อน +1

      Крутой ответ, спасибо. Да, и правда, зависит от компании и её нужд

    • @user-gl1kd2ds4g
      @user-gl1kd2ds4g 3 หลายเดือนก่อน

      Где то читал про менеджера в FAANG, который говорил что они специально придумывают такие сложные интервью, чтобы сотрудники были привязаны к их конторе. FAANG не предоставляют лучших зарплатных/рабочих условий, так что давят "элитарностью" и привязанностью сотрудников через сложный процесс приема

    • @user-tk7nh1jw3y
      @user-tk7nh1jw3y 2 หลายเดือนก่อน

      ​@@user-gl1kd2ds4g Наверное ещё играет роль то что в FAANG шанс попасть на интересный/сложный проект значительно выше чем в большинстве других контор. Всё-таки не все программисты хотят всю жизнь катать спринговые бины между фронтендом и базой данных хоть и за бОльшие деньги. К тому же строчка в резюме что ты успешно проработал в FAANG продолжительное время очень благотворно влияет при смене работодателя.

  • @svetlanafedorova654
    @svetlanafedorova654 2 หลายเดือนก่อน

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

  • @vasylmoshun8241
    @vasylmoshun8241 4 หลายเดือนก่อน +1

    Hello Max,
    Can you give a link where you explore positions your blog ???

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +2

      Hi, for instance
      www.jobs.cz/
      www.glassdoor.com/

  • @tomskiy1700
    @tomskiy1700 4 หลายเดือนก่อน +1

    Мне кажется, сейчас любой ката-самозванец легко порвет подобный собес, расскажет про сборщик мусора столько, сколько не каждый сеньор знает. Такие вопросы на зп в 4,5 кБакса. Видимо собес был старый.

  • @artemivanchikov
    @artemivanchikov 4 หลายเดือนก่อน +2

    Как все это запомнить и держать в голове есть совет? Вроде несколько раз прочитал, разобрался, прошло время и уже не можешь ответить на этот вопрос. Несколько раз начинал учить с 0 потому что понимаю что знания базы очень - не очень.

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +5

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

  • @ivan_xalie
    @ivan_xalie 2 หลายเดือนก่อน

    33:24 Уточнение: имеется в виду не команды docker, переданные контейнеру, а команды в Dockerfile

  • @igormyatlyuk503
    @igormyatlyuk503 4 หลายเดือนก่อน +1

    Макс, классные и стильные очёзы ;D где такие приобрести?

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน

      Приезжай в Прагу, тут не проблема найти)

  • @user-mb1dj3pk2d
    @user-mb1dj3pk2d 4 หลายเดือนก่อน +1

    Это собеседование больше на мидл-, мидл или мидл+?

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +2

      Скорее что-то между начинающим мидлом и устоявшимся.
      Но это все субъективно и очень зависит от компании, проекта и собеседущего

  • @a.egorov85
    @a.egorov85 4 หลายเดือนก่อน

    Это реально вопросы на позицию мидла? Я в основной массе могу на это ответить. Но как попасть на собеседование если нет опыта?!

  • @user-gt4ps4ph6b
    @user-gt4ps4ph6b 4 หลายเดือนก่อน +1

    а надо рассказывать про инкубатор фичи, когда спрашивают про «что нового в java?», то есть structured concurrency его вроде пока как бы нет в java? ну то есть оно может откатиться в теории и код перестанет компилиться.. и вообще немного не понимаю насколько хороший тон использовать такие фичи в проекте. объясните плиз кто понимает)

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +1

      На собеседовании можно говорить и рассказывать все что хочется в рамках контекста вопроса. Отметить заинтересованность и познания в «инкубаторе», лишним не будет.
      В продакшене надо использовать только stable released feature

  • @prayer4675
    @prayer4675 2 หลายเดือนก่อน

    StructuredTaskScope - конечно интересная фича, но она находится в preview даже в недавно вышедшей Java 22. То, что человек нахватался базвородов новых фич не говорит о его способностях к саморазвитию почти ничего. Довольно часто такие люди не знают некоторые базовые вещи. Например о контракте метода equals()

  • @hugayda
    @hugayda 2 หลายเดือนก่อน

    Послушал и понял, что занимая должность синьора я еле еле джуниор.

  • @iKorvik
    @iKorvik หลายเดือนก่อน

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

  • @kirillkamelyazev9559
    @kirillkamelyazev9559 4 หลายเดือนก่อน +1

    это же вопросы для джуна нет?)

  • @dgvgfg
    @dgvgfg 4 หลายเดือนก่อน +2

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

    • @user-gl1kd2ds4g
      @user-gl1kd2ds4g 3 หลายเดือนก่อน

      Ну как поднять кубер локально - довольно же простой вопрос и для джуна. Если есть докер - делается одним кликом)
      А насчет внутреннего устройства спринга - аналогично про устройство памяти в джаве. Знать как работает инструмент изнутри. Вот только знания про устройство памяти в джаве вряд ли когда либо будут полезны, а сделать парочку своих аннотаций в спринге иногда может потребоваться. Чтобы разбираться в этом достаточно изучить доклад "Спринг-потрошитель"

  • @Implodeside
    @Implodeside 4 หลายเดือนก่อน +10

    Проблема почему этот несмотря на свою годность, имеет небольшие охватывался просмотрам. Макс рассказывает интересно сложные темы, которые непонятны для массы которое на ютьюбе(а это зачастую даже не junior lvl), а те кто сталкивается с этими задачами вряд ли ищут ответы на ютьюбе(middle = stackoverflow) возможно этот канал будет первопроходцев ру сегменте, который проложит дорогу действительно качественному контенту, а не то что сейчас наблюдается, тысячное видео какой язык выбрать, как за час стать тем,

  • @PetrKomarov
    @PetrKomarov 4 หลายเดือนก่อน

    В чём преимущество использования var? Просто экономить две секунды на запись интерфейса/класса? Но при этом когда читаешь код нужно смотреть что там тебе метод вернёт, не понимаю в чём профит

    • @user-xz7ps7hn1g
      @user-xz7ps7hn1g 4 หลายเดือนก่อน +2

      Если для понимания кода нужно иметь запись Map map = fillMap(clientIds); то код написан не очень, можно переименовать метод, который возвращает значение, можно переименовать переменную. var itemsByClient = fillItemsMap(clientIds);
      В большинстве случаев var экономит время и не добавляет дополнительной когитивной нагрузки

    • @limbo11111
      @limbo11111 4 หลายเดือนก่อน

      херня это всё, вкусовщина, вместо того чтобы сразу увидеть тип ты будешь прыгать по методам, где не сразу будет очевидно, что возвращается, всё нужно использовать с умом@@user-xz7ps7hn1g

    • @petrivanov1565
      @petrivanov1565 4 หลายเดือนก่อน +1

      если у тебя есть класс с именем в 100 символов, то проще написать var при объявлении переменной. IDEA в реалтайме тебе рядом заботливо напишет, что за тип у этого var.

    • @zakharka3938
      @zakharka3938 4 หลายเดือนก่อน +1

      @@user-xz7ps7hn1g Вы привели хороший пример того как не надо делать. Имена fillMap и fillItemsMap подразумевают что надо заполнить имеющийся объект типа Map. Таким образом вызов fillMap(clientIds) читается как заполнить мапу clientIds, но при этом совершенно неочевидно чем заполнить и что может вернуться в качестве результата, т.е. var тут только затрудняет чтение и так непонятного кода.
      А вот в таком контексте: var map = createMap(clientIds) или var map = createItemsMap(clientIds), использование var уже уместно т.к. не затрудняет чтение.

    • @zakharka3938
      @zakharka3938 4 หลายเดือนก่อน

      Если из контекста неясно какого типа результат, то использовать var не стоит. Например, хороший пример использования: var arr = new ArrayList() или var userList = loadUserList() потому что здесь из контекста ясно c какими типами имеем дело (хотя во втором случае есть шанс ошибиться).

  • @maksgalik8376
    @maksgalik8376 4 หลายเดือนก่อน +1

    Добрый день, можно пройти собеседование на эту вакансию? )

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +1

      Привет! Можно))
      Приезжай в 🇪🇺 с правом на работу и врывайся 😎

    • @maksgalik8376
      @maksgalik8376 4 หลายเดือนก่อน +1

      @@Jetbulb уже в eu )

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +2

      @@maksgalik8376 Все ближе и ближе, от общего к деталям))
      Тогда, тебе необходимо перебраться в Прагу. Как с этим обстоят дела?))

    • @maksgalik8376
      @maksgalik8376 4 หลายเดือนก่อน +2

      @@Jetbulb ​ @Jetbulb был в праге 25 декабря и город показался дорогим, возможно потому что был как турист, особых проблем нету, нужно просто понимать что за проект )

    • @Jetbulb
      @Jetbulb  4 หลายเดือนก่อน +2

      @@maksgalik8376
      Город дорогой только в недвижимости. В остальном, Восточная Европа. Еда, вещи и досуг недорогие)

  • @levvv1000
    @levvv1000 4 หลายเดือนก่อน +1

    Объект может и не аллоцироваться в хип при определенных условиях, см. scalar replacement оптимизацию, можно почитать в блоге у Шипелева. Так что до ответа «все, что связано с объектом хранится в хипе» душный интервьюер может и докапаться

  • @user-jk4lh4gw6x
    @user-jk4lh4gw6x 2 หลายเดือนก่อน

    И это и есть мидл? Походу мне сразу на мидла надо 😂😂

  • @user-zg5cu7ij9f
    @user-zg5cu7ij9f 4 หลายเดือนก่อน +2

    открыл пересмотреть на компе, только сейчас заметил картинку на заднем плане с кораблём😁👍

  • @alenache1
    @alenache1 4 หลายเดือนก่อน +4

    есть ощущение, что половина мидлов и часть синьоров в России такие собесы бы не прошли. До сих пор есть много разрабов, которые так и не умеют в микросервисы и докер. Реально сам видел в чатах как люди с 5-8 летним опытом жалуются, что если нет опыта в м/с и CI хрюши скипают их.

    • @zakharka3938
      @zakharka3938 4 หลายเดือนก่อน +3

      Потому что Java это не только микросервисы. И даже если вы работаете над продуктом с микросервисной архитектурой, далеко не факт что вы будете напрямую работать с архитектурой.

    • @alenache1
      @alenache1 4 หลายเดือนก่อน

      @@zakharka3938 1) понятно, что проекты разные, речь о том, что сейчас тренд на микросервисы, при этом на рыночке не умеющих в м/с БОЛЬШЕ, чем умеющих, поэтому при прочих равных скилах выбор делается в пользу умеющих 2) мы говорим о синьорских и лидовских грейдах, поэтому предполагается, что если она работали на проектах с м/с, то были в курсе что и как там работает 🙂

    • @alias_5800
      @alias_5800 4 หลายเดือนก่อน

      ​@@zakharka3938думаю за 5-8 лет не прочитать ни одной книжечки по мс архитектуре это не профпригодно

    • @tomskiy1700
      @tomskiy1700 4 หลายเดือนก่อน +1

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

    • @user-hr2dk6jy1k
      @user-hr2dk6jy1k 4 หลายเดือนก่อน +1

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

  • @user-hh1ez8mh9v
    @user-hh1ez8mh9v 3 หลายเดือนก่อน

    Говорите помедленнее

  • @user-ub5yg5sf6z
    @user-ub5yg5sf6z 2 หลายเดือนก่อน

    Много неточностей в деталях и часто ведущий думает одно, но говорит другое....

  • @donpedro2125
    @donpedro2125 2 หลายเดือนก่อน

    var без причины - признак дурачины

  • @fromthegreatunknown
    @fromthegreatunknown 4 หลายเดือนก่อน +1

    Картинка на заднем фоне отличная, респект!!!