Айтигребец
666 subscribers
182 photos
45 videos
1 file
137 links
Айтигребец - канал душного сеньора помидора.

Ссылочки, мысли и прочая IT-годнота. Технологии, статьи, интервью etc. Расширяем кругозор и гребём тугеза.

17 лет фуллстека, сейчас мастли бэк. 10 лет .NET, 7 лет Node.js

Связь : @ytrihT
Download Telegram
Что вы сделаете, когда по пути на работу найдёте на дороге красивую флешку, на которой будет значок биткоина?

Всё шире распространяются атаки так называемых Rubber ducky usb устройств. В двух словах, флешка это не флешка, а эмулятор клавиатуры. Как только вы вставляете её в ваш ноутбук, она определяется системой как виртуальная клавиатура, а что произойдёт дальше уже зависит от фантазии хакера.

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

Такой вид атак не новый, еще зародились они и стали общеизвестными в далёком 2010-ом. Ну а новые версии выходят постоянно. А в сети вы сможете найти куча готовых скриптов для ньюхацкеров.

Ну и не одними флешками едины. Это может быть как usb-грелка для кружки, так и, например, usb-вентилятор - всё, что может быть воткнуто в ваш разъём ноута. Притом сам разъём не важен, это может быть и type-c и lightning.

И самое забавное, что по сути нет никакой защиты от такой атаки кроме как хардварного запрета вообще вставлять новые флешки. Но как понимаете - делают это только там, где и правда думают о безопасности. Т.е. практически нигде.

Впечатлились? А как вам ... обычный usb кабель, который кроме всего прочего умеет в Wi-Fi и удалённый доступ в реальном времени?

Круто. Но не для безопасников. Им не очень, да 😄

В общем, кип ин майнд, как говорится 😉 А то вставите и сотрёт оно все ваши закладки с порно. Чё вы потом делать-то будете...

Тут - можно про шнур почитать, а вот тут и тут про usb устройства.
👍15
Пара советов по прохождению собеседований и личный опыт

Гамарджоба, гуйс 👋

На прошлой неделе искал себе новую лодочку для гребли и хочу поделиться кое-какими заметками/советами.
Позицию искал синьорскую на nodejs стек, так что ждуны джуны - не обессудьте с топика "чё спрашивали" :)

🚀 Пара советов :

1) У вас же есть аккаунт на прекрасном djinni.co? Если ещё нет - вперёд. Это отличный украинский сервис по анонимному поиску. Даже если у вас уже есть работа - всегда полезно там мониторить предложения. В двух словах - создаёте аккаунт, заполняете свои скиллы, желаемую зп и рекрутёры сами вам кидают релевантные вакансии. Ну а дальше просто decline/share CV - по настроению. РФ и РБ как локации для поиска заблочены, Однако, если вы в релокейте или ищете Full-Remote - смело можно ставить какой-то другой город и искать вакансии в том же Киеве/Львове и тд, к примеру. +там можно посмотреть в целом спрос/предложение по конкретным стекам прям в графиках - оч полезно с точки зрения понимания текущих вилок рынка. В общем, хайли рекомменд!

2) Не ждите, пока вам напишут. Ищите сами. На том же джине прилично вакансий и добавляются каждый день, удобные фильтры и прочее. Проходитесь раз в 2-3 дня и закидывайте "удочки". Сегодня рынок довольно нестабильный даже для сеньоров, не говоря уже о junior/middle. К сожалению, констатирую факт, что и вилки просели и спрос туда же ушёл. До войны в Украине и трава позеленее была и реки пошире разливались. Однако не только в этом дело (об этом чуть ниже). Расширяйте вашу воронку коммуникации любыми доступными средствами, за спрос в нос не бьют

3) Сделайте себе уже наконец нормальный CV. Да-да, не вот этот вот типичный docx с перечислением где вы учились и какие курсы прошли и горсткой технологий из разных областей, а НОРМАЛЬНОЕ ЧЕЛОВЕЧЕСКОЕ CV в PDF формате. Очень рекомендую сервис https://www.canva.com/, просто, бесплатен и удобен.

Пару советов по CV :
- желательно не больше двух страниц
- не кричащий дизайн, пастельные тона - самое оно. Никаких красных бэкграундов, минималистично.
- сделайте нормальное фото. Фотка с тусы не подойдёт. Если нет - попросите кого-нибудь сфоткать вас на фоне белой стены с хорошим освещением и отредактируйте в каком-нибудь бесплатном редакторе, если требуется (советую https://pixlr.com/ - отличная штука для быстрых правок). Фото и дизайн это вообще первое, за что цепляется взгляд HR'ов. Мой CV выглядит как-то так.
- не вываливайте в CV много информации, опишите ваш опыт и технологии за последние пару лет, не больше - всё остальное из вас и так вытрясут на интервью если захотят.

4) Если у вас до сих пор не дошли руки до заполнения LinkedIn'а - сделайте это. +начинайте добавлять по 100 ЛЮБЫХ эйчаров в свои коннекты (искать можно через встроенный поиск по нужной стране. Дело в том, что hr закидывают удочки в основном среди тех, кто у них в так называемом первом круге. Вы там тоже должны быть. Обязательно пометьте аккаунт как "Open to work" и заполните скиллы.

5) Ведите заметки по каждому интервью, которое проходит. Что за компания, ссылка на вакансию и кто контакт +где связь (email/linkedin/telegram и тп). +обновляйте инфу после каждого последующего интервью. Как только в вашем стеке накопится больше трёх компаний - вы начнёте путать примерно всё - проекты, имена, названия самих компаний, впечатления от собеседований и прочие нюансы. Это реально must to do. Просто блокнот по заметочке на каждую вакансию, где вы уже в процессе собеседований.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Часть 2.

6) Старайтесь откидывать технические собеседования в компании, которые вам действительно важны "подальше" по времени, а "так себе" - поближе.
Подумайте, сколько вы вообще готовы ходить на технические, т.к. каждый собес будет вас выедать морально. Неделя? Две? Вот этим отрезком и оперируйте.
Во-первых, вы сможете "натренироваться" на вакансиях, которые менее интересны и тем самым понять что вообще спрашивают и в целом апнуть свои знания во время этих собесов. Во-вторых, если вам предложат офер в самом начале - особо никто две недели вас ждать не будет - высокий риск того, что ребята найдут кого-то, кто сможет быстрее ответить и позиция закроется. В-третьих, к более желанным собеседованиям у вас уже могут быть оферы на руках, что в целом делает вашу позицию сильнее, а hr'ов заставляет рассматривать вас в ускоренном порядке +предлагать условия получше. Поэтому такая стратегия втройне имеет смысл.

7) Переносить "пре-скрины" с hr эт нормально, не бойтесь это делать, если вы не успеваете или ещё чего. Переносить технические - крайне не рекомендую, т.к. обычно на них уже аплаится 2-3 человека, чьи окна могут быть расписаны и после переноса к вам может сложится в целом так себе отношение, т.к. вы подобными мувами "дёргаете" людей. А дёргаться никто не любит :)

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

9) Ну и последнее и самое очевидное - приходите на митинг за пять минут до начала. Это просто правило хорошего тона 😉


🚀 Что нынче спрашивают :

Для начала обозначу что искал : backend, nodejs, nest, js/typescript.

Поехали.

Много базовых вопросов : Event loop - вызубрить и понимать +что находится под капотом на уровне системы(какие либы и чем асинхронность роляет). +вопросы на nextTick() vs setInterval() vs setImmediate(). +вопросы чем можно забить кью/стек.
Промисы. Тоже от зубов чтобы отскакивало. Задачку почти везде накинули на них.+знать Promise.All/Race.
EventOmitter. Cтримы - зачем, в чем преимущества, какие бывают в nodejs. Spread/rest операторы. this - что такое, подвохи и тд. Стек/Очередь/Дерево/Array vs List.

В целом - много архитектурных вопросов. SOLID (+DRY,KISS,GRASP) - куда ж без них родимых, Парочку паттернов проектирования из GoF (Observer, Adapter, Facade, Синблятон). DDD как подход. FIFO и LIFO в чем отличие. Понимание Dependency injection / Inversion Of Control. Паттерн SAGA. Задачки на "а как бы ты сделал в микросервисах вот то-то и то-то", message brokers и варианты взаимодействия между сервисами. RetryPolicy - что такое, какие бывают, как реализуются. Идемпотентность (как в рамках HTTP Methods, так и в рамках асинхронщины на уровне микросервисов). Мультитрединг. Redis (pub/sub, distributed lock). CQRS что такое и как реализуется. UnitOfWork паттерн. Парочка хитрых вопросов по Prometheus было (что удивило). Виды тестов, метрики coverage'а, mock vs stub.

Довольно много вопросов по базам данных. Принцип выбора sql/nosql. Что такое и как работают индексы (какие минусы есть), задачки на шардирование, профайлинг запросов. Задачка на "выкатку новой схемы" без потери запросов/данных. ORM - плюсы и минусы, как решать. Active record vs Repository паттерн.

На удивление почти не спрашивали о : Typescript, Nest, OOP, Docker, алгоритмы.
🔥3👍2
Часть 3. Заключительная :) (ох уж эта телега жадная... 🤨)

Еще пару заметок :
- 3 этапа интервью довольно частое явление. HR, потом беседа с технарями, а потом архитектурно-технические с кем-то повыше.
- Всем вообще похер чё ты в свободное от работы время делаешь, какие ресурсы читаешь, как развиваешься и какие пет-проекты разрабатываешь. 0 Вопросов в этом поле :) Аж обидно было, пхх. Однако - именно опыт с пет-проектов меня очень часто выручали в ответах.
- чувствуется довольно большая конкуренция. Даже если есть ощущение, что хорошо прошёл техническое - это сегодня не гарантия офера. +видно по вилкам предлагаемых зарплат. Во-первых, война в Украине выбросила на рынок много людей из РФ/Украины + в целом сейчас идёт технологический спад в отрасли, приостановка найма,массовые увольнения и прочее - динамика негативная. Мб и ненадолго, посмотрим. Сеньорам кнешн полегче, но наше море штормит. Всем джунам и мидлам - держитесь за грот-мачты. Вилки смотрите на том же джинни.
- Лайв-кодинг был, но супер-минимальный в рамках "че дописать нужно" или "почему этот код плохой".

Уот как-то так. Такой вот опыт и забег длинной в полторы недели. Если вопросы есть, вэлкам душнить в комменты 😊 Ну и 👍 не забудь! ^^
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥3👌2🌚2🔥1
👍2😁1
Конфа DotNext на прошлой неделе выложила на ютубе дофига полезных докладов! Ловите ссылочки :

Григорий Кошелев — Kafka: от теории к практике
Андрей Парамонов — gRPC: наш опыт внедрения. Почему всегда он?
Евгений Пешков — .NET: AOT в 2022
Анатолий Жмур — Поговорим о хэш-функциях
Н. Липилин (PVS-Studio) — SAST и SCA: поиск дефектов безопасности в коде проекта и его зависимостях
Круглый стол. Споры об аутентификации и авторизации на платформе ASP.NET Core
Денис Тарасов, Дмитрий Афанасьев — Атакуем цепочку поставок
Сергей Васильев — Обработка XML-файлов как причина появления уязвимостей
Сергей Баранов — Многоликий DDD
Вадим Мартынов — C# vNext: 20 фич из будущего
Круглый стол. Как стать сеньором
Павел Тупицын — Как написать высокопроизводительный драйвер базы данных
Антон Нечуговских — Как мы написали свой lock-free dictionary
Adam Furmanek — Ordering the Chaos: Cleaning Logs and Ordering Events in Microservices
Александр Поломодов — Как развиваться, если ты уже Senior Software Engineer
Алексей Патрин — Обезболивание enterprise-разработки. Применяем лучшее из мира микросервисов
Константин Ахметов (ПСБ) — Бизнес-конфиги
Леонид Андриевский — FFmpeg в приложениях .NET для работы с медиафайлами
С.Огородников, Р.Просин, К.Хабаров — Аутентификация и авторизация на платформе ASP.NET Core
Станислав Сидристый — Тонкие настройки стандартного ThreadPool
Круглый стол. Про Kafka и не только
Станислав Флусов — Миграция с MS SQL в PostgreSQL, когда нужно ещё вчера

Я уже делал похожую подборку с Highload конфы, можно найти по тегу #доклады 😉
2👍2
Когда выслал другу мем, а в буфере был файл с кодом...

meme-orienting-programming!
😁3
stackoverflow наконец одарил новой ачивкой. top 1.00% this year 😃 Господа индусы судя по всему подвинулись на скамейке хД

Вообще, на стеке я уже почти 11 лет. И стараюсь всегда, когда не нахожу ответа - постить свои солюшены. Но по факту, рейтинг набирается довольно рандомно. Если повезет, один-два ответа взлетают и становятся с 100+ апвотами, 99% же или набирают пару-тройку, или же вообще остаются без внимания. В целом, всё так и должно быть - насколько ты полезен сообществу, настолько и апвотают. А полезны обычно какие-то супер-базовые ответы и обычно там уже всё отвечено до тебя. Довольно узкие и сложные ответы может кому-то и экономят время, но по сути - единицам. Какого-то "быстрого" пути я не заметил, но как видно и стратегия "нашёл проблему -> не нашёл решения -> оформил и запостил" на долгосрочной дистанции всё же даёт свои плоды. Тут как и везде - делаешь что-то на постоянке -> рано или поздно получаешь профит. Возможно, еще один вариант - коммитаться во всё новое, новые технологии/фреймворки. Там и проблем больше и таких же заинтересованных в решении этих проблем.

Есть ещё возможность задать сложный вопрос, о который бьёшься головой не первый день и "закинуть" n репутации в качестве мотивации вникнуть в твой кейс. Тот, кто ответит правильно и забирает эти n поинтов себе в карму. А у тебя отнимается. Но тут есть проблема - если никто не ответит, награда присуждается то ли рандомом, то ли как-то ещё, т.е. это не гарантирует, что вы решите проблему. Я разок так вот и "задонатил" кому-то. Спорненько :)

Кстати, не понятно почему не "1%", а "1.00%". Видимо я словил эджкейс, т.к. сотые уже идут у людей <1%. Зарепортить чтоль 😂

И да, по моему опыту на собесах всем фиолетово на твой профиль в stackoverflow :) Так что бустить специально смысла не вижу.

Просто очередная приятная ачивка, не более того 😉 Делитесь в комментах своей статистикой, если есть, интересно глянуть. Всем бобра.
👍9
djinni.co поделилась очередными графиками со своей платформы анонимного поиска.

Выводы делайте сами :)

ps. всмысле 12 процентов с 5+ годами опыта игнорят adult домен... 🤔
Тоже мне гики! Порно индустрия вообще-то всегда тянула технологии вперёд 😤
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Дуров что, не торт уже? Что за грустные обновления, гм.

Telegram интродьюснул "темы" в чатах. Я уж порадовался, мол как "threads" в slack, но .... нет.

В двух словах : у чатов с 200+ людьми можно создать "топики", т.е. как форумы в 2000-ых, только с одним уровнем вложенности. Посмотреть пример можно тут : @TheForum. Т.е. это просто... папка с группами. Всё. *музыка из ералаша*.

В текущем виде я не могу себе представить того, кому это было бы нужно, так как :

- нельзя подписаться только на один топик. Вступаешь в один - у тебя добавляется весь "форум". Отлично ))
- еще хуже, что и уведомления у тебя от всех топиков, отключить как-то отдельно нельзя. Только замьютать, но это мало что меняет, т.к. в 99% я уверен, что все и так мьютают все общие чаты, поэтому написали ли только в вашем топике или в каком-то левом разобраться по счётчику уведомлений будет сложно. Точнее невозможно.

Вот и придумайте хоть один кейс, когда такое поведение подойдёт. Я не могу :) Я папками намного лучше сделаю то же самое. Профита ноль.

Может кто понял сакральный смысл этого обновления? Вэлкам в комменты.
👍6
Небольшая задачка по #aws #serverless #telegram_bot

Есть тг бот, работает на AWS Lambda. Приветствует входящих пользователей. Вопрос - как сделать так, чтобы бот через час удалял за собой это сообщение? Условие : serverless решение. В рамках AWS.

Цель : нет нагрузки -> нет трат. Собственно, в этом же и есть преимущество serverless идеологии.

Первое, конечно же что приходит на ум - деплойнуть банальный воркер на минимальный EC2, который будет имитировать простейший scheduler. Может быть cron, может быть простой скрипт зацикленный, который будет ожидать "задания" в виде {messageId}, который нужно удалить в {dateTime}. Но... не хотелось без постоянно поднятой машинки.

Дальше приходит на ум амазоновская очередь SQS. Закидываем в очередь сообщение, ставим ей какой-то readyToHandle в 60 минут. Он через час становится видимым и подписываем на очередь еще одну лямбду, которая автоматически триггернется как только сообщение станет видимо в очереди.
Подходит, но есть одно но - SQS и правда имеет параметр сообщения "DelaySeconds", однако, его максимальное значение - 15 минут. Не подходит.

Вот в целом-то и все доступные варианты, если глянуть поверхностно. Но к счастью, есть ещё один...

Решение

Оказалось, на aws есть сервис States - AWS Step Functions. Машина состояний. Что это такое?

Step Functions — это сервис бессерверной оркестровки, который позволяет комбинировать функции AWS Lambda и другие сервисы AWS для создания критически важных для бизнеса приложений. С помощью графической консоли Step Functions вы видите рабочий процесс своего приложения как серию управляемых событиями шагов. Step Functions основана на конечных автоматах и задачах. Конечный автомат — это рабочий процесс. Задача — это состояние в рабочем процессе, которое представляет собой единицу работы, которую выполняет другой сервис AWS. Каждый шаг рабочего процесса — это состояние (с) habr

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

Одним из "степов" может выступать кубик с названием "Wait", который отвечает за "паузу в n ms". Выглядит это вот так. И этот wait time можно в том числе указывать и прграммно. Т.е. данные могут переходить по этим состояниям.

Собственно...подходит! Флоу получился такой :

1. Входит новый пользователь. Лямбда ловит вебхук от телеграма, приветствует пользователя.
2. Лямбда триггерит созданную стейт-машину, передаёт туда условный {messageId} сообщения, которое нужно удалить и время, через сколько секунд.
3. Запускается стейт-машина/флоу на aws. Она переходит в режим ожидания. А через час вызывает мою лямбду, передавая ей мой джсончик с данными.
4. Отдельная лямбда, выполняющая только одну функцию - удаление из тг чата... удаляет сообщение.

PROFIT!

Стоит это всё копейки, при минимальной нагрузке. Что-то а-ля 1000 переходов состояний за 0.025$ + копеечка за лямбду.

Может кому когда понадобится 😉
Если вдруг у вас есть другие workarounds - пишите в комментариях, интересно будет почитать
👍12💩1
Ворнинг! #неайти! Суббота же, всё таки, камрады 😊

Тема : Когнитивные искажения

Ссылка на видео (реф со скриншота) : https://www.youtube.com/watch?v=VT9i99D_9gI
Ссылка на статью с #habr'а : https://habr.com/ru/post/694312/

Там еще много всякой годноты в статье.

update : отдельно рекомендую классную дуэль там же в комментариях между почитателем карт Таро и приверженцем научного подхода 🐱

Приятного чтения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Хауди Хо выпустил довольно забавный контент на тему разработки бота для cs:go на основе нейросети. Вышло прям интересно! Сегодня выкатилась третья часть, где он оптимизировал движения мышкой и улучшал качество распознавания. Видео короткие и весьма увлекательные, так что если ты в нейросетях такой же бот как и я, то советую посмотреть - примерно поймёте как это всё работает на реальном примере 🚗

Часть 1 : https://www.youtube.com/watch?v=kudbejO_K68 (12 мин)
Часть 2 : https://www.youtube.com/watch?v=utiS8URhgT0 (15 мин)
Часть 3 : https://www.youtube.com/watch?v=VohV9XN_4W8 (15 мин)

#нейросети
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5💩2
Пока ты развиваешься, ИИ - УЖЕ умнее тебя! Ну ладно.. как минимум умнее меня.

Если вы ещё до сих пор по какой-то причине не поговорили с новой нейронкой на GPT-4 от OpenAI - строго рекомендую. Это впечатляет. Она отлично понимает русский и умеет запоминать контекст предыдущих сообщений для последующих ответов. Ждём интеграции в голосовые помощники, работает очень достойно. До жути достойно.

В целом, можно делать вывод, что нашу профессию через пару лет можно сворачивать в кулёк и выкидывать. И не только нашу, к слову.

Удачи, гребцы! 😤
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😢2