Joni in Web
206 subscribers
7 photos
7 videos
17 links
Канал Никиты — разработчика с 4-летним опытом в IT.
Делюсь проектами, ошибками и лайфхаками.

🎯 Учиться, учиться — и получить прекрасный оффер!
Download Telegram
Channel created
Интересно, как работает букмекер? 👍

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

Смотри лекции:
Плейлист 1 👈
Плейлист 2 👈
Плейлист 3 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
Как я начал раздавать “безопасный интернет”

Ко мне приходит Никитос и спрашивает:
— Слушай, умеешь настраивать “безопасный интернет”?
Я: — Нет.
Он: — Тогда научишься.

Что использовал:
🔹 Протоколы:
— Outline (на базе Shadowsocks) для шифрования трафика.
— VLS X-Ray с поддержкой VLESS и VMess для обхода блокировок.

🔹 Технологии:
— Telebot на Python.
— PocketBase для хранения данных.

🔹 Серверы:
— Сейчас работает только Германия 🇩🇪.

ShtormBot 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Допустим, вы умеете писать веб-приложения на React ⚛️ и вам нужно делать это быстро, не заморачиваясь с дизайном (ведь чувство прекрасного развито не у всех). Тогда вот что бы я использовал, а что никогда не трогал.

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

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


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

П.с. заметка для друга из Индии 🇮🇳
6
🐍 Скоро Год Змеи, и я решил, что без змейки никуда! За час собрал вечером мини-игру Crazy Snake — простую, но затягивающую. Работает через Telegram Mini App, написана на VK UI Kit + React + Vite + Vercel.

🎮 Играть в Crazy Snake 👈

Заходите, тестируйте и делитесь рекордами!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🏆3
🎮 Тетрис. Куда же без него?

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

👾 Играть 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Joni in Web pinned «Как я начал раздавать “безопасный интернет” Ко мне приходит Никитос и спрашивает: — Слушай, умеешь настраивать “безопасный интернет”? Я: — Нет. Он: — Тогда научишься. Что использовал: 🔹 Протоколы: — Outline (на базе Shadowsocks) для шифрования трафика. —…»
Dola — бесплатная нейронка-планировщик, которая превращает голосовые, текстовые и даже визуальные заметки в чёткий календарь. 🙌

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

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

@hidolabot 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Downloadly.ir — как и узоры иранских мечетей, этот храм скрывает в себе множество всего.

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

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

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

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

downloadly.ir 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
OpenVK — VK анонсировал инициативу по открытию исходного кода своих IT-систем, библиотек компонентов, инструментов и AI-моделей. 😄

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

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

OpenVK 👈

* пост для друга из Индии 🇮🇳
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
DeepSeek - как изменился путь IT-самурая

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

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

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

deepseek.com 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
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 и начать собирать слой трансформаций, чтобы сразу приводить данные в нужный вид для аналитики.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥12🔥7👏4👍31👻1
This media is not supported in your browser
VIEW IN TELEGRAM
Хабр Карьера — сервис для 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 для прогноза зарплатных вилок.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13🐳41
This media is not supported in your browser
VIEW IN TELEGRAM
Я — Никита, и мне не хватает 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 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1073
This media is not supported in your browser
VIEW IN TELEGRAM
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 лучше ловит контекст в длинных описаниях.
- Новые источники: Планируем подключить дополнительные платформы вакансий, чтобы расширить выборку.

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

Подписаться на аналитику в канале 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥112🤔2
Please open Telegram to view this post
VIEW IN TELEGRAM
4😁4🤣1
"Дорогу осилит идущий, а релиз — деплоящий" (с) Дон Кихот, *почти

Пока 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 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83
This media is not supported in your browser
VIEW IN TELEGRAM
Тут могла бы быть ваша реклама, но ни мне ни вам она не нужна 🤪

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

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

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

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

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

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

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

Все о вилках в IT 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥6👍1