TGViewer
Channel Public Channel
Joni in Web

Joni in Web

@joni_in_web

Канал Никиты.
Делюсь проектами, ошибками и лайфхаками.

🎯 Учиться, учиться — и получить прекрасный оффер!
Subscribers
239
Photos
7
Videos
6
Links
16
Recent Posts 18 shown
Post #29 946
Когда в комментариях опять спорят о «найме в IT», а у тебя на руках миллионы дата-пойнтов и готовое исследование от Саши:

ТУТ
👈
  • ❤ 9
  • 😁 6
Post #27 1.29K
Тут могла бы быть ваша реклама, но ни мне ни вам она не нужна 🤪

Коротко о том, что я накодил за месяц в VILKY:

🟢 Автоматизировал парсеры для Finder.work и Vseti.app. Активных вакансий каждый день почти 15к и все в одном даше!

🟢 Перевел нормализацию с YandexGPT на scikit-learn (Зачем? -> Выходит дороговато каждый день нормализовывать 15к вакансий), настроил ML-пайплайн для грейдов и категорий — точность растёт.

🟢 Google Sheets для Tableau: исправил проблему с "тяжёлыми" файлами (<10MB), привёл данные к 3NF.

🟢 Для Finder (много IT и не-IT) ушёл от полного парсинга, внедрил инкрементальный ETL с DAG для проверки статусов вакансий на источниках.

🟢 На DBT пересоздал модели ODS-слоя по всем источникам, переписал всё на инкрементальную логику.

О больших успехах читайте у Саши и Ромы в их каналах!

Все о вилках в IT 👈
  • ❤ 10
  • 🔥 9
  • 👍 1
Post #26 1.17K
"Дорогу осилит идущий, а релиз — деплоящий" (с) Дон Кихот, *почти

Пока Microsoft увольняет разработчиков по 6000 человек, расскажу, как я поднял лендинг для VILKY 😁. Что нового?

➡️Запустил лендинг в Docker Compose с Nginx, на React через Vite + Tailwind CSS (моя любимая связка). Настроил Яндекс.Метрику для отслеживания переходов из рекламы в TG-канал по целевым метрикам.

➡️Обновил Airflow с 2.7.3 до 2.9.2 и переехал на мощный VPS (Timeweb). Причина — фикс багов этой прекрасной версии 2.7.3 и парочки нужных мне библиотек (ошибки в логах Docker) и потребность в производительном облаке.

➡️Автоматизировал парсер Vsety.

➡️Переходим от YandexGPT к собственным моделям — нормализация исторических данных через сторонние LLM слишком дорогая.

О больших успехах читайте у Саши и Ромы в их каналах!

Все о вилках в IT 👈
  • 🔥 9
Post #24 1.12K
YandexGPT — это нейросеть семейства GPT, разработанная компанией «Яндекс». Она предназначена для создания и обработки текстов, генерации идей и взаимодействия с пользователями с учетом контекста. А теперь и мы ее юзаем. Что удалось сделать за две недели, сейчас расскажу 😁:

Пссс... К нашей с Сашей команде примкнул Рома, и мы вместе продолжаем работать над пет-проектом. Рома отвечает за Data Quality, пишет тесты и проводит их. А ещё у него есть канал Котолитик, где он подробнее рассказывает об этом.

⭐️ Нормализация и LLM
Мы отправляем каждую вакансию в YandexGPT с кастомным промптом, чтобы получить нормализованные поля в формате JSON: навыки (например, "Python 3.8" → "Python"), зарплаты (min/max/валюта), локации. Модель неплохо справляется 🫂

Для валидации ответов (в доке YGPT честно пишут, что она может "выдумывать") Рома написал SQL-тесты. Они сравнивают исходные данные, распаршенные по полям, с тем, что вернул GPT. Например, если в вакансии навык "Питон" стал "Python", а ЗП "100k-150k RUB" разложилась на min: 100000, max: 150000, валюта: RUB — тест это подтверждает.

🛫Оптимизация дашборда через DBT
Раньше часть расчётов (агрегации, фильтры) жила в Tableau у Саши — это тормозило дашборд при росте данных. Я перенёс их в DBT: теперь трансформации (например, категории вакансий) происходят на уровне базы данных. Результат: дашборд грузится быстрее, а логика версионируется в коде. Пока перенёс только ключевые расчёты, но уже видно прирост производительности — запросы на 20-30% шустрее.

🐤 Автоматизация Telegram-канала
Настроил автоматическую отправку постов в @vilky_it. Данные из базы преобразуются в дашборды и дайджесты (топ навыков, новые вакансии, метрики - фантастическая красота от Саши), затем через скрипт публикуются в Telegram.

⁉️ Как это работает вместе
- Собираем сырые данные вакансий.
- Отправляем их в YGPT по API.
- Получаем JSON, парсим в базу.
- SQL-тесты Ромы проверяют корректность - что всё ОКЕЙ)
- DBT трансформирует данные для дашборда.
- Скрипт публикует визуализации в канал.

Планы и эксперименты
- Статья YGPT vs GigaChatMax: Уже есть кейсы. YGPT быстрее на коротких текстах, но GigaChatMax лучше ловит контекст в длинных описаниях.
- Новые источники: Планируем подключить дополнительные платформы вакансий, чтобы расширить выборку.

Посмотри на наш дашборд анализа зарплатных вилок 👈

Подписаться на аналитику в канале 👈
  • 🔥 12
  • ❤ 2
  • 🤔 2
Post #23 961
Я — Никита, и мне не хватает 24 часов в сутках 🤪.

Вот дайджест нашего с Сашей (@data_bar) проекта по зарплатным вилкам IT. Что нового за неделю и зачем:

- API на Flask + MongoDB и Geekjob для внешних данных
Поднял API на Flask с JWT-токенами, развернул MongoDB и подключил третий агрегатор — Geekjob. Теперь внешние источники могут слать вакансии (текст, PDF), а мы парсим их и складываем в Mongo. Зачем? Чтобы собирать больше данных с рынка с хорошей изоляцией от основного хранилища.

- DAG в Airflow: MongoDB → ClickHouse
Написал DAG — тянет данные из MongoDB в ClickHouse, приводит к нужной схеме без движков. Зачем? Чтобы сразу получать чистые данные для аналитики (можно было и через движек таблички в CH, но мне нравится через даг).

- 15 дней истории в дашборде 😎
Увеличили глубину дашборда до 15 дней — теперь можно смотреть динамику зарплат и вакансий. Зачем? Чтобы видеть тренды рынка в реальном времени.

Посмотри на наш дашборд анализа зарплатных вилок 👈

Возможно старовато, но мне нравится draw.io 😏
  • 🔥 10
  • ❤ 7
  • ⚡ 3
Post #22 917
Хабр Карьера — сервис для IT-специалистов из экосистемы Хабра, где можно найти вакансии от джунов до сеньоров, сравнить зарплаты и прокачать навыки. Это площадка с тысячами предложений, калькулятором доходов и рейтингом работодателей.

А теперь давайте посмотрим, как мы с Сашей Варламовым (@data_bar) используем данные с Хабр Карьеры в нашем проекте — свежий дайджест обновлений! 😄

🆕 Что нового в дашборде?

Данные Хабр Карьеры
- Появились вакансии для Junior и Intern, которых раньше не было в Getmatch.

Новые возможности
- Сортировка по разным метрикам в таблице вакансий.
- Логотипы компаний с Хабра — теперь таблицы выглядят нагляднее.
- Прямые ссылки на вакансии прямо из дашборда.

Тренды во времени
- Ежедневные данные, чтобы отслеживать изменения: сколько вакансий, какие зарплаты, какие навыки востребованы.

Что можно сравнить?
- Вакансии и зарплаты на Getmatch и Хабр Карьере: где больше предложений, где выше вилки?
- Категории: Junior/Intern против более опытных позиций.
- Динамику рынка: как меняются спрос на навыки и зарплаты.

*Можно найти вакансии с зарплатами до 2 600 000 рублей (да, такие есть 😠).

Посмотри на наш дашборд анализа зарплатных вилок 👈
.

.

.

.

.

Ты ещё тут? Погнали дальше, расскажу про техчасть 🧑‍💻

Чтобы всё работало стабильно, "совсем чуть-чуть" обновил инфраструктуру:

- Перешли с PostgreSQL на Clickhouse, установленный прямо на VPS. В TimeWeb DBaaS нельзя было настроить подключение между базами — провайдер забирает права суперпользователя ради безопасности, но нам нужен был полный контроль. Настроил на VPS всё с нуля: пользователей, роли, базы, схемы, таблицы, плюс фаервол через мой VPN для защиты.

- Docker, даже с запущенным контейнером ClickHouse без нагрузки, потребляет 20-30% CPU. Это значительный оверхед, особенно для нашего проекта, где ресурсы VPS ограничены. В то же время нативная установка ClickHouse без нагрузки использует всего 5% CPU (да, немного - но пока база не 100GB и дагов мало можем себе позволить).

- Мигрировал вакансии с двух платформ из PostgreSQL в Clickhouse, сохранив структуру для анализа.

- Нашел у себя грубую ошибку в инсерте в БД для Хабр парсер - потерял 4 дня слепков. Хороший урок: проверять всё тщательнее.

- Подрубил ежедневное обновление Google-таблиц через Airflow. Собираю данные с Clickhouse (вьюшки с двух платформ) и раскладываю сущности по разным листам для дашборда — сейчас показываем 8 дней.
При создании таблицы из дага через API Google Sheets наткнулись на проблему: курсы за субботу и воскресенье были пустыми в базе. Теперь это учтено — сохраняем курс с пятницы для выходных, чтобы данные были полными.

- Поднял dbt и приступил к стейджингу. Настроил коннект к Clickhouse, выделил stg-слой с основными сущностями (вакансии, навыки, компании). Сейчас raw-слой — это просто распарсенные данные с платформ. Использую BashOperator в Airflow для ежедневного запуска dbt. На подходе — интеграция Great Expectations, чтобы проверять данные на качество прямо в dbt-пайплайне.


😉 Что дальше?

- Подключить третью платформу.
- Завершить нормализацию данных в dbt.
- Автоматизация унификации данных (LLM для навыков, локаций, названий компаний).
- Попробовать ML для прогноза зарплатных вилок.
  • 🔥 13
  • 🐳 4
  • ❤ 2
Post #21 10.7K
GetMatch — это сервис, который помогает IT-специалистам находить работу, а компаниям — закрывать вакансии. В отличие от классических job-бордов, GetMatch сразу показывает зарплатные вилки.

Идея «просто» автоматизировать парсер вакансий зародилась у нас с Сашей Варламовым (канал Саши @data_bar) – как часто бывает, слово «просто» стало началом чего-то действительно масштабного. Сейчас у нас есть полноценная автоматизированная система, которая ежедневно парсит вакансии с GetMatch, загружает их в PostgreSQL, тянет курс рубля и доллара, отправляет отчеты в Telegram и полностью автоматизирует ETL-процесс для аналитики в дашборде.

Поднял Airflow в docker-compose на Timeweb (не реклама, просто нравится админка), чтобы DAG’и можно было запускать и мониторить централизованно. Добавил CI/CD на GitHub Actions, чтобы больше не заходить на виртуалку вручную — всё деплоится автоматически. Был парсер getmatch, но я его переписал под Airflow с Taskflow API. Разделил задачи, сделал их атомарными и настроил on_failure_callback, который отправляет сообщения об ошибках в Telegram-канал. Теперь, если что-то сломается, я узнаю об этом сразу, а не через неделю, когда появится дыра в данных.

База данных PostgreSQL развернута на другом VPS, чтобы разграничить вычисления и хранение данных. Создал таблицы vacancies, vacancy_skills, skills, где skills сразу вынесена в ref-таблицу, чтобы не дублировать текстовые значения. Настроил пользователей и доступы, подключил базу к Airflow. Бэкапы настроены на ежедневное обновление.

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

Теперь в дашборде можно:
• Смотреть историю изменения вакансий по дням
• Анализировать время жизни вакансий и скорость закрытия
• Отслеживать корреляцию зарплат с навыками
• Изучать спрос на скиллы в динамике

Раньше были просто “актуальные вакансии”, теперь есть полноценная разбивка по дням, что открывает больше возможностей для анализа.

Посмотри на наш дашборд анализа зарплатных вилок 👈

В планах — развернуть dbt и начать собирать слой трансформаций, чтобы сразу приводить данные в нужный вид для аналитики.
  • ❤‍🔥 12
  • 🔥 7
  • 👏 4
  • 👍 3
  • ❤ 1
  • 👻 1
Post #19 838
DeepSeek - как изменился путь IT-самурая

Раньше путь IT-специалиста был тернист: документация → Stack Overflow → бесконечные поиски в Google. Сегодня всё проще: GPT → если нашёл ответ, ты молодец; если нет — делаешь кофе и придумываешь новый запрос (но помни: много кофе — тоже плохо! 😄).

Но есть нюанс: доступ к GPT из России может быть ограничен. И тут на помощь приходит Storm VPN. А если хочется альтернативу, китайцы уже придумали своё решение — DeepSeek-V3.

✅ Обходит GPT-4o и Claude-3.5 Sonnet в ряде тестов.
✅ Отлично понимает русский язык.
✅ Работает быстрее, чем ChatGPT.
✅ Доступен для россиян — даже мобильные приложения есть!

deepseek.com 👈
  • 👍 8
Post #18 728
OpenVK — VK анонсировал инициативу по открытию исходного кода своих IT-систем, библиотек компонентов, инструментов и AI-моделей. 😄

А теперь немного личного: я уже почти 2 года использую VKUI (начиная с версии 4). Нашел эту библиотеку, когда начал писал UI для Telegram Mini App, и сразу влюбился. Там потрясающе продумана структура экранов — страницы, модальные окна, попапы, всё на своих местах и легко управляется. 😊

Если интересно, загляни сюда — там наглядно показано, как это устроено.

OpenVK 👈

* пост для друга из Индии 🇮🇳
  • 🔥 4
Post #17 690
Downloadly.ir — как и узоры иранских мечетей, этот храм скрывает в себе множество всего. ✨

Когда-то давно наткнулся на ресурс, где собраны целые сокровищницы “слитых” курсов со всего мира. Они помогут вам разобраться в: Фронтенд ↔️ Бэкенд, Языки программирования на любой вкус, Основы Дизайна, Базы данных, API, Docker, CI/CD, LLM и многое другое.

Почему стоит внимания:
• Курсы с топовых платформ.
• Теория и практика для реальных задач.
• Отличный старт для pet-проектов и новичков.
• Возможность выучить персидский гуляя по сайту 😄

Курсы с таких платформ как:
• Udemy
• LinkedIn Learning
• Coursera
• Pluralsight
• Skillshare

"Не сужу, хорошо сливать курсы или плохо, но кто ищет — тот всегда найдёт."

downloadly.ir 👈
  • 🔥 6
Post #16 617
Toki — бесплатная нейронка-планировщик, которая превращает голосовые, текстовые и даже визуальные заметки в чёткий календарь. 🙌

Почему это мне нравится:
• Пересылка в бота сообщений в Telegram и WhatsApp. Записываете голосовое, а нейросеть разберёт его и составит расписание.
• Интеграция с Google Calendar, Apple Calendar и CalDAV для синхронизации на всех устройствах.
• Напоминания о делах в нужное время.
• Бесплатно и без рекламы.

+ Боту можно пересылать целые разговоры из нескольких сообщений, и AI сам разберётся, что важно, а что нет, чтобы составить ваш график.

@hidolabot 👈
  • 🔥 7
Post #14 472
🎮 Тетрис. Куда же без него?

Добавил в GameBoy легендарный Тетрис. Классика, проверенная временем!

👾 Играть 👈
  • ❤ 5
Post #13 447
🐍 Скоро Год Змеи, и я решил, что без змейки никуда! За час собрал вечером мини-игру Crazy Snake — простую, но затягивающую. Работает через Telegram Mini App, написана на VK UI Kit + React + Vite + Vercel.

🎮 Играть в Crazy Snake 👈

Заходите, тестируйте и делитесь рекордами!
  • 🔥 6
  • 🏆 3
Post #11 604
Допустим, вы умеете писать веб-приложения на React ⚛️ и вам нужно делать это быстро, не заморачиваясь с дизайном (ведь чувство прекрасного развито не у всех). Тогда вот что бы я использовал, а что никогда не трогал.

Что бы использовал:
1. Material UI
• Большой набор компонентов из коробки.
• Легкая кастомизация и темизация.
• Активное сообщество и регулярные обновления.
2. Chakra UI
• Современный и минималистичный дизайн.
• Высокая кастомизация через стилизации.
• Постоянные обновления и активное развитие.

Что бы не использовал:
1. Bootstrap
• Шаблонный дизайн, который сложно кастомизировать.
• Тяжеловесный и может замедлять загрузку приложения.
2. Semantic UI
• Меньшее сообщество и реже обновляется.
• Сложнее в настройке и кастомизации по сравнению с современными библиотеками.


Если вам нужно быстро создать React-приложение без лишних хлопот с дизайном, рекомендую связку Vite + Vanilla Js + Material UI или Chakra UI.

П.с. заметка для друга из Индии 🇮🇳
  • ⚡ 6
Post #9 427
Интересно, как работает букмекер? 👍

Лекции от Евгения Лебедева — человека, который знает всё о ставках. Если ты хочешь разбираться в аналитике и делать осознанные прогнозы, это точно для тебя.

Смотри лекции:
Плейлист 1 👈
Плейлист 2 👈
Плейлист 3 👈
Post #6 327
Post #1
Channel created

About this channel

How can I read @joni_in_web without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Joni in Web: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Joni in Web have?
Joni in Web (@joni_in_web) has 239 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Joni in Web know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →