Senior Software Vlogger
17.7K subscribers
421 photos
24 videos
2 files
938 links
Программирование и IT youtube.com/@SeniorSoftwareVlogger

Все ссылки и реклама https://t.me/seniorsoftwarevlogger/3
Download Telegram
Код ревью

Проверял на курсе резюме и заметил, что в обязанностях часто пишут "код ревью". Меня это очень удивило, потому что для меня код ревью - это нечто обязательное. Примерно, как тесты писать для кода. Настолько обязательное, что и упоминать не стоит.

Поговорил с людьми, оказывается, что на самом деле это не так. Часто код ревью нет, а когда есть, то просто для галочки. Иногда даже может быть почвой для конфликта, если слишком много попросишь исправить.

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

У вас есть код ревью? Для галочки или для поддержки качества кода? Как вы вообще растете без код ревью? Что скажете в свое оправдание? 👮‍♂️

https://youtu.be/gclusz3HtDA
Forwarded from Team Lead Talks Подкаст (Дима Рожков)
Увольнять людей, которые тормозят команду даже важнее, чем нанимать. Не помню, где слышал, но согласен с высказыванием. Книги по менеджменту довольно редко уделяют достаточно внимания процессу увольнения.

Как уволить правильно, чтобы всем в итоге было хорошо? Говорим в этом выпуске.

Видео с Бобуком https://www.youtube.com/watch?v=0eN2KcykGbk

Книга Егора:
The Dichotomy of Leadership by Jocko Wilink

Книги Димы:
The Making of a Manager by Julie Zhuo
An Elegant Puzzle by Will Larson

00:00:00 Байка от Егора
00:03:03 О чем не пишут в книгах
00:06:42 Но пишет Джоко Виллинк
00:08:49 Правильно нанимаем чтобы не увольнять
00:12:34 Найм в бутиковую команду
00:24:56 Найм в стандартизованную команду
00:32:41 Первые месяцы в компании
00:42:40 Испытательный срок не пройдет
00:48:57 Я пишу код, что еще надо?
00:56:50 Не скрывайте правду, это делает только хуже
01:06:49 Поддерживайте контакт с реальностью
01:09:13 Не наблюдал, а увольнять надо
01:13:46 И компания и сотрудник несчастны
01:16:15 Не только увольнение, но и проекты
01:24:28 Увольнение старичка из команды
01:32:59 Психосоматика
01:35:24 Посмотри динамику обратной связи
01:40:58 Про сплетни
01:44:04 Как донести информацию до команды
01:51:15 PIP: Performance improvement plan
02:04:02 Резюме

https://youtu.be/7UB0kvEUqzg
⬆️ Поговорили

00:00 - Team Lead Talks - канал здорового Димы, Senior Software Vlogger - канал Димы курильщика
15:10 - Чего нового на работе
16:10 - Мой подход к ведению проектов
18:30 - 80К на мидла в Германии
19:30 - Почему часто меняешь работу в последнее время
24:00 - Конец золотого времени в IT, как Маск повлияет?
28:00 - В РФ рынок будет стабильнее?
35:25 - Германию ждут сложные времена, где в Германии будет стабильность
40:10 - Гос служба в Германии
44:00 - Переезд?
48:20 - Фриланс в Германии
Есть кто сеньорный, кто хотел бы одному волку на стриме объяснить за сеньорность и что сеньоров через 2 года не бывает? Просто третий нужен, вдвоем не интересно. Может Соера позвать?

https://t.me/m0rtymerr_channel
BBS (не диски)

Расскажу вам, как я во время отсутствия интернета познавал коммуникацию через сети.

Помню, как у нас в доме появился модем. Это такая штука, чтобы через телефонную линию компьютеры соединять. Появился он для того, чтобы мама могла отправлять бухгалтерские документы в налоговую.

Интернет в то время был по карточкам на пару часов, которые появлялись в доме редко, а соединяться с другими компьютерами очень хотелось.

Классе в 9 или 10 я узнал, что есть такая штука, как BBS или Buletin Board System (система досок объявлений). ББСка — это программа, которая сидит и ждет, пока ей позвонят. По большому счету ББС это было подобие портала с форумом, личными сообщениями и хранилищем файлов. Можно было подключиться, посмотреть свою почту и обменяться файлами с такими же людьми, которые подключались к этому же узлу. Обмен между узлами тоже практиковался, но без гарантий. За этой программой стоял человек, который запускал ее на ночь на своем компе. Таких людей называли сисоп. Все держалось на энтузиастах.

Помню, что на весь город была только одна круглосуточная BBS - IT Восток. Возможно, работала в каком-то учреждении.

Никакой графики, конечно не было. Весь интерфейс рисовали ASCII графикой. Я нашел для вас в интернете картинку. Здесь уже каждый сисоп в меру своих сил рисовал как мог.

Хорошим тоном было скачать список тем на форуме или список файлов и ОТКЛЮЧИТЬСЯ. Висеть на линии было дурным тоном, другим людям-то тоже надо было дать возможность. Телефонная линия у сисопа была одна и пока ты висишь на линии больше дозвониться никто не мог.

Закончилось для меня все так же быстро, как и началось. Мне там особо нечего было делать. Была еще Fido, но у меня не было поинта, да и поздно я обо всем этом узнал. Потом пришли локальные сети, которые пробрасывали между домами и модем стал не нужен, но это другая история.

https://htstatic.imgsmail.ru/pic_image/681bcba8f95c10567c4337990737f787/840/525/1710593/
Forwarded from Team Lead Talks Подкаст (Дима Рожков)
В выходные пишем выпуск про риск менеджмент. От чего у вас горит на работе? Какие риски игнорируются? Каким уделяют незаслуженно много внимания?
Вы уже знаете, что я помогаю распространять информацию о зарплатном опросе в Германии и всегда отправляю к опросу людей, которые спрашивают сколько просить в Германии денег.

Новый опрос, словами Ксении:

——
Всем привет!

Время традиционного Зарплатного Опроса.

Это был непростой год, поэтому в новой версии опроса ❗️Crisis Edition❗️ есть блок вопросов про увольнения, как всегда абсолютно анонимно. Для некоторых этот год был карьерно успешным и мы хотим видеть как вы поднимаете свои зарплаты💰 и толкаете рынок ⬆️ , поделитесь своими успехами.

Заполнение формы не займет больше 3 минут👇

bit.ly/salary_survey_form

Весь декабрь можно присылать свои ответы, агрегированные результаты📈 запакованные в статью с главными 💥 highlights💥 2022 ожидаем в январе.

Поделитесь ссылкой на форму опроса с вашими коллегами и друзьями, работающими в Германии в IT.

P.S. Результаты прошлогоднего опроса 2021: https://bit.ly/3FbXotS
Спойлеры ☝️
Мы в эфире 🙌
Forwarded from Team Lead Talks Подкаст (Дима Рожков)
Управление рисками необходимо, но часто игнорируется. Игнорирование рисков приводит к плачевным результатам. В этом эпизоде мы говорим про управление рисками, стратегии и инструменты.

Видео про Киневин — https://www.youtube.com/watch?v=BB6_tGzaSsE
Книги:
1. Team Topologies — https://teamtopologies.com/
2. Waltzing with Bears by Tom DeMarco

00:00:00 - Как Егор прыгал с крана
00:04:42 - Как Дима пришел к управлению рисками
00:07:28 - Tom DeMarco - Waltzing with Bears
00:08:12 - 3 стратегии управления рисками
00:09:07 - Опыт Егора
00:14:56 - О чем будем говорить сегодня
00:20:21 - Технологи и Инженеры
00:28:52 - Несоответствие людей и задач
00:40:46 - Что же сразу увольнять?
00:43:36 - чейндж менеджмент
00:45:43 - Начальство игнорирует все риски
00:48:49 - Тактическое и стратегическое планирование
00:49:55 - Отсутствие системного мышления
00:54:01 - Риск — это инструмент
01:00:52 - Сообщество лидеров
01:03:02 - Приходи и с проблемой и с решением
01:05:45 - Управление рисками — работа вышестоящего менеджмента
01:06:57 - Фиксация риска и ситуации на момент принятия решения
01:08:42 - Премортем, как инструмент
01:13:07 - Реестр систем и их важности
01:16:03 - Риски неправильной оценки сроков
01:20:41 - 100% - бессмысленная цель
01:21:13 - Команда одна, а проектов много
01:25:38 - Cynefin — киневин, фреймворк осмысления
01:36:40 - Резюме и безысходность
01:51:13 - Бонус трек: книга о власти

https://youtu.be/gX9ezTz6gJk
Я правда готовлю новые видосы для влоггера 🥲
Монады

В крайнем выпуске Тимлидов мы с Егором сошлись во мнении, что монады — тотальное говно, которое ничего в этом мире еще не исправило, а все только портит (говорим на 30 минуте). Хотя казалось бы, это же просто способ организации цепочки вычислений.

Я поделился своей историей, как не нанял чувака, который прислал тестовое с использованием js библиотеки rambda. Я решил, что переубеждать человека нет смысла, даже если он крутой спец. Монады же — это было последнее, чего не хватало в винегрете технологий, который мы унаследовали. У чувака пригорело с отказа, что он сорвался на нашего рекрутера.

Егор рассказал про другого чувака, но уже про язык руби. Тот человек был чуть более успешен. Его наняли лидом, собрали ему команду. Пол года они мучали жопу, но сервис так и не родился. Чувак расстроился и уволился.

Собственно вопрос:
Вы хоть раз встречали ситуацию где в проект приносили монады и проект расцветал? Я говорю про языки для the rest of us. Я конечно же не имею ввиду какую-нибудь мерзкую Скалу, где без монад никуда. Обычный джаваскрипт или тот же руби. Очень жду истории, в которых монады были оправданы и победили.

Поддерждать на Boosty | ютуб membership | Twitter
В комментариях есть только одна история когда проект без монад расцвел с появлением оных. Спойлер: проект на скале. Плюс обещание ещё одной истории, но человек был пьян. В остальном только недоумение (оправданное), что, мы де всю жизнь пишем с монадами в джаве и скале и нам норм. Короче буду монадных челиков отправлять писать на скале. Oh wait… моя команда и так на скале пишет, но и проблем с монадами там нет, да.

Так что виноваты не монады. Виновата «новая чуждая технология Х». Даже не так. Виноват челик Ч, который хочет привнести новую чуждую технологию в команду без понимания нафига оно надо.

Нет универсальных технологий.

Если вам не дают переписать всё на монады — просто найдите компанию, где их уже используют. Не надо стараться осчастливить людей. Работа — это как отношения. Нужно сразу делать ставку на совместимость, а не надеяться, что ща зайду, а там все под себя переделаю и тебе за эту разработку такууую премию дадут...
Накидайте вопросов менеджеру. Вот все, что наболело, но спросить страшно, вдруг уволят. Егор и я потом запишем выпуск, где на все вопросы постараемся ответить без прикрас.

https://ahaslides.com/Z00TP
Помечайте айдишники

Никто уже в здравом уме не использует целые числа для идентификаторов в базе. Все используют уникальные строки. Но можно пойти дальше. Каждому ресурсу нужно придумать свой код. Например ID пользователей будут начинаться с US_, идэшники товаров с IT_ и так далее.

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

Поддерждать на Boosty | ютуб membership | Twitter
Я — кулхацкер

Как я благодарен своему вебовскому прошлому! Навыки, добытые в эпоху отсутствия современных инструментов — бесценны. Сейчас, например, я восстанавливаю сообщество и сайт ityoutubers. Потребовалось собрать данные о каналах. Ссылки на каналы в ютубе могут быть нескольких видов и только 2 из них содержат информацию, по которой можно из апи достать данные:

* https://www.youtube.com/c/seniorsoftwarevlogger
* https://www.youtube.com/seniorsoftwarevlogger
* https://youtube.com/channel/UCX3w3jB05SHLbGjZPR0PM6g
* https://www.youtube.com/user/rojkovdima
* https://www.youtube.com/@SeniorSoftwareVlogger

Это всё один и тот же канал! Ясное дело, что айтишники из сообщества накидали все возможные варианты. Как достать из них идэшники, типа: UCX3w3jB05SHLbGjZPR0PM6g? Кстати, все начинаются с UC, читают меня — 100%. Какой-то апишки чтобы по любому из урлов получить идешник — нету.

НАДО СМЕКАТЬ

Гуглим, что на странице ютуб канала есть переменная ytInitialData с нужной информацией. Как у любого кулхацкера у меня установлен Tampermonkey. Пишу простецкий скрипт, который будет сбрасывать идешник в консоль:

(function() {
'use strict';
console.log(ytInitialData.metadata.channelMetadataRenderer.externalId);
})();


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

Дальше нужно собрать сами данные из АПИ. Расчехляю хакерский JS:

const params = {
part: "id,snippet",
maxResults: 50
};

async function main(params) {
let items = [];

while(ids.length > 0) {
const res = await youtubeApi.channels.list({ id: ids.splice(0, 10).join(","), ...params });
items = items.concat(res.data.items);
}

console.log(JSON.stringify(items));
};

main(params).catch(console.error);


И сливаю всю эту ссанину в файлик:

$ node ./scrapper.js > channels.json

Остается сверстать список каналов для морды, это уже любой джун сможет сделать. Берем новый tailwindcss и старый добрый handlebars.js чтобы немного пощекотать любителей смотреть исходники. Готово!

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

Поддерждать на Boosty | ютуб membership | Twitter