Выступление Путина: что это было?

Люди руководствуются самыми причудливыми мотивами, когда голосуют на выборах, но обычно всё понимают и про пенсии, и про зарплаты учителей и врачей, и про национальные проекты и про справедливый суд. Поэтому слушать очередное послание Путина желающих мало — в 2020 году это уже просто скучно. Однако, в этот раз текст существенно изменился и многие люди начали переживать и беспокоиться о грядущих изменениях.

Я считаю, что ничего существенного снова не произошло. Да, обычно отставка премьер-министра является важным событием, но Медведева-то давно никто всерьёз не воспринимал. Очевидно, что в историю Медведев вошёл как Димон из фильма Навального, почти 3-летняя задержка между выходом фильма и отставкой правительства выглядит как попытка скрыть взаимосвязь между этими событиями.

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

Зато мы видим, что Путин врал про неизменность Конституции точно также, как он врал про неизменность пенсионного возраста. Итого, Путин — врёт. Это прискорбно, но это не новость.

Партия для Навального

Много лет сторонники Навального не могут зарегистрировать свою партию. Дважды у нас воровали название, сейчас минюст не регистрирует партию в порядке откровенного беззакония. Теперь уже абсолютно всё равно как будет называться партия Навального, нужно только чтобы никто не решился взять себе такое имя и чтобы отказ в регистрации нёс для Путина максимально высокие издержки. И такое название есть: Еврейская партия.

Если считаете, что это слишком экзотично — посмотрите официальный список зарегистрированных сейчас партий: там и не такое встречается. Например, есть у нас Казачья партия Российской Федерации. Про казаков есть много разных историй, меня больше всего впечатлил случай, когда сначала казак мешал открывать штаб Навального в Ростове-на-Дону, а потом попал в плен в Сирии, боевики его казнили, а наши власти заявили, что он от российского гражданства отказался.

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

Итоги-2019

Дети растут стремительно, Ада уже на 2 курсе в МФТИ, Вероника в 10 классе. Закончилась эпоха крысоводства в нашей семье — без Ады заводить новых животных уже нет энергии.

Я внезапно сменил работу и вместо традиционного разгребания старого наследия занимаюсь разработкой с нуля в стартапе. Наконец-то начал программировать на Kotlin в промышленных масштабах и в качестве базы данных у нас PostgreSQL. Мир мы пока ещё не завоевали, но новая функциональность разрабатывается в разы быстрее, чем у меня получалось раньше в системах с долгой историей.

Съездили всей семьей в Будапешт прошлой зимой, а летом из Таллина полетели на Кипр, а потом был концерт Metallica в Тарту.

Игра года — Pokémon Go, стал уже матёрым тренером 40 уровня, стабильно прохожу не менее 50 км в неделю. В настольном теннисе формально прибавил с точки зрения рейтинга, но есть впечатление некоторого застоя. Стал играть в баскетбол до 5 раз в неделю и явно сильно прибавил. Разумеется, я по-прежнему играю плохо и очень плохо, но всё чаще совершаю какие-то разумные действия.

Политические итоги города СПб — 2019

Многие думают, что на последних муниципальных выборах оппозиция выиграла у ЕР много депутатских мандатов. По-моему, это довольно неточная модель. В базовом варианте люди голосуют на основании нескольких строчек в бюллетене, в крайнем случае смотрят информацию на стенде. Директор школы или преподаватель в университете будет иметь больше шансов, чем безработный или водитель. У администрации есть дополнительные голоса за счёт собственных сотрудников, любителей бесплатных автобусных экскурсий и, конечно, фальсификаций.

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

Разговор про наши выборы невозможно представить себе без массовых фальсификаций, в этом году дошло до того, что Памфилова под камеры жаловалось Путину. Конечно, это было сделано исключительно для отвлечения внимания. Если я не ошибаюсь, то уголовных дел было возбуждено 0, отобрано мандатов у жуликов - тоже 0, хотя какие-то суды ещё идут. Однако, я считаю, что с годами фальсификации потихоньку идут на спад, потому что наблюдатели предъявляют очень убедительные доказательства и желающих опозориться не так уж и много. В конце концов могут же и посадить кого-нибудь для улучшения образа власти.

Я без особой надежды написал в прокуратуру жалобу, что на моём УИК председатель не показывала галочки в бюллетенях. Меня потом звали прийти в прокуратуру лично, но я не пошёл и мне прислали отказ, якобы ничего не было. А после этого ТИК принял решение, что нарушения были и снял председателя УИК с должности, при этом сославшись на запрос из прокуратуры.

Сейчас планируется реформа и вместо 30 ТИК в городе будет 64. ТИК - это центры фальсификаций, но в городе просто нет столько упырей, чтобы все их занять. Есть партии, которые могут выдвигать членов ТИК, но очень нужны адекватные люди, которые согласятся на эту работу. 2-3 приличных человека в каждом ТИК и фальсифицировать выборы станет гораздо сложнее. Если вы готовы стать членом ТИК - напишите мне, я дам вам рекомендации к кому обратиться.

В поисках программиста

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

Итак, в мире растёт производство томографов. Чем больше аппаратов, тем больше исследований делается. Результатом исследований может быть 400 плоских срезов с шагом в 1 мм, которые рентгенолог просматривает при помощи специального программного обеспечения. При этом все эти срезы должны сложиться у него в голове в 3-мерную картину. Рентгенологи учатся несколько лет и быстро увеличить количество рентгенологов не получится. Если человек допустит ошибку и пациент уйдёт без лечения, то это может быть очень обидно. И если увеличить нагрузку на существующих врачей, то количество ошибок тоже возрастёт. Очевидно, что есть отличная перспектива натренировать AI, чтобы он помогал анализировать данные исследований. И стартапов в этой области великое множество, большинство из них умрёт. Я хочу, чтобы наш выжил.

Я не занимаюсь созданием AI на GPU и не разрабатываю средства визуализации результатов исследований. Однако, кроме этих безусловно ключевых направлений, необходимо ещё поддерживать инфраструктуру, которая будет забирать данные, хранить их, отправлять на обработку и обеспечивать необходимые процессы. Это не очень сложные технологии, но это открытые вопросы. Можно сделать сколь угодно крутой AI, но как внедрить его в медицинском учреждении? С технической точки зрения здесь приходится решать множество вопросов: и корректно работать с персональными данными, и интегрироваться с не самыми современными продуктами сторонних поставщиков с использованием разнообразных медицинских стандартов. В зоне моей ответственности и надёжность наших сервисов, и масштабируемость, и эффективное использование серверных ресурсов.

Так как у нас стартап, то недостатка в задачах нет: появляются AI-модели для новых типов исследований, интеграция с новыми партнёрами почти всегда требует больших доработок. Компенсируется это тем, что у нас пока нет большого груза старого кода и мы используем весьма прямолинейные технологии: PostgreSQL, Spring Boot, Kotlin. Из архитектурных решений регулярно применяется моя излюбленная асинхронная обработка задач, потому что нам всё время нужно что-то послать на какой-то удалённый сервис, который может внезапно выключиться. Изюминку добавляет работа с медицинскими библиотеками, API которых обычно весьма изощрён.

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

Итак, я не хочу заставлять кандидатов разворачивать список или решать подобные задачки. С одной стороны человек может внезапно протупить, с другой — правильное решение не является достаточно сильным сигналом. Было бы здорово, если бы были очевидные свидетельства, что кандидат умеет решать подобные задачи: рейтинг TopCoder или участие в одном из множества подобных проектов вполне подойдёт. Высокие результаты в ACM или подобных соревнованиях — сильный сигнал, что человек хороший.

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

Если человек достаточно опытный, то я могу спросить, какие вопросы он задаёт на интервью и как оценивает ответы? Часто бывает очень информативно.

Один из моих любимых вопросов — попросить рассказать о каком-нибудь сложном баге из своего опыта. Хорошая возможность для кандидата продемонстрировать свою техническую компетентность.

Общие вопросы: что вы знаете о Kotlin? Какие могут быть критерии выбора алгоритма сортировки? Какие бывают виды тестирования?

Ещё мне очень не нравится, когда люди игнорируют предупреждения IDE и когда на пустом месте делают много уровней абстракции. Боюсь, это не часто можно исправить добрым словом, а как это проверять на интервью я не знаю.

А какие вопросы для интервью вы посоветуете?

Правоведы в масках и будущее России

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

Коллеги, это не атака на open source, это у бандитов кончается кормовая база. Многие годы программирование было отдушиной для всех технических специалистов — можно работать на иностранных заказчиков, получать приличную зарплату, жить припеваючи и практически не соприкасаться с российским бизнесом. Но силовики не ловили в это время бабочек, они отжимали компании, предприятия, здания — всё, что казалось им достаточно вкусным. Нужно отдать должное выработанной бандитской культуре обращения с бизнесменами — их вроде как стали реже убивать и даже платили какие-то деньги за конфискованные активы. Но это не гуманизм, а разведение скота.

Такая «правовая» система очевидно сказывается на экономике: граждане не хотят общаться с бандитами и не становятся предпринимателями, а бандиты, даже самые авторитетные, полные импотенты в бизнесе. В результате разрыв между российской и мировой экономикой всё время увеличивается. Руководители наших крупнейших корпораций могут соревноваться в роскоши с арабскими шейхами, но беспомощны в вопросах стратегического развития.

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

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

Оптимистичном сценарий для силовиков (и для всех) — это мирная смена власти и желательно в скором времени. Конечно, многие попадут под суд, но это будет цивилизованный процесс без пыток подозреваемых и фальсификации доказательств. И это будет перспективная, развивающая страна, в которой можно будет найти работу.

Ищем разработчика Kotlin/Java

Вчера переехали в новый офис и опубликовали вакансию: https://spb.hh.ru/vacancy/34927271. Основной компонент изначально написан на Kotlin, так что это хорошая возможность начать программировать на нём в промышленных масштабах. Работать нужно будет вместе со мной.

Про новых сотрудников

Обычно в наших краях львиная доля внимания в HR отводится поиску кандидатов и проведению собеседований, а что потом с человеком происходит — про это как-то не принято говорить. И если речь идёт о крупной аутсорсинговой компании, то за 2 недели, пока человек дорабатывает на предыдущем месте, всё может радикально поменяться. Более того, если компания по каким-то высшим соображениям решила создать кадровый резерв, то можно вообще год просидеть на внутренних проектах и заниматься саморазвитием.

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

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

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

Поддерживайте свой проект в таком состоянии, чтобы к его разработке легко мог присоединиться другой человек. Это поможет вам держаться на современном уровне. Но если вы вдруг думаете, что уникальная экспертиза в местных технологиях даст вам что-то похожее на job security — берегите себя, это так не работает.

Отказать хорошему, чтобы не взять плохого?

Традиционно программистов ищут в парадигме, что лучше отказать хорошему кандидату, чем взять на работу плохого. Отсюда головоломки на интервью и 7 раундов собеседований. Но давайте подумаем, а сколько стоит взять на работу плохого программиста? Российское законодательство разрешает испытательный срок в 3 месяца и именно столько он обычно и составляет. То есть у работодателя есть мощный юридический стимул распознать недостаточно хорошего сотрудника не больше, чем за 3 месяца. Честно говоря, за месяц реальной работы можно столько узнать про человека, что никакие задачки на интервью этого не заменят.

Давайте теперь поставим вопрос по другому: а получается хоть у кого-нибудь при помощи интервью полностью избежать найма слабых программистов? По-моему, нет, не получается. Есть много примеров, когда люди отлично проходят интервью, но в работе абсолютно беспомощны. При этом часто так получается, что человек не только испытательный срок проходит, но его ещё и не увольняют потом почему-то, разве что зарплату стараются не повышать. Тут мы неожиданно сталкиваемся с новой проблемой: компания мечтает о 10x-программистах, но в ней работают 0.1x-менеджеры. Можно предположить, что суровость собеседований связана с подсознательным страхом того, что нового человека никто не сможет ни обучить, ни остановить и он разнесёт компанию изнутри.

А что же с хорошими кандидатами? Понятно, что программиста нужно оценивать не по успешности прохождения интервью, а по выполненным проектам. И по своему опыту я могу сказать, что мне не раз удавалось внести эпический вклад в общее дело. Поверьте, мне доводилось наносить столько пользы, что это просто не сравнимо с 3 месячными зарплатами. Получается, что с финансовой точки зрения вполне можно рискнуть и взять кандидата, который вызывает противоречивые чувства.

Нужно признать, что риск ошибиться и потерять деньги у работодателя действительно есть, например, меня однажды уволили на испытательном сроке, хотя перед этим я работал Product Manager в геномом ассемблере SPAdes, а после этого 3,5 года делал конфетку из одного проекта для крупной перестраховочной компании — одни из самых впечатляющих проектов за всю мою карьеру.

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

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

Русскому хайтеку указали на место

Есть в России компания Т-Платформы, которая известна в основном сборкой суперкомпьютеров. В 2013 году компания угодила под санкции США и Валерий Фадеев написал про это статью в журнале Эксперт, главным редактором которого он являлся. Название статьи я использовал и для этого поста. Материал начинается с красивой фотографии директора Т-Платформы Всеволода Опанасенко на фоне суперкомпьютера Ломоносов.

Американские санкции в конце концов сняли, но Всеволода Опанасенко угораздило поставить нашему МВД компьютеры на базе отечественного процессора Baikal. И за это он с марта 2019 года сидит в СИЗО. Зато Валерия Фадеева Путин назначил председателем Совета по правам человека.

Кто-то может быть надеется, что теперь-то Всеволода Опанасенко выпустят из тюрьмы.