TGViewer
Channel Public Channel
Сибирский Dev | IT survival

Сибирский Dev | IT survival

@sibdevjun

Выживач в IT. Мои мысли по найму и работе в мире разработки.

Для связи @masian4eg
Subscribers
642
Photos
401
Videos
23
Links
123

Showing posts older than #359 · Back to latest

Older Posts 20 shown
Post #358 526
Что лучше: сложные и интересные задачи 🦄 или такие, как в Severance 🐳 ? 😄
(Зарплату оставляем одинаковую в обоих условиях - 500кк в наносек)
  • 🦄 5
  • 🐳 2
Post #357 699
#рабочийкейс #нерабочийкейс

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

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

Дано: а) Веб-приложение на фастапи (кстати с нуля переписал первый раз на этот фреймворк с джанго) + БД посгрес; б) телеграм бот пишущий свою БД в sqlite.

Проблемы:

1. Главная проблема - и бэк, и бот выполняют +- одинаковый функционал и обращаются к внешнему апи с долгим респонсом. Кроме того, у внешнего апи ограничение на 10 потоков, поэтому в пиковое время часть запросов не обрабатываются и возвращается ошибка.

2. Для решения первого пункта будет уместно объединить БД (бот и бэк будут писать и читать из посгреса) для унификации запросов.

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

Я долго не хотел подступаться к этой задаче, так как было только общее понимание что делать, но никогда такого не делал (частично что-то из пунктов выше делал).
Ну и знаете че помогло?
СЕЛ И НАЧАЛ РИСОВАТЬ СХЕМКИ И КАК ПОЕХАЛО

Шаги реализации:

1. Составили план общей БД

2. Почитали и попробовали реббит для очередей для долгих запросов. Поняли как ограничить очередь на 10 потоков и создали рабочий прототип. Нам подошло

3. Реализация в "проде" началась тут - решили убрать аутентификацию по почте и сделать через телеграм. Я тут больше боялся, оказалось все вообще просто и за пару часов уже все работало. Соответственно первые изменения в БД - заменили почту на телеграм айди.

4. Выпиливание из бэка и бота логики запроса и обработки к внешнему апи. Перенос этой логики в консьюмер. Теперь паблишеры (бэк и бот) отправляют всю нужную инфу в сообщении, а консьюмер ее:
- обрабатывает
- отправляет в апи
- получает ответ
- сохраняет в БД нужные данные
- подтверждает обработку сообщения
- (в случае с ботом еще отправляет юзеру ответ с результатом).

ВСЕ, бэк с ботом работают дальше не ожидая долгого запроса.

5. Теперь, как мне показалось, самое сложное. В БД бота уже есть записи, которые нужно перенести в новую общую БД и структуры таблиц отличаются (напомню у бота склайт, новая - посгрес). А оказалось все просто) На питоне подключаемся к склайт базе, запросами берем все те данные из таблиц и нужных колонок, а потом подключаемся к посгресу и раскидываем полученные данные переменными питона в новую БД в нужные таблицы и колонки. Написал скрипт за пару часов, опробовал на тестовых БД (ну и подебажил) - работает!
Тут небольшое отступление. Все запросы в этом скрипте написаны чистым SQL, но если вам нужен будет такой скрипт на постоянку, то можно сделать более красивое решение с ОРМ, схемами и т.д. Например, сделать дамп базы и сохранить ответ не в переменную, а в файл, потом сделать восстановление БД из файла

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

Если интересны подробности и тонкости, то отвечу в каментах. Тут писать какой-то код и развернутые шаги не дает ограничение в символах ❤️
  • 👍 6
  • 👏 2
  • ❤ 1
  • 🔥 1
  • 🦄 1
Post #356 600
Ну как вам без интернета, интернетозависимые? 😄
  • 🫡 5
  • 🌚 4
  • 👏 1
Post #355
Channel photo updated
Post #354 2.6K
💡 Разница между GPU и CPU на примере пейнтбольных выстрелов

#познавательноеIT

В 2008 году команда "Разрушители мифов" провела интересный эксперимент. Они использовали пейнтбольные пистолеты, чтобы показать разницу между процессором (CPU) и графическим процессором (GPU).

CPU был представлен одним пистолетом, рисующим смайлик шаг за шагом. В то время как GPU был представлен целым кластером из 1100 пистолетов, которые смогли нарисовать картину Моны Лизы всего за 80 миллисекунд. Этот эксперимент демонстрирует, что GPU благодаря своей параллельной обработке данных лучше всего подходит для работы с графикой и сложными вычислениями, в то время как CPU лучше справляется с последовательными задачами☕️
  • 🔥 12
  • ⚡ 2
  • 🦄 2
  • 🤮 1
  • 💩 1
Post #353 534
⬆️ IT тренды в 2025

Топ трендов не мой, а от специалистов из Nexign.com. А я попробую суммировать его для вас.

Глобальные тренды и направления

1. Работа с BigData
Уже сейчас собраны огромные датасеты с данными с различных IoT устройств от пользователей, причем не только бытовых, но и промышленных. Поэтому будет потребность людей, которые будут обрабатывать эти данные и давать информацию по полученным данным
Требуемые технологии: SQL, Python (Pandas, NumPy, Scikit-learn), Apache Spark, Hadoop, PostgreSQL, MongoDB, Cassandra, Tableau, Power BI, Matplotlib или Seaborn, Kafka и облачные платформы для real-time обработки и интеграции данных.

2. Автоматизация и ИИ
Все это поможет бизнесу сокращать издержки и повышать эффективность - аналитика спроса, выявление мошенников и многое другое уже применяют компании.
Требуемые технологии: алгоритмы машинного обучения, TensorFlow, PyTorch и Keras, работа с данными (feature engineering), Deep Learning, MLOps.

Технологии и навыки в 2025 году

1. Искусственный интеллект и машинное обучение (AI/ML)
Python - лучшее для AI/ML с библиотеками NumPy, Pandas, Matplotlib и Seaborn, TensorFlow и PyTorch

2. Глубокое обучение (Deep Learning)
Архитектуры нейронных сетей: сверточные (CNN), рекуррентные (RNN), а также трансформеры (GPT и BERT) — это поможет вам лучше понимать устройство и работу нейросетей.

3. Компьютерное зрение и обработка естественного языка
Для задач компьютерного зрения используйте OpenCV (например, для обработки изображений, распознавания объектов и видеоанализа). Для обработки естественного языка изучите библиотеку Hugging Face Transformers, которая предоставляет готовые модели для задач классификации текстов, создания чат-ботов, анализа документов и генерации текста.

4. Кибербезопасность
Можно изучить:
- Этичное хакерство (Penetration Testing)
- Криптография
- Администрирование сетей
- Управление информационной безопасностью (SIEM)
- Реагирование на инциденты (Incident Response)
- Регулирование и соответствие (Compliance)

5. Облачные вычисления и архитектура (Cloud Computing and Architecture)
Инструменты автоматизации:
- Terraform - позволяет описывать и управлять инфраструктурой как кодом (IaC)
- Ansible - автоматизирует задачи по развертыванию приложений и управлению конфигурацией
- Docker и Kubernetes - Docker: контейнеризация для изоляции и стандартизации окружения. Kubernetes: оркестрация контейнеров, гибкое масштабирование и управление кластером.

6. Проектирование архитектуры
Умение создавать масштабируемые и отказоустойчивые решения для веб-приложений, хранилищ данных и ML-сервисов высоко ценилось и будет цениться всегда

7. Full-Stack разработка
Помимо классического понимания фулстека еще добавляются:
- Web 3.0
- Микрофронтенды

Продвинутое управление продуктом

«Продвинутый менеджмент продукта» в 2025 году — умение сочетать классические навыки (Agile, лидерство, планирование) с более тонкими инструментами изучения пользователей, непрерывной оптимизации процессов и развитием команды.

Тут не смогу все уместить, лучше прочитать в источнике)

Работа с AR/VR технологиями

Опять же, если кратко, то это Unity(C#) или Unreal Engine (C++) для разработки, Blender или Maya для 3D моделинга, работа с устройствами AR/VR.


В общем и целом, каких то прорывных направлений не появилось, лишь складываются стабильные направления и становится понятнее куда можно двигаться в дальнейшем развитии. AI/ML уже не первый год в тренде. Стартапы, хакатоны, проекты включающие в себе сервисы с этими технологиями вызывают максимальный интерес, а если это еще и разработка в сфере кибербеза или AR/VR, то велик шанс получить инвестиции 😏

Как говорится - предупрежден, значит вооружен 😎
  • 👍 5
  • 🔥 4
  • 🦄 3
Post #352 556
💿 MVP Колобок 1.0
  • 😁 7
  • 🔥 4
Post #351 587
Сегодня отмечается Мeждунapoдный дeнь пpoгpaммиcтa 🍺

Странная дата, конечно) Но поводов много не бывает, всех с началом года и скорым началом рабочих будней 🥱
  • 🎉 9
  • 🫡 2
Post #350 740
С новым годом!🎄😏
(в Новосибирске уже)
  • 🎄 12
  • 🍾 10
  • 👍 2
  • 🤩 1
Post #349 735
❔ Что-то мне это напоминает

У низовых айтишников на западе такая дикая конкуренция что на некоторые позиции берут без зарплаты а работник должен еще и доплачивать $500 в неделю.

Все это - просто чтобы получить строчку в резюме и опыт работы.

По-моему, у нас все так же, но не ярко выражено, ну и платить прямо работодателю не надо, а только конторам, которые тебя натаскивают на собесы)

Как недавно заметил коллега, и это похоже на правду - "айтишники это новый 'рабочий класс' ". 🙃
  • 🤯 4
  • 🎄 2
  • 👍 1
Post #348 649
Капец, я думал отделаюсь таким постом выше, тупо некогда и сил нет в свободное время уже что-то вменяемое написать 🥱

Ну давайте так, пока я на обеде что вспомню за год:
- грейданулся (вверх)
- расширился (в стеке шарпом)
- ослеп (до +1, но далеко все так же вижу отлично)
- обучился (прочитал пару книг по шарпам, начал по питону Рамальо, а еще на работе курс по безопасной разработке ПО прохожу)
- устал (реально, не весь отпуск за год отгулял)

Планы потом, я доел уже обед ☕️
  • 🍾 8
  • 🎄 5
  • 🏆 2
  • 🦄 1
Post #347 729
Подведем итоги года

😎😎😎😎😎😎
😎все заебись😎
😎😎😎😎😎😎
  • 😁 8
  • 🔥 7
  • 👍 2
  • ❤ 1
Post #346 684
Проболел почти неделю, но на НГ корпорат сходил конечно же 😎
А в это время на работе время релиза, половина в отпусках (догуливают остатки за год) и поэтому авральные фиксы багов на моих плечах, но я выжил 🌲 Эта неделя хоть и 6 дневная, но зато спокойная, так как все за релизили 🌈

Че, надо какие то итоги подводить 🦄 или "ну их, расскажи че нить более полезное" 🐳? 🤔
  • 🦄 8
  • 🐳 5
  • 🍾 2
Post #345 673
🦗 Cicada 3301

Это моя одна из самых любимых и загадочных историй интернета 🍿 О ней есть статья на википедии:
Цикада 3301 (англ. Cicada 3301) — организация, публиковавшая загадки в Интернете. Все они связаны с защитой данных, криптографией и стеганографией. С помощью них основатели отбирают людей в своё сообщество

Куча статей в яндексе/гугле с разбором и догадками что это за организация и куда они набирали людей. Мой любимый разбор на хабре (часть1, часть2), который читается на одном дыхании как книга. Замечу, что не надо иметь каких-то особых дополнительных знаний. РЕКОМЕНДУЮ 🙄

В фильмах и играх про хакеров и всякого рода взлом не раз упоминается о цикадах:
🗣️ В телесериале «В поле зрения» существует отсылка к «Цикаде 3301» — соревнование Nautilus (4x02), устроенное искусственным интеллектом Samaritan — главным антагонистом 4 сезона.
🗣️ В видеоигре «Watch Dogs 2» в задании «Ghost Signals» главный герой упоминает «Цикаду 3301», указывая на то, что организация не появилась бы, если в природе не существовало бы пятидесятидвухгерцового кита.
🗣️ Пазлы «Цикады 3301» играют важную роль в визуальном романе Anonymous;Code.
🗣️ В видеоигре Assassin’s Creed Origins Сфинкс упоминает «Цикаду 3301».
🗣️ Фильм «Цикада 3301: Квест для хакера» (2021) (Dark Web: Cicada 3301[англ.])
🗣️ Книга «Даркнет. Игра реальности»


В общем, завидую тем, кто только узнает об этом, так как я был в шоке, когда это читал впервые 😎
  • 👍 6
  • ⚡ 1
  • 👎 1
  • 🐳 1
Post #344 606
🚬 systemd

#рабочийкейс

Недавно тут переводил приложение с uWSGI веб сервера на Gunicorn и надо было отделить от одного основного процесса с самим сервером все celery воркеры, rsync, sshd на отдельные сервисы.
Ну и помощник в этом конечно же systemd, который прокинет и разрешит все зависимости между ними 👍

Пример простого сервиса, который будет перманентно крутить ваше приложение и перезапускать, если будут ошибки:
1. Создаем файл с сервисом my_server.service:
Description=my service
Wants=postgresql.service another.service
After=syslog.target postgresql.service

[Service]
EnvironmentFile=/etc/environment
User=my_user
Group=my_user
ExecStart=/opt/my_script.sh --some_flag /some/path/program.py --daemon
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

Description - название сервиса, будет видно в списке работающих и зарегистрированных сервисов на машине
Wants - то, что требуется вашему сервису, чтобы работало вместе с ним. Это мягкая зависимость, есть более жесткая, типа Requires, которая не даст запуститься вашему сервису, если сервис, от которого он зависит не работает
After - после чего ваш сервис должен запуститься. Везде, где указываем названия сервисов перечисление идет через пробел
Restart - сценарий рестарта сервиса, в данном случае, если ошибка программы
RestartSec - сколько ждать перед перезапуском
Остальное должно быть логически понятно и основное же это запуск самой вашей программы - ExecStart. Тут мы пишем команду для запуска 😎

Директив у systemd для гибкой настройки еще много, найти не проблема, основные же выше)

А вот например зависимый от нашего сервера другой сервис another.service:
[Unit]
Description=another some service
After=my_server.service
PartOf=my_server.service
PropagatesReloadFrom=my_server.service

[Service]
EnvironmentFile=/etc/environment
User=my_user
Group=my_user
ExecStart=/opt/some_code.sh

[Install]
WantedBy=multi-user.target

Запускается только после нашего основного сервиса, является его составной частью и перезапускается вместе с ним

2. Кидаем эти файлы *.service в /usr/lib/systemd/system/

3. systemctl daemon-reload перезагружаем все сервисы в systemd

4. systemctl enable my_server.service и systemctl enable another.service включаем наши сервисы

5. systemctl restart my_server.service и systemctl restart another.service запускаем наши сервисы

Теперь наша программа будет запускаться вместе с ОС (linux like), перезапускаться на ошибках и зависеть в правильном порядке между своими процессами 😍
  • 🔥 7
  • 👏 2
  • 🤯 1
Post #343 545
💎 Как вам такая обратная связь?

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

Размышлял, стоит ли выкладывать неудачный опыт, но ведь я не в поиске работы и тут главное не получение оффера, а тренировка себя) Я достаточно ровно и хорошо прошел его, на каких-то глубоких знаниях сыпался, но это гораздо увереннее, чем я это делал год назад)

Но суть поста в другом... Вы посмотрите на эту ОС 😍
Максим, добрый день)
С фидбеком по интервью. К сожалению, на данный момент не готовы пригласить присоединиться к команде.Сейчас нужен сотрудник с чуть большим опытом.

Более подробная обратная связь и рекомендации:

Харды
Хорошее владение синтаксисом питона (кроме андер методов, генераторов)
Понимает взаимодействие с фронтом, часто приходится создавать dataclass(DTO)
В асинхронке проседает
99 задач это rest

Брокеры
Опыт с RabbitMq (pypika), с Кафкой отличия не знает

БД
NoSQL не работал
Опыт с Alchemy,Alembic
Explain analyse не использовал, дебаг запроса в алхимии тоже не знаком
Есть понимание как работают индексы.С транзакциями не знаком

Паттерны
Django (MVC из коробки)
Знает: фабрика, синглтон,адаптеры,

Тесты
Слабая практика юнитов: без моков (monkeypatch) и без фикстур (все в рамках одного теста)

Рекомендации:
1. Подтянуть базовое представление об устройстве и работе баз данных:
Основы языка SQL, Моргунов Евгений

2. Почитать общее об инфраструктуре:
Высоконагруженные приложения. Программирование, масштабирование, поддержка, Клеппман Мартин

3.Фаулер М. Asyncio и конкурентное программирование на Python


Да чтоб все компании и всем соискателям так писали. Или так все сейчас делают и я зря радуюсь? 🌈
  • 🔥 29
  • ⚡ 5
  • 🦄 4
Post #342 484
🎵 Видео кода на ревью

Итальянская метал-группа Nanowar of Steel выпустила трек под названием HelloWorld․java

Текст этой песни полностью состоит из рабочего кода Hello World на Java, и звучит просто восхитительно 😎
  • 🎄 4
Post #341 475
💡 Че, реально?

Не думал, что мои рабочие задачи будут настолько интересны ☝️ Собрал единорогов и ввожу новую рубрику получается и буду делать такие посты значит. Хотя я всегда пытался обходить какие-то технические темы, так как есть во мне еще самозванец, который ставит под сомнение мою экспертизу 😑

Ну тогда пишите чаще каменты, а то оказывается самое интересное вам и не давал 😖
  • 🦄 10
  • 🫡 3
  • ⚡ 1
Post #340 542
🐍 Поднять питона

#рабочийкейс

Есть люди в канале, которые жаждут узнать какие бывают у меня рабочие задачи. Ну если коротко, то у меня в бэкенде кибербезопасностью-то и не пахнет 🙄 Все как везде: возьми с БД данные, че то сделай с ними, отдай на фронт и наоборот.

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

Дано:
несколько микросервисов, которые при установке продукта просто разворачиваются на целевой машине в своем venv со своим интерпретатором и ставит свои зависимости, которые мы тоже принесли с собой в whl файлах.

Решение (одинаковое для всех микросервисов):
1. Отказываемся от venv в сторону poetry
2. Все зависимости проверяем на совместимость с 3.11, если есть несовместимые, то читаем ченжлоги, особенно на предмет breaking changes. В большинстве своем библиотеки поднимались в версиях без проблем, но из-за некоторых приходилось фиксить/адаптировать код под новые версии либ, так как что-то могло быть уже deprecated.
3. Пакуем все в pyinstaller 😎 Кто не в курсе что это, то весь ваш проект пакуется в один исполняемый файл (на винде exe, на линуксе без расширения). Пишем конфиг в spec файл, где указываем версию питона 3.11, какие директории нужны, кроме директорий с модулями питона и все ❤️
4. Далее, правим CI конфиг, где указываем, что теперь при сборке в единый пакет мы компилим репозиторий этого микросервиса pyinstaller'ом, а при установке всего продукта просто копируем исполняемый файл микросервиса в нужное место 🌈

Первый пост о рабочих задачах, хз насколько интересно написал, дайте понять единорогом, если такие посты нужны в канале тоже 🦄
  • 🦄 29
  • 👍 8
  • 🎄 3
  • ❤ 1
Post #339 453
🔍 Эксперимент над нами

Минцифры запускает эксперимент, который позволит разработчикам ПО подтвердить свои навыки и получить сертификат ИТ-компетенций. Эта инициатива разработана по запросу ИТ-сообществ. Наша цель — предоставить гражданам бесплатный инструмент для подтверждения собственного уровня владения различными ИТ-компетенциями.

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

Кто может участвовать
Разработчики ПО, независимо от уровня образования и места работы. Участие добровольное и бесплатное, подтвердить компетенции можно онлайн.

Как это будет работать
⚫ Разработчик регистрируется на платформе подтверждения ИТ-компетенций
⚫ Проходит тестирование и выполняет практические задания
⚫ Получает сертификат ИТ-компетенций в электронном виде в личном кабинете на Госуслугах

❗ Личные данные разработчика никто не сможет увидеть. Если специалист захочет, он сможет прислать этот сертификат своему потенциальному работодателю или просто проверить свои силы в профессии.

Для чего эксперимент
➖ Сертификат подтверждает знания и навыки, востребованные на рынке труда
➖ Работодатели смогут учитывать эти сертификаты при подборе сотрудников

Эксперимент продлится до 31 декабря 2026 года. Оператор платформы компетенций будет назначен из числа организаций, подавших предложения.


Документ еще в стадии согласования, а зайдя по ссылке и авторизовавших через Госуслуги вы можете даже предложить что-то свое или текст изменения, короче повлиять ✊
Надеюсь это не станет какой-то IT биржей труда, где ради каких то плюшек народ будет проходить эти тесты и собеседования 🤔

Короче, посмотрим 🍿
  • 👍 6
  • 🦄 3
  • 👎 2
  • 🤬 1
Older posts →
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 →