ru
Feedback
Библиотека джависта | Java, Spring, Maven, Hibernate

Библиотека джависта | Java, Spring, Maven, Hibernate

Открыть в Telegram

Все самое полезное для Java-разработчика в одном канале. Учиться у нас: clc.to/AATM8w Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4

Больше

📈 Аналитический обзор Telegram-канала Библиотека джависта | Java, Spring, Maven, Hibernate

Канал Библиотека джависта | Java, Spring, Maven, Hibernate (@javaproglib) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 22 338 подписчиков, занимая 6 011 место в категории Технологии и приложения и 29 874 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 22 338 подписчиков.

Согласно последним данным от 02 июля, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -134, а за последние 24 часа — -4, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 8.67%. В первые 24 часа после публикации контент обычно набирает 4.78% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 1 936 просмотров. В течение первых суток публикация набирает 1 067 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 13.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как джависта, навигация, jooq, corejava, hibernate.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
Все самое полезное для Java-разработчика в одном канале. Учиться у нас: clc.to/AATM8w Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4

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

22 338
Подписчики
-424 часа
-277 дней
-13430 день

Загрузка данных...

Привлечение подписчиков
июль '26
июль '26
+4
в 1 каналах
июнь '26
+65
в 1 каналах
Get PRO
май '26
+136
в 3 каналах
Get PRO
апрель '26
+85
в 5 каналах
Get PRO
март '26
+69
в 1 каналах
Get PRO
февраль '26
+103
в 2 каналах
Get PRO
январь '26
+75
в 0 каналах
Get PRO
декабрь '25
+98
в 4 каналах
Get PRO
ноябрь '25
+94
в 1 каналах
Get PRO
октябрь '25
+117
в 2 каналах
Get PRO
сентябрь '25
+120
в 1 каналах
Get PRO
август '25
+93
в 4 каналах
Get PRO
июль '25
+78
в 0 каналах
Get PRO
июнь '25
+118
в 0 каналах
Get PRO
май '25
+106
в 0 каналах
Get PRO
апрель '25
+178
в 15 каналах
Get PRO
март '25
+294
в 52 каналах
Get PRO
февраль '25
+200
в 31 каналах
Get PRO
январь '25
+231
в 51 каналах
Get PRO
декабрь '24
+196
в 38 каналах
Get PRO
ноябрь '24
+216
в 48 каналах
Get PRO
октябрь '24
+253
в 36 каналах
Get PRO
сентябрь '24
+339
в 37 каналах
Get PRO
август '24
+319
в 36 каналах
Get PRO
июль '24
+422
в 35 каналах
Get PRO
июнь '24
+372
в 34 каналах
Get PRO
май '24
+460
в 35 каналах
Get PRO
апрель '24
+438
в 38 каналах
Get PRO
март '24
+610
в 30 каналах
Get PRO
февраль '24
+573
в 32 каналах
Get PRO
январь '24
+561
в 26 каналах
Get PRO
декабрь '23
+466
в 36 каналах
Get PRO
ноябрь '23
+372
в 3 каналах
Get PRO
октябрь '23
+503
в 23 каналах
Get PRO
сентябрь '23
+676
в 0 каналах
Get PRO
август '23
+570
в 0 каналах
Get PRO
июль '23
+446
в 0 каналах
Get PRO
июнь '23
+448
в 0 каналах
Get PRO
май '23
+560
в 0 каналах
Get PRO
апрель '23
+226
в 0 каналах
Get PRO
март '23
+762
в 0 каналах
Get PRO
февраль '23
+359
в 0 каналах
Get PRO
январь '23
+387
в 0 каналах
Get PRO
декабрь '22
+469
в 0 каналах
Get PRO
ноябрь '22
+542
в 0 каналах
Get PRO
октябрь '22
+289
в 0 каналах
Get PRO
сентябрь '22
+368
в 0 каналах
Get PRO
август '22
+439
в 0 каналах
Get PRO
июль '22
+557
в 0 каналах
Get PRO
июнь '22
+503
в 0 каналах
Get PRO
май '22
+275
в 0 каналах
Get PRO
апрель '22
+383
в 0 каналах
Get PRO
март '22
+399
в 0 каналах
Get PRO
февраль '22
+225
в 0 каналах
Get PRO
январь '22
+364
в 0 каналах
Get PRO
декабрь '21
+334
в 0 каналах
Get PRO
ноябрь '21
+297
в 0 каналах
Get PRO
октябрь '21
+263
в 0 каналах
Get PRO
сентябрь '21
+329
в 0 каналах
Get PRO
август '21
+425
в 0 каналах
Get PRO
июль '21
+371
в 0 каналах
Get PRO
июнь '21
+334
в 0 каналах
Get PRO
май '21
+586
в 0 каналах
Get PRO
апрель '21
+702
в 0 каналах
Get PRO
март '21
+633
в 0 каналах
Get PRO
февраль '21
+660
в 0 каналах
Get PRO
январь '21
+568
в 0 каналах
Get PRO
декабрь '20
+18 204
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
03 июля+2
02 июля+2
01 июля0
Посты канала
📹 Что должен делать агент-оркестратор? Посмотрите короткий отрывок из вебинара с Дмитрием Юдиным, внутри концентрат инсайтов о ии-агентах. А если хотите погрузиться в тему с головой, у нас доступна и полная запись этого эфира. Готовы перейти от теории к практике и собрать свой первый продакшн-кейс? Прямо сейчас действует мощная акция «3 курса по цене 1»: 🔥 При покупке VIP-тарифа нового потока «Разработка ИИ-агентов» вы получаете в подарок хардкорный курс «AgentOps» + ещё один любой курс Академии на ваш выбор! Выгода в цифрах: два топовых курса по созданию и контролю агентов обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽. Плюс третий курс бонусом (например, можно подтянуть математику для AI). Ваша чистая экономия — 129 000 ₽! Сомневаетесь, подойдет ли вам формат? Оставьте заявку и пройдите бесплатный демо-урок, чтобы протестировать платформу перед покупкой. 👉 Пройти демо-урок и забрать 3 курса по цене 1

2
📊 UUID vs автоинкремент в качестве первичного ключа Спор древний, но решается не вкусовщиной, а тем, кто и когда генерирует ключ. 🔹 Автоинкремент хорош, когда: — Ключ нужен только внутри одной БД — Важна плотная индексация и предсказуемый порядок вставки (B-tree счастлив) — Не страшно, что /users/42 выдаёт размер таблицы наружу 🔹 UUID (а лучше UUIDv7) уместен, когда: — ID нужно сгенерировать на клиенте/в другом сервисе до записи в БД — Идёт шардирование или слияние данных из нескольких источников — Последовательный ID — это утечка бизнес-метрики ⚠️ Частая ловушка Случайный UUIDv4 как кластерный ключ в InnoDB. Вставки идут вразнобой по индексу → фрагментация страниц, распухание, просадка на записи. Именно поэтому появился UUIDv7, он временно-упорядоченный, ложится в индекс почти как автоинкремент, но остаётся глобально уникальным. Практичный компромисс: автоинкремент как внутренний PK + UUIDv7 как публичный идентификатор в URL и API. Внутри — быстро, наружу — безопасно. ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #CoreJava
935
3
⚠️ Self-invocation: почему аннотации иногда просто не срабатывают @Transactional, @Async, @Cacheable, @Retryable работают через прокси (JDK dynamic proxy на интерфейсах, CGLIB на классах). Аннотация срабатывает, только когда вызов проходит через прокси, то есть приходит снаружи бина. Вызов соседнего метода через this идёт мимо прокси и аннотация молча игнорируется: @Service public class OrderService { public void handle() { save(); // this.save() — мимо прокси } @Transactional public void save() { // транзакции здесь НЕ будет ... } } Сюда же: @Transactional на private, final и static методах не работает — CGLIB не может их переопределить. 🔹 Лечится так: → вынести метод в отдельный бин (самый чистый вариант); → self-injection (инъекция самого себя и вызов через него); → ((OrderService) AopContext.currentProxy()).save() (требует exposeProxy = true); → TransactionTemplate для программного управления. Симптом всегда один «аннотация висит, а эффекта нет». Первым делом проверяй, не self-invocation ли это. ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #CoreJava
1 208
4
ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁 Команда Prоglib.аcаdemy готовит к запуску новые пр
ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁 Команда Prоglib.аcаdemy готовит к запуску новые продукты, и нам нужна ваша помощь. Мы хотим создавать обучение, которое будет решать ваши реальные карьерные задачи и бить точно в цель. Поделитесь своим опытом и ожиданиями, чтобы мы сделали наши курсы еще полезнее именно для вас! Заполнение анкеты займет буквально 2–3 минуты, а с нас — скидка на любой наш курс! 👉 Пройти опрос в Яндекс Формах и забрать промокод
1 202
5
🐸Библиотека джависта #DevLife
🐸Библиотека джависта #DevLife
1 351
6
⚠️ Уже завтра стартует курс AgentOps! Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контр
⚠️ Уже завтра стартует курс AgentOps! Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контролировать и отлаживать ИИ-агентов, чтобы они работали предсказуемо и не сливали бюджет на API. 🔥 Заберите 3 курса по цене 1: ● При покупке VIP-тарифа (осталось 4 места) нового потока «Разработка ИИ-агентов» получаете в подарок курс «AgentOps» + ещё один любой курс Академии (например, «Математика для разработки AI», чтобы глубже освоить направление). ● Три курса обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽. ● Доступна удобная беспроцентная рассрочка, платеж можно разбить на несколько комфортных частей. Хотите прокачать свое портфолио продакшн-кейсом, но пока сомневаетесь? Пройдите наш бесплатный демо-урок, чтобы протестировать формат перед покупкой. 👉 Забрать 3 курса по цене 1 и получить демо-урок
1 312
7
😮 Топ-вакансий для джавистов за неделю Java разработчик — удалёнка — CPS.ai Middle Backend Developer (Kotlin/Java) — удалёнка — ДжазТим Ведущий разработчик Java — офис (Москва) — МТС Банк ➡️ Еще больше топовых вакансий — в нашем канале Java jobs
1 326
8
🔴 Завтра тестовое собеседование с Java-разработчиком 1 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседов
🔴 Завтра тестовое собеседование с Java-разработчиком 1 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Виктор Анохин, старший разработчик из WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Виктор будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Виктору Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.
1 346
9
ℹ️ Liveness vs Readiness vs Startup: где чаще всего путаются Три пробы в Kubernetes решают разные задачи, но иногда бывает путаница между ними. Давайте разберемся. 🔹 Liveness — «приложение живое или его пора убить». Зафейлился → под перезапускается. Подходит для дедлоков, зависших потоков, состояний, из которых само не выйдет. 🔹 Readiness — «готово ли принимать трафик прямо сейчас». Зафейлился → под не убивается, просто выпиливается из Service. Вернулся в норму и трафик снова идёт. Это про временную недоступность: упала БД, прогревается кэш, лёг downstream. 🔹 Startup — «приложение ещё стартует». Пока активен startup probe, liveness и readiness отключены. Без него Kubernetes может прибить Spring Boot приложение, которое просто долго поднимается (привет, миграции и прогрев контекста). Ключевая ошибка: перепутать liveness с readiness. Зафейленный readiness говорит «я живой, но занят не шли мне трафик». Зафейленный liveness — «я сломан, убей и подними заново». Перепутаешь — будешь рестартовать здоровые поды или слать трафик в мёртвые. В Spring Boot это маппится через health groups: management: endpoint: health: probes: enabled: true group: liveness: include: livenessState readiness: include: readinessState, db, redis Если readiness включает проверку БД, под автоматически выпадет из балансировки при обрыве соединения, без единой строчки кастомного кода. ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #CoreJava
1 323
10
🚀 Не уверены, стоит ли переходить на зрелую ИИ-инженерию? Начните с демо-урока! Вот-вот стартует наш курс AgentOps. Если вы
🚀 Не уверены, стоит ли переходить на зрелую ИИ-инженерию? Начните с демо-урока! Вот-вот стартует наш курс AgentOps. Если вы сомневаетесь в формате, просто оставьте заявку и получите бесплатный демо-урок «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов». Для тех, кто готов мощно прокачать портфолио, прямо сейчас действует предложение «3 любых курса по цене 1»: — При покупке VIP-тарифа (осталось 4 места) нового потока «ИИ-агенты» вы получаете в подарок доступ к курсу «AgentOps» + ещё один любой курс Академии на выбор — В деньгах это два топовых курса по автоматизации и контролю ИИ всего за 134.000 ₽ вместо 263.000 ₽ 🔥 А за счет третьего курса (например, можно выбрать «Математику») вы соберете мощный стек и освоите целое востребованное направление. — Платеж можно разбить на несколько частей с помощью беспроцентной рассрочки. 👉 Получить демо-урок и зафиксировать спецпредложение 3 в 1
1 352
11
Объект-ключ положили в HashMap, потом изменили его поле, влияющее на hashCode. Что произойдёт?
1 374
12
🔍 Магия openssl Сертификат на проде истёк, а вы узнали от пользователей? openssl s_client покажет всю цепочку сертификатов, даты истечения и проблемы за одну команду. 🔹 Зачем это нужно — Проверка SSL без браузера: работает на любом сервере через SSH. — Показывает всю цепочку: leaf, intermediate, root. — Видны даты: Not Before и Not After и можно настроить алертинг до истечения. 🔹 Как использовать — Проверить сертификат сайта: openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates — Вся цепочка: openssl s_client -connect example.com:443 -showcerts </dev/null — Subject и issuer: echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -subject -issuer — Проверить локальный файл: openssl x509 -in cert.pem -noout -text — Дней до истечения: echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #Enterprise
1 538
13
🐸Библиотека джависта #DevLife
🐸Библиотека джависта #DevLife
1 498
14
ℹ️ Какой тип индекса выбрать в PostgreSQL Индекс — это мощный инструмент для ускорения запросов, но не все они одинаково полезны. В PostgreSQL есть несколько типов индексов, и вот как не промахнуться с выбором: 🔹 B-tree (по умолчанию) → Лучший выбор для: =, <, >, BETWEEN, ORDER BY. → Поддерживает сортировку. → Используется в 90% случаев. CREATE INDEX idx_users_name ON users(name); 🔹 Hash → Только для точного сравнения =. → Не поддерживает диапазоны, сортировку, LIKE. → Редко используется, но может быть быстрее B-tree на =. CREATE INDEX idx_users_email_hash ON users USING hash(email); 🔹 GIN (Generalized Inverted Index) → Для массивов, jsonb, full-text search. → Отличен при поиске по вложенным структурам или множеству значений. CREATE INDEX idx_data_tags ON posts USING gin(tags); 🔹 GiST (Generalized Search Tree) → Для геоданных (PostGIS), поиска по диапазонам, tsvector. → Более универсален, но медленнее в некоторых кейсах, чем GIN. CREATE INDEX idx_events_location ON events USING gist(location); 🔹 BRIN (Block Range Index) → Для огромных таблиц, где данные физически упорядочены. → Занимает очень мало места. → Не всегда эффективен — зависит от корреляции данных. CREATE INDEX idx_logs_timestamp ON logs USING brin(timestamp); ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #Enterprise
1 614
15
✔️ Spring-тест: рассылка ушла клиентам трижды Подняли 3 реплики в k8s, и клиенты получили одно и то же письмо три раза 👇 📦 Задание — code review Ежедневная рассылка счетов через @Scheduled. @Component @RequiredArgsConstructor public class BillingScheduler { private final InvoiceService invoiceService; @Scheduled(cron = "0 0 9 * * *") public void sendDailyInvoices() { List<Invoice> due = invoiceService.findDueToday(); due.forEach(invoiceService::sendAndMarkSent); } } ▪️ Объясни — Почему @Scheduled выполняется на каждой реплике и приводит к дублирующим отправкам. — Почему «сначала проверим флаг isSent, потом отправим» не спасает от гонки между подами. — Какие есть решения и их трейд-оффы. Ставьте → 🔥, если нравится формат. Если нет → 🌚 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise
1 398
16
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru Proglib.аcademy вмест
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе! Что внутри: — критерии выбора между одним агентом и мультиагентной системой; — разбор популярных архитектурных ошибок; — реальные ограничения современных ИИ-агентов; — практические рекомендации по проектированию агентных систем. 👉 Посмотреть запись можно тут: ● VK ● YouTube
1 594
17
🪄 Магия Spring Boot, которая тихо убивает прод Spring Boot прекрасен ровно до того момента, пока «оно само работает» не превращается в «оно само сломалось — и непонятно, где». Собрал фичи, которые на собесе звучат как удобство, а в 3 ночи как инцидент. 1️⃣ @Transactional, который держит коннект дольше, чем надо Метод помечен @Transactional, а внутри запрос в БД, потом HTTP-вызов во внешний сервис, потом ещё один запрос. Всё это время коннект из пула занят. Даунстрим притормозил на 2 секунды → коннект висит 2 секунды → под нагрузкой пул выгребается, и приложение встаёт колом. CPU не загружен, БД не захлёбывается, а реквесты копятся. Транзакция должна быть короткой и без сетевых вызовов внутри. Внешние интеграции выносим за её границы. 2️⃣ Self-invocation: аннотация, которая молча не работает @Transactional, @Async, @Cacheable живут через прокси. Зовёшь аннотированный метод из этого же класса → прокси в обход, аннотация не срабатывает. Лечится выносом в отдельный бин или self-injection. Но сначала надо просто знать, что так бывает. 3️⃣ Open Session In View — включён по умолчанию spring.jpa.open-in-view=true из коробки. Звучит безобидно, на деле Hibernate-сессия живёт до рендера ответа: ленивые связи подтягиваются уже в слое контроллера, и ты ловишь N+1 там, где сервис давно отработал. Плюс коннект держится дольше нужного. На дев-стенде незаметно, а под нагрузкой привет latency. Осознанно ставим false и грузим ровно то, что нужно. 4️⃣ HikariCP с дефолтным пулом maximum-pool-size=10 по умолчанию. Для лёгкого сервиса — ок. Под реальным трафиком — узкое горлышко, о котором узнаёшь не из кода, а из графика глубины пула под нагрузкой. Тюнить надо не «побольше», а по формуле под ядра БД и характер нагрузки. Просто выкрутить в 200 — это обменять одну проблему на дедлоки в базе. 5️⃣ Actuator, открытый наружу /actuator/env, /configprops, /heapdump — удобно для дебага и шикарно для того, кто найдёт их в проде: креды, конфиги, дампы памяти. Многое прикрыто по умолчанию, но «давайте включим всё, чтобы видеть метрики» и приехали. Открываем точечно, прячем за security, health/metrics держим отдельно от чувствительного. 6️⃣ Ретраи без circuit breaker = retry storm Даунстрим тормозит → добавляешь 3 ретрая с бэкоффом. Но он тормозит, потому что перегружен. Твой ретрай шлёт второй запрос, третий. Помножь на всех клиентов. За полторы минуты лёгкое замедление превращается в каскадный отказ всей системы. Ретраи — только с circuit breaker, jitter и лимитом. Иначе ты не лечишь нагрузку, а добиваешь. Магия Spring Boot — не баг, а разумные дефолты для быстрого старта. Беда в том, что дефолты «чтобы запуститься» и дефолты «чтобы держать прод» — это разные дефолты. Сеньорность тут не в том, чтобы знать всё наизусть, а в привычке спрашивать: «а что эта аннотация делает под капотом и под нагрузкой?» 💬 Какая фича Spring Boot подставила вас в проде в последний раз? ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #CoreJava
1 547
18
🐸Библиотека джависта #DevLife
🐸Библиотека джависта #DevLife
1 633
19
🤖 Запускаем новый курс: «Spec-Driven Development»! Всем надоело, что ИИ-агенты (Cursor, Claude) генерируют сотни строк хаоти
🤖 Запускаем новый курс: «Spec-Driven Development»! Всем надоело, что ИИ-агенты (Cursor, Claude) генерируют сотни строк хаотичного кода, который приходится переписывать. Дело не в нейросети, а в том, что вы заставляете её угадывать условия задачи. На курсе вы освоите методологию SDD (Spec-Driven Development) — управление ИИ через спецификации (спеки) и тесты вместо «вайб-кодинга». Как это работает? До генерации кода вы фиксируете в спеке контракты, инварианты и граничные случаи. Документ четко определяет ЧТО делать, сводя лотерею в PR к нулю. За 8 недель с экспертами из BigTech вы: 🔹 Встроите ИИ в личный или командный workflow. 🔹 Превратите генерацию кода в предсказуемый инженерный процесс. 🔹 Перестанете перепроверять за моделями каждую строчку. 📖 Полный разбор методологии с примерами и готовый промпт для генерации спеки — в нашей статье 👉 Освоить SDD и ускорить разработку
1 691
20
😮 Топ-вакансий для джавистов за неделю Java-разработчик (backend) — офис (Минск) — Приорбанк Java-разработчик (Middle) — удалёнка — Датаюниверс Разработчик Java (AI поисковый ассистент) — от 475 000 ₽ — удалёнка ➡️ Еще больше топовых вакансий — в нашем канале Java jobs
1 749