Pull to refresh
60
0
Дмитрий @Pozitron

User

Send message

IT-релокация: какие скиллы качать, чтобы устроиться на зарубежный рынок

Reading time 6 min
Views 41K

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

Мы пообщались с Павлом Замошиным, Site Reliability Engineer в Speakap. Он уже более двух лет в релокации, и его переезд пришёлся на разгар пандемии. Павел рассказал, чем зарубежные собеседования отличаются от российских, и что нужно уметь, чтобы получить оффер. А ещё поделился, как выбирал страну и с какими неочевидными сложностями столкнулся после переезда.

Читать далее
Total votes 31: ↑27 and ↓4 +23
Comments 78

Глубокое погружение в Linux namespaces, часть 3

Reading time 9 min
Views 12K

Часть 1
Часть 2
Часть 3
Часть 4


Mount namespaces изолируют ресурсы файловых систем. Это по большей части включает всё, что имеет отношение к файлам в системе. Среди охватываемых ресурсов есть файл, содержащий список точек монтирования, которые видны процессу, и, как мы намекали во вступительном посте, изолирование может обеспечить такое поведение, что изменение списка (или любого другого файла) в пределах некоторого mount namespace инстанса M не будет влиять на этот список в другом инстансе (так что только процессы в M увидят изменения)

Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 0

Трюки с виртуальной памятью

Reading time 14 min
Views 17K

Я уже довольно давно хотел написать пост о работе с виртуальной памятью. И когда @jimsagevid в ответ на мой твит написал о ней, я понял, что время пришло.

Виртуальная память — очень интересная штука. Как программисты, мы прекрасно знаем, что она есть (по крайней мере, во всех современных процессорах и операционных системах), но часто забываем о ней. Возможно, из-за того, что в популярных языках программирования она не присутствует в явном виде. Хотя иногда и вспоминаем, когда наш софт начинает тормозить (а не падать) из-за нехватки физической оперативной памяти.

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

Читать далее
Total votes 43: ↑39 and ↓4 +35
Comments 24

Полный набор gRPC, RESTful JSON API, WS и Swagger из одного proto файла. От введения до нюансов и тонкостей grpc-gateway

Reading time 9 min
Views 33K

В этой статье я опишу процесс создания сервера с gRPC и RESTful JSON API одновременно и Swagger документацию к нему.


Эта статья — продолжение разбора различных способов реализаций API-сервера на Golang с автогенерацией кода и документации. Там я обещал более подробно остановиться на этом подходе.


grpc-gateway — это плагин protoc. Он читает определение сервиса gRPC и генерирует обратный прокси-сервер, который переводит RESTful JSON API в gRPC. Этот сервер создается в соответствии с пользовательскими параметрами в вашем определении gRPC.


Это выглядит вот так:


Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 16

Защита и взлом Xbox 360 (Часть 1)

Reading time 12 min
Views 97K
image Вы наверняка слышали про игровую приставку Xbox 360, и что она «прошивается». Под «прошивкой» здесь имеется в виду обход встроенных механизмов защиты для запуска копий игр и самописного софта. И вот здесь возникают вопросы! Каких механизмов, как они обходятся? Что же наворотили разработчики, как это сумели обойти? На самом деле, тема очень обширная и интересная, особенно для Xbox 360 — здесь можно встретить уязвимости в ПО, аппаратные недочеты, и совсем уж магическую магию. Интересно? Заглядываем! В первой части у нас знакомство с гипервизором, приводами и прошивками…

Читать дальше →
Total votes 126: ↑126 and ↓0 +126
Comments 29

Асинхронные режимы фреймворка gRPC и принципы их работы в С++

Reading time 26 min
Views 22K
Однажды мы с нашей командой решили попробовать gRPC для своих задач. После некоторых обсуждений, пришли к выводу, что будем использовать асинхронные клиент и сервер. Однако, под рукой оказался рабочий пример из документации только для одного режима. Примеры остальных режимов взаимодействия, основные принципы работы асинхронных операций, принципы работы асинхронного сервера и клиента в gRPC и многое другое под катом.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 1

Поговорим о смерти

Reading time 13 min
Views 71K

Люди не делятся на гарантированных самоубийц и на тех, кому это не грозит. Люди делятся на тех, кто совершил самоубийство, и тех, кто этого не сделал.


В момент слабости важно знать, что с тобой происходит и как грамотно действовать.


Наша IT-работа сопряжена с нервными перенапряжениями, пограничными психическими расстройствами, эмоциональным и профессиональным истощением, порой встречающимися начальниками нарциссами и садистами, и многим, многим другим. Да и наше расчудесное общество, постулирующее «Без успеха и денег ты никто», уже никак не стимулирует либидо, скорее уж мортидо.


По данным Всемирной организации здравоохранения (ВОЗ), каждые 40 секунд кто-то из жителей Земли уходит из жизни сознательно, кончая жизнь самоубийством. Посмотрите на часы — секундная стрелка обошла круг. Ещё одна человеческая жизнь оборвалась.


Согласно приводимой ВОЗ статистике, среди причин смерти молодых людей (в возрасте 15—29 лет) в мировом масштабе самоубийства занимают второе место — не автокатастрофы, не наркотики, не алкоголь, не экстремальные виды спорта. Суицид.


Ежедневно в мире совершают самоубийства 3 тысячи человек, а ежегодно – около 1 миллиона человек (1,5 % всех смертей).


Что интересно, мужчины совершают самоубийство в 4 раза чаще, чем женщины, хотя женщины совершают в 4 раза больше попыток самоубийства. Ох уж эти театральные натуры.



Читать дальше →
Total votes 203: ↑154 and ↓49 +105
Comments 367

Резюме глазами интервьюера

Reading time 9 min
Views 53K
Когда я составляла свое первое резюме, процесс отбора на очное интервью мне казался магией. Люди, принимающие решения, представлялись «черными ящиками», которые определяют: кандидат «интересен» или «неинтересен» — по непонятным критериям.

Статьи «Как составить резюме» отчасти были полезны, а отчасти путали и нагоняли страх: их авторы утверждали, что мое письмо может попасть в корзину, если не выдержана структура или ответственный сотрудник не увидел в нем ключевых слов за первые 5 секунд чтения.

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

В этой статье я хочу рассказать:

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

А главное — хочу объяснить логику, которой мы руководствуемся, чтобы процесс больше не выглядел магией.

Не воспринимайте написанное как универсальный рецепт или требования. Скорее это дружеские советы и взгляд со стороны. У вас вообще может не быть резюме, если вы топовый разработчик, звезда конференций, у вас крутой профиль на GitHub, вас рекомендует друг и так далее. Эта статья — для начинающих специалистов и тех, кто впервые сталкивается с поиском работы.

image
Читать дальше →
Total votes 91: ↑85 and ↓6 +79
Comments 106

Словарик айтишника или Что? Где? Куда? Часть 1

Reading time 8 min
Views 202K
«Привет! Добро пожаловать! Спасибо, что приняла наш оффер. Пойдем знакомиться с твоей командой. У них как раз сейчас дейли. Ты вышла под конец спринта, поэтому пока работы для тебя не запланировали. Как стендап закончится, можешь почитать спеки, командные окиары и просмотреть бэклог на следующий спринт. По всем вопросам обращайся к своему пио
Это бессмыслица какая-то или деловой язык? Попробуем разобраться.
image
Читать дальше →
Total votes 41: ↑29 and ↓12 +17
Comments 157

Работа не волк, часть 1. Поиск работы: 9 кругов HR-a

Reading time 16 min
Views 68K
Поиск работы вызывает неприятные тревожно-азартные ощущения и у вчерашнего студента, и у профессионала с годами опыта за плечами. Это не признак неуверенности в себе, это проблема всей отрасли поиска персонала: мы идём на собеседование и понимаем, что не всё может зависеть от профессионализма, что кому-то не понравятся наши софт-скиллы или внешний вид, кто-то упрется в вопрос о причинах ухода с предыдущего места. На Хабре может выйти 200 статей-обращений к HR-службами IT-компаний, где сами соискатели будут с пеной у рта рассказывать, как с ними (нами!) нужно разговаривать, как оценивать, но на первой встрече с будущим работодателем вам всё равно подсунут психологический тест, зададут странные вопросы и посмотрят на вас, как будто вы уже что-то нарушили и идёте в компанию, чтобы порушить устои и корпоративную культуру. Поэтому мы не будем рассказывать компаниям, в чём они не правы — мы расскажем вам, как с этим жить. 


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

Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →
Total votes 52: ↑45 and ↓7 +38
Comments 37

Файл дескриптор в Linux с примерами

Reading time 14 min
Views 98K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».

«ну хорошо», сказал я, «если мы не можем перезапускать приложение и данные нам не важны, то мы можем просто очистить этот открытый файл через файл дескриптор, даже если мы его не видим в команде ls на файловой системе».

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Total votes 136: ↑136 and ↓0 +136
Comments 20

Эволюция переключения контекста x86 в Linux

Reading time 43 min
Views 26K


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

Задача: проследить, как изменялось переключение контекста в ядре Linux от первой (0.01) до последней версии LTS (4.14.67), с особым акцентом на первую и последнюю версии.
Читать дальше →
Total votes 74: ↑73 and ↓1 +72
Comments 9

Криптографические атаки: объяснение для смятённых умов

Reading time 33 min
Views 52K
При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

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

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать дальше →
Total votes 103: ↑103 and ↓0 +103
Comments 22

Как разрабатываются и производятся процессоры: проектирование ЦП

Reading time 9 min
Views 34K
image

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

Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)

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

Существует два основных типа транзисторов, используемых в современных процессорах: pMOS (PМОП) и nMOS (NМОП). nMOS-транзистор пропускает ток, когда затвор (gate) заряжен или имеет высокое напряжение, а pMOS-транзистор пропускает ток, когда затвор разряжен или имеет низкое напряжение. Сочетая эти типы транзисторов комплементарным образом, мы можем создавать логические элементы КМОП (CMOS). В этой статье мы не будем подробно разбирать особенности работы транзисторов, но коснёмся этого в третьей части серии.
Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Comments 8

Модифицируем Bluetooth-стек для улучшения звука на наушниках без кодеков AAC, aptX и LDAC

Reading time 7 min
Views 130K
Перед прочтением этой статьи рекомендуется ознакомиться с предыдущей статьёй: Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах / in English

Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.

Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах, путём программных изменений смартфона или компьютера.
Читать дальше →
Total votes 100: ↑98 and ↓2 +96
Comments 53

Микробиота. Как лекарства влияют на состав бактерий кишечника

Reading time 6 min
Views 12K
Мы с Атласом уже рассказали, как работает микробиота, какие бактерии живут в кишечниках россиян, как микробиота влияет на развитие заболеваний, а также чем можно помочь здоровью кишечника. Мы получили много вопросов об антибиотиках и решили подготовить отдельный материал о том, как на микробиоту влияют разные лекарства. Рассказываем о самых популярных.


Автор иллюстраций Rentonorama
Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Comments 7

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 2: подготовка документов и переезд

Reading time 16 min
Views 64K
Итак, за примерно год (май 2017 — февраль 2018) я, программист C++, нашел-таки работу в Европе. Я десятки раз откликался на вакансии в Англии, Ирландии, Швеции, Нидерландах и даже в Португалии. Я раз двадцать беседовал по телефону, скайпу и прочим системам видео связи с рекрутерами, и несколько меньше — с техническими специалистами. Я ездил в Осло, в Эйндховен и три раза в Лондон на финальные интервью. Все это подробно описано здесь. В итоге я получил один оффер и принял его.



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

Но всегда можно самому себе создать сложности. Что я и сделал, чем затянул свой переезд еще на месяц. Если интересно почитать о хлопотах (нет, не сильно приятных) связанных с переездом IT семьи в Западную Европу — добро пожаловать под кат.
Читать дальше →
Total votes 115: ↑105 and ↓10 +95
Comments 187

Я не знал, как работают процессоры, поэтому написал программный симулятор

Reading time 6 min
Views 44K

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

Я прочитал книгу «Но откуда он знает?» Кларка Скотта с детальным описанием простого 8-битного компьютера: начиная с логических вентилей, ОЗУ, транзисторов процессора, заканчивая арифметико-логическим устройством и операциями ввода-вывода. И мне захотелось реализовать всё это в коде.

Хотя я не настолько интересуюсь физикой микросхем, но книга просто скользит по волнам и красиво объясняет электросхемы и как биты перемещаются по системе — от читателя не требуется знание электротехники. Но мне недостаточно текстового описания. Я должен видеть вещи в действии и учиться на своих неизбежных ошибках. Так я начал реализацию схем в коде. Путь оказался тернист, но поучителен.
Читать дальше →
Total votes 72: ↑68 and ↓4 +64
Comments 33

Наглядное пособие по устройству микросхемы

Reading time 2 min
Views 50K


Автора всегда восхищала работа микросхем. Как пластина, некоторые участки которой преднамеренно загрязнены, управляет электронами? И тут внезапно кто-то придумывает наглядное пособие, которое делает принцип действия микросхемы максимально понятным. Именно это произошло на ярмарке самодельщиков в области залива Сан-Франциско.
Читать дальше →
Total votes 68: ↑68 and ↓0 +68
Comments 23

Стеганография в файловой системе оптических дисков

Reading time 7 min
Views 7.3K
Будучи в поисках интересной информации о стеганографии, я наткнулся на занимательную статью о стеганографии в файловой системе, и, спустя какое -то время, та навела меня на мысль о создании стеганографии в файловой системе оптических дисков.

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

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

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

image
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 5

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity