In love-hate relationship with machines. Doing weird stuff, so you don't have to. Personal account, expect no perfection. Currently: everything OpenJDK at AWS.
Я: "Какие у вас дальше планы?"
Украинская семья, пять минут назад вышедшая из польского поезда: "Вообще у нас был план приехать к нашим родственникам в Берлине, но мы им позвонили, и оказалось, что они смотрят российский телевизор и считают, что помощь нам не нужна."
Напоминаю, что рецепт финансового успеха прост как два пальца об асфальт и доступен каждому:
1. Родитесь в богатой стране.
2. Родитесь у богатых родителей.
3. Родитесь в богатое время.
4. Усиленно работайте!
5. Готово! Пишите книгу о грамотном подходе к личным финансам.
Тихо сказал главе семейства: "Чего блядь?!" -- "Ну, вот так...". Поехали в пункт временного размещения беженцев, конечно, куда же ещё. Одно меня немножко утешает: берлинские родственнички всё равно за эту помощь заплатят из своих налогов, хотят они этого или нет.
"Professional programmers" focusing on CrowdStrike disassembly/language is a coping mechanism that protects them from realizing that there is a remotely updated 3rd party kernel module that is deployed on significant part of the world. That is why real postmortems are important.
Чтобы разбавить эту грустную историю, хочу также сказать, что на одну такую историю приходится десять-двадцать историй типа: "Нам не нужна помощь, нас встречают родственники; а вот и они; а, они всё уже знают, мы идём с ними регистрироваться; спасибо, до свидания!"
If you're running a server with
#Log4J
, please add the following JVM argument to your command line immediately to protect against a 0-day exploit.
-Dlog4j2.formatMsgNoLookups=true
#Java
#Security
#Infosec
Про карьерные траектории я всегда вспомнаю диалог в питерском военкомате.
– Как это не хочешь военную кафедру? Ты же потом на хорошую работу не устроишься!
– (серьёзно) А хорошая – это какая?
– (взгляд затуманивается) Газпром...
К тому времени я уже два года работал в Intel.
Опытные программисты рано или поздно осознают два жизненных факта: а) пет-проекты необходимы для эффективной карьеры; б) самый эффективный пет-проект -- это спать по 8..10 часов в хорошо затемнённой и прохладной комнате, после 1..2 часов ментальной разгрузки.
Дарю простую и старую технику дискуссии. Сначала аккуратно выясните место проживания вашего оппонента. Затем резко используйте одну из этих двух фраз: "Не нравится? Вали!" или "Свалил? Помалкивай!". Готово, ваш оппонент в нокауте.
Волонтёрам начали раздавать наклейки об используемых ими языках. Обычно не снимаю свой (купленный) жилет на обратной дороге, чтобы помочь попутчикам. Сегодня провожу эксперимент, успею ли я доехать до дома, не получив по морде.
Добрался без проблем, никто даже слова не сказал. Из чего мы делаем вывод, что русофобия в Берлине/Потсдаме не только сильна, но и тщательно, мерзко, коварно скрывается. /s
После школы я решал, идти на юрфак или в программисты. Решил, что не хочу копаться в запутанном месиве из противоречащих друг другу псевдоформальных текстов и их интерпретаций людьми разной степени экспертности и их конфликтными интересами. И пошёл в программисты. И вот, блядь...
Некоторые немецкие врачи так-то понимают про эффект плацебо:
– Вот вам рецепт на лекарство, и можете ещё сверху вот это взять, оно поможет вам вылечиться ещё быстрее.
– Так второе же гомеопатия?
– А, тогда не надо, вам оно не поможет.
@nat_davydova
Сотрудник: <приходит разговаривать про зарплату с контроффером в 2х>
Работодатель: Это ужасно низко.
Сотрудник: <смотрит в зарплатный квиток> Вот и я говорю.
Знаете, я в молодости тоже выпендривался, что софтскиллы, калчур-фит, красные флажки в соцсеточках -- это блажь, надо брать кандидата, если он технически хорош.
А потом до меня дошло, что очень редко бывает ситуация, когда нет альтернативных, куда менее рискованных кандидатов.
Java Strings are specified with power-31 polynomial hashcode, which means adding "Aa" and "BB" to existing String produces two different Strings with same hashcode. Repeat recursively if you need more collisions. Easy and useful for hashcode sensitivity tests.
I am at the arrival volunteer briefing at Berlin Central Station, and I am the only Russian speaking volunteer out of thirty new people. They need 50 more Russian/Ukrainian speakers, please consider showing up. Berlin HBF, UG1, near McDonalds.
(минутка рекламы под конец) Приходите волонтёрить. В Берлине и окрестностях есть много чего на , в том числе
@BerlinArrivalS
. В других городах наверняка можно что-то нагуглить, начитать, наспрашивать где-нибудь в местных администрациях.
В жизни каждого экспата происходит момент, когда он успешно уехал из России, а тут его никто не ждёт, ну кроме попыток снять жильё, налогов, непонятной культуры, плохих сервисов, необходимости изучения языка. В этот момент главное не растеряться, потому что пропадёт хороший тред.
-- Как напишем? "Высвобождение от работы"?
-- Не, затроллят.
-- Сами затроллим, может? "Отрицательный найм"?
-- Нет, решат, что мы издеваемся.
-- О, "профицит кадров в отрасли"!
-- Оптимистично! Пойдёт! Публикуй!
Русские интернеты полны постов про беженцев, но почему-то в аксепте типа "Европа порвётся всех их принять", "их заселяют во временные лагеря, такая вот перемога", "их погнали нахрен из отеля через месяц", "вот, европейцы скоро поймут, с кем имеют дело", и т.п.
Если соцсетка помогла мне найти, удержаться, продвинуться на хорошей работе, то это мой личный бренд, лайк, шер, подписка.
🤝
Если соцсетка помогла мне потерять хорошую работу, то это моё приватное пространство, работодатели охренели что ли его читать, алё, это творчество такое.
У нас во немецком дворе жил дед, который занимался всяким хозяйствованием: тут подрезать, там подпилить, тут подмазать, там подкрутить. Жил, жил, да пропал. Сегодня я подрезал упавшие ветки, перекрутил крюк в стене, подмазал дырки, и внезапно понял, что я теперь и есть тот дед.
P.S. Все эти вопиющие случаи произошли всего-то за последние пять лет. Прогноз негативный: их будет в неопределённо-бесконечное количество раз больше в следующие пять лет.
Excited to be in the middle of my first day as Principal Engineer, Corretto, Languages and Runtimes, AWS. Impressive number of things to do on my list already. Back to OpenJDK and related work!
Европейцы, думаете, не понимают, что за размещение, еду, обучение, охрану беженцев придётся заплатить из своего кармана? Ещё как понимают. Понимают они, что будет сложно и качество жизни упадёт? Понимают. Но всё равно делают, потому что *правильные* вещи не всегда *выгодные*.
Ладно, я ещё понимаю, когда авторы занимаются самостопом по поводу того, от чего эти беженцы в Европу вообще уехали. Но вот обесчеловечивать беженцев, смаковать их страдания и подкалывать помогающих -- это зубоскальство на грани людоедства. Лучше промолчите, ей богу.
Большинство людей (кроме, скажем, психопатов) не может безучастно смотреть на страдания других. Да, подавить это в себе можно в том числе через отрицание страдания. Но я вам точно скажу, что расчеловечивание других -- прямой путь к расчеловечиванию себя.
Напоминаю новым экспатам, что кривая адаптации выглядит так: "медовый месяц" -> "фрустрация" -> "адаптация" -> "принятие". В первых двух фазах люди не всегда адекватны, поэтому относитесь к своему опыту, чужим историям и советам соответственно.
(немножко морализаторства под конец)
Если вы ещё не поняли, то надо спасать душу, а не деньги. И уж во всяком случае не пачкать её специально ещё больше. То, как вы проведёте эту неделю, месяц, год, определит ваш моральный фундамент на остаток вашей жизни. (И так было всегда.)
Useful postmortems usually pay little attention to "a bug at line N" (local problem cause), and instead ask "why so much disruption all at once" (blast radius), "what safety mechanisms failed" (quality gates), "was detection and remediation adequate" (operations playbook).
Today is my last day at Red Hat. It was a wild ride for almost 7 years. I recommend it as one of the best places to work on FOSS. Eagerly waiting for my new adventure to start soon!
Не надо спорить с москвичами, которые рассказывают про то, как украинцам удобно ехать в ЕС. Подождите минут десять и спросите, думал ли москвич переехать сам, и слушайте про сложный язык, трудности с поиском работы, жильём, про дороговизну, что-то про второсортность ещё будет.
Усталая женщина в очереди:
-- Здравствуйте, Алексей, меня зовут Ольга.
-- Очень приятно, как вы? Жаль, что знакомимся в таких обстоятельствах.
-- (пауза, вздох) Знаете, Алексей, лучше в плохой ситуации среди хороших людей, чем наоборот.
Знаете, что такое немецкие привилегии? Это когда ты заходишь на вокзале в Rossmann, охрана говорит в рацию "Алё, он снова пришёл", начальник смены открывает для тебя на одну минуту вторую кассу, и продаёт тебе ещё ящиков мыла, дезика, шампуня, бритв, прямо со склада, минуя полки.
"Java Objects Inside Out": large-ish treatise on how Hotspot deals with internal object layouts, and what it can mean for low-level library developers.
Some day US newspapers would discover that a significant number of core JVM developers are Russians. Stands to reason JVMs need to be security-patched every 3 months!
Large services devs know this by heart: systems are complex, there are "normal failures", no layer is immune to problems. Hyper-focusing on "oh, if only we written this in a language without null pointers..." misses a next big thing like a logic bug that takes down network stack.
Короче, у меня всё работает без впн: гуглодоки открываются, гитхаб открывается, линкедин открывается. Только вот за окном по-немецки говорят. Не знаю, важно это или нет, но это может указывать на ошибку окружения.
Под натиском разоблачающих комментариев местных жителей вынужден признаться, что в Германии и в Европе вообще очень плохо. Тут сервисы медленные, жильё дорогое, еда невкусная, бюрократия ужасная, дома холодно, говорят не по-русски. Не надо сюда ехать! Едьте в Москву! /s
"How does synchronized work in Java?" is a curveball deep technical interview question, because I think there are about 10 people in the world who understand Hotspot synchronization handling code in its entirety.
Не надо меня в Европе пугать кадрами зимнего Красноярска с высоты птичьего полёта. Я с детства помню виды зимнего Красноярска из окна старенького ПАЗика, старыми воспоминаниями трепещут у меня в груди запахи города, от простой гари до дивного амбрэ фармпрепаратов.
К нам (3 волонтёрам) подходит мужик (ДМ):
ДМ: "А у меня вопрос!"
Мы: "Ок?"
ДМ: "У вас тут Новый Год справляют?"
Мы: <минутная истерика> Блин, мы тут дальше месяца не думаем, какой нахрен Новый Год!
ДМ: Мне надо! Я -- Главный Дед Мороз Украины!
У меня регулярный вопрос к тем, кто утверждает, что это просто увольняют плохих программистов, а хорошим программистам бояться нечего, их с руками отрывают. Допустим, что это так, но вопрос вот в чем: что даёт вам уверенность, что вы те самые хорошие программисты?
Someone asked me internally "How do I look into ~300 GB heap dump? Usual tools do not work."
JOL () has the streaming heap dump parser, which can be used for quick stats. It does a single pass read, takes little memory, and knows Hotspot layout to boot!
Чтобы понимать Германию, нужно немножко полистать немецкую газету:
- в Мариуполе что-то случилось;
- поливать лужайки запрещено;
- ДЁНЕР СКОРО 7.30 ЕВРО!!!
Подытожу страшной мыслью, которая пришла мне в голову лет десять назад: "Какой смысл качать технического гения, если никто из нужных мне людей не будет согласен со мной работать?" С тех пор я по капле выдавливаю из себя чудака. Это, кстати, куда сложнее самого программирования.
Экспатам было бы проще адаптироваться, если бы к иммиграционной визе прилагалась рекалибрующая памятка с текстом: "Добро пожаловать! Если вы хотите стать богатым в нашей стране, то единственный 100% рабочий способ -- это generational wealth, которого у вас, судя по анкете, нет."
В выходной -- и когда я сам не на вокзале -- давайте я не про общечеловеческий, а про личный аспект волонтёрства расскажу. Меня много кто уже в кулуарах спросил, как это влияет, чего ждать, и тому подобное. (я буду дописывать, как буду вспоминать)
Понимаете, да? Идея "Я технический гений, какая вам разница, чудак я или нет" работает в условиях, когда у работодателю кровь из носу нужен именно технический гений, именно вы, именно сейчас. Угадайте, как часто это бывает. (Спойлер: практически никогда.)
Сейчас вот экс-гуглеры выйдут на рынок в поиске работы, и вы будете с тоской вспоминать сытные времена, когда можно было нос воротить от кодинг-интервью. Да что там, и на вайтбоарде можно будет покодить!
Собрание русской твиттор-диаспоры в Берлине:
-- Привет, я Николай, здесь уже 2 недели!
-- Лол, ещё один инфантил приехал без 10к евро на кармане, а туда же, экспат хренов, шпрехен зи дойч, мозг включать надо было перед переездом!
Чтобы не шокировать переменой культур, тксзть.
Needed to go to hospital for a follow-up. Hospital requires a negative COVID test. Hospital test station had a huge line, then internet uplink failed, then printer failed. On the upside, after 40 minutes of waiting, we got the most German test certificate ever. Gotta frame it.
Без паники, 1% упавших тестов в релизе, залитом в прод — это же так мало. Наша паника — цель конкурентов. 1 процент, друзья! Вспомните мармеладки! Тем более, они у нас в офисе бесп��атные.
Today is Red Hat Recharge Day, the company-wide day off. Spending the day at refugee relief tent at Bassinplatz in Potsdam as Russian translator and hygiene stand restocker.
Когда-то в детстве один из моих менторов сказал мне: "Лёша, читай книги, ходи в театр, слушай музыку. Без этого ты в программировании будешь максимум решальщиком поставленных задач, а не тем, кто понимает, что нужно и не нужно решать." Часто это вспоминаю, чесслово.
– Приходите к нам в новосибирскую контору синьором работать, вот вилка.
– Спасибо, но я не рассматриваю вакансии в РФ.
– Не проблема, мы нанимаем и за границей.
– Всё ещё нет, я даже в вилку вашу не помещаюсь.
– Не проблема, у нас есть вакансии и для миддлов!
(бежит, орёт)
Сегодня пока сводил бюджеты, полистал пенсионные документы родителей (инженеры в космонавтике с огромной выслугой лет), откуда на меня фактически в цифрах смотрело: "Спасибо за ваш труд, а теперь пройдите нахер."
Это работает на всех рынках труда. А вот русскоязычным инфлюенсерам^W айтишникам на сжимающемся рынке труда, переходящему из рынка кандидата в рынок работодателя, я бы особенно посоветовал тормознуть, трезво оценить обстановку, и перестать копать себе публичные карьерные могилы.
Отечественные IT-конференции, перешедшие в режим выживания, должны понять, что скоро будут востребованы доклады типа:
- "Межбанковский линк на кофейных банках";
- "Планирование пиковых нагрузок на сервера на PIC16";
- "Что нам за это светит: опыт деплоя на умные лампочки";
Меня уже во второй раз немцы в очереди на кассу игриво подкалывают про интересный вечер, когда я там стою с корзиной, наполненной до краёв зубной пастой, прокладками, шампунем, консервами всякими и т.п. Быстро серьёзнеют, когда я им объясняю, зачем мне всё это, даже жалко их...
И кстати, если вы режете банковскую карточку на публику, то фотографируйте её с двух сторон, чтобы все могли проверить её номер, имя, фамилию, дату истечения и защитный код. А то фейки одни кругом, никому нельзя верить.
Почитал твитторы про зарплаты в 900к, подумал, за сколько я готов вернуться в РФ, и начал отвечать рекрутёрам русских компаний, что нижняя граница моих зарплатных ожиданий -- 2м в месяц. (из постоянной рубрики "охреневший рынок охреневших программистов")
Оффлайн конференция в 2022 году:
— Так, у кого JDK 8 в проде?
— (пол-зала поднимает руки)
— (в зал заходят серьёзные люди и вручают им какие-то бумажки)
— Попробуем ещё раз. У кого JDK 8 в проде?
— (пара осторожных рук)
— Вот молодцы, а говорили, что сложно переехать.
Секрет оглушительного успеха на многих фронтах не столько в "нихрена не успеваю и делаю всё через жопу", сколько в "мои менеджеры/заказчики довольны, хотя я нихрена не успеваю и делаю всё через жопу".
Между этими позициями есть огромная, но трудноуловимая для новичков разница.
Дорогие понаехи! Вас пригласили в цивилизацию! У вас теперь есть права и свободы, возможности участвовать в жизни общества и избавиться от рабского менталитета! Поэтому завалите уже свои хабальники, платите налоги, радуйте ваших новых хозяев, и не смейте ничего критиковать! /s
Истинно вам говорю, в 2038 году закончатся числа, и останется только одно число, и будет это Число Зверя, и станут все файлы rw-rw-rw-, и станут все выводы линкеров горьки, и не запустится ни одна программа, и только кубернетические руины останутся от войн ELF-ов и PE-шников.
Про алгосики, кодинг-интервью и показывание кода на ГХ. За последний месяц вместо адвент-оф-коде (зачёркнуто) я прошёл где-то десяток онлайн кодинг-интервью, раз пять показывал и объяснял свой код на ГХ. Вставлю свои пять копеек:
Из сотен беженцев, с которыми я лично общался, даже в разговорах по душам и шёпотом никто из них даже близко не говорит: "Вот это мне повезло, вот это я давно хотел, люблю челлендж, как будто второе дыхание открылось!" Нет, вместо этого они оплакивают свои разрушенные жизни.
Самый успешный экспат 2022 года -- это телескоп Джеймса Уэбба, который после десятилетий откладывания "на потом" умудрился свалить в L2 всего за 2 месяца до начала активной фазы всепланетного пиздеца.
Ситуация: вы на платформе берлинского вокзала, у вас на руках^W чемоданах глубоко беременная женщина, у которой уже пару часов схватки. Муж не говорит по-английски/немецки, коляска будет минут через пятнадцать, скорая едет, но хз где.
Сидел на полу 14-ого перрона и записывал на бумажку маршрут до Брюсселя с двумя пересадками, а девочка агатиного возраста подошла ко мне и налепила наклейку с гоночной машинкой мне на лоб. С этой машинкой я стоял на выдаче билетов ещё два часа и делал вид, что так и надо.
I suspect the whole CrowdStrike's future is riding on their postmortem. This was a trust-shattering event. People with enormous purchasing powers would be reading those line by line, smelling out every little bit of BS, like "singular developer skill issue" or "C++ failed us".
Признаюсь, мне тоже очень хочется просто сидеть и писать код. Но только знаете ли, время расширяет зону ответственности далеко за пределы зоны удовольствий и даже зоны комфорта. Чем раньше вы с этой мыслью подружитесь, тем легче будет взрослая, профессиональная, личная жизнь.
Лежу на диване, туплю после рабочего дня, лишь бы не кодить. Слышу жену в кабинете: "Бляяяядь!!!". Слышу раздосадованные шаги в мою сторону, задерживаю дыхание. "Можешь мне с мерджем помочь?"
Не хаватало, чтобы ещё дочь в программирование пошла, придётся покупать гараж.
Real world systems run into thousands of software and hardware bugs every day. Most of them get caught by thoughtfully built out barriers. Good post-mortems challenge you to accept the real world is hostile or at least indifferent to your reliability needs every step of the way.
Today is OpenJDK 17 release day. This release is highly likely to become the next LTS release for all downstream distributions, which makes it the appealing migration target.
Some auto-generated release notes for 17: