Pull to refresh
27
0.1
Тензин Константин @tenzink

Пользователь

Send message

Мой опыт собеседования в Google [оффер на L5]

Level of difficultyEasy
Reading time8 min
Views56K

Предупреждение: я не смогу привести в статье конкретные вопросы из-за подписанного соглашения о неразглашении (NDA).

Работая в лондонском офисе Facebook в команде Instagram*, я начал задумываться о возвращении в Индию. В ноябре 2022 года со мной связался рекрутер Google. Он сообщил об открытии в Бангалоре должности уровня L5 и спросил, интересно ли мне это.

Так как я уже раздумывал о переезде в Индию, то ранее собеседовался в Google, но мне предложили более низкую должность (L4), чем я хотел; потом я устроился в META* на уровень E5.

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

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

На этот раз в процессе подготовки возникла уникальная для меня сложность — счастливое пополнение в моей семье, дочка. За моё внимание боролись подгузники и кодинг, было очень сложно выделить время на сосредоточенную подготовку! У меня было примерно 25-30 дней на освоение и искусства ухода за ребёнком, и прохождения собеседования.
Читать дальше →
Total votes 62: ↑58 and ↓4+82
Comments95

Искусство создания понятных графиков

Level of difficultyMedium
Reading time7 min
Views23K

Эта статья — субъективное эссе о хороших и плохих практиках в визуализации данных, в нём приведены примеры и объяснения.

В папке Scripts/ на Github есть файлы .Rmd, генерирующие показанные ниже графики. Для их работы требуются R, RStudio и пакет rmarkdown.

Читать дальше →
Total votes 68: ↑67 and ↓1+91
Comments10

Сказ о том, как я собеседования проводила. Часть 2

Level of difficultyEasy
Reading time4 min
Views17K

Привет! На связи Катя из мобильной разработки. Я выпускаю вторую часть статьи про собеседования в Альфе. С первой частью можно ознакомиться здесь.

Процесс отбора сотрудников проходит годы становления, как было и у нас. Требования далеко не жёсткие — они меняются, как и сфера, в которой мы работаем.

О том, как они менялись у нас последние 5 лет, я расскажу в статье. По ходу повествования буду указывать на наши ошибки и способы их пофиксить. Возможно, вам это пригодится в выстраивании ваших процессов.

Читать далее
Total votes 30: ↑27 and ↓3+25
Comments41

Вы точно хотите пойти программистом в gamedev?

Level of difficultyEasy
Reading time17 min
Views76K

Хочу вас огорчить, программисты не делают игры - их делают дизайнеры и арт. Можно уволить программиста и на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без "видения". Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

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

O, тепленькая пошла!
Total votes 217: ↑213 and ↓4+258
Comments234

Чем хорош Rust для продакшена?

Level of difficultyEasy
Reading time13 min
Views15K

За последние годы интерес к Rust значительно вырос. Отчасти этому способствовало то, что ведущие участники технологической индустрии, такие как Microsoft, Google и Amazon рассказали о своём опыте использования этого языка в реализации критических систем.

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

Будучи консультантом по Rust, я имел возможность работать со многими компаниями: как крупными, так и малыми. В итоге я понял, что организации в первую очередь ценят продуктивность, стабильность и удобство при долгосрочной поддержке, а не производительность.
Читать дальше →
Total votes 53: ↑47 and ↓6+67
Comments23

Решаем задачу асинхронного ввода-вывода с библиотекой Asio

Level of difficultyMedium
Reading time10 min
Views8.9K

Привет, Хабр! Меня зовут Илья Казаков, я C++ разработчик в команде систем хранения данных  компании YADRO, одна из моих задач — реализация эффективных IO-bound программ под Linux. 

На одном из проектов мы с командой использовали Asio — библиотеку C++ для сетевого и низкоуровневого программирования ввода-вывода. Она предлагает свою асинхронную модель. Технология отлично справилась с нашей задачей, и я хочу поделиться с вами опытом ее использования. Под катом расскажу, какие решения я рассматривал для асинхронного ввода-вывода и почему остановился на Asio.

Узнать больше →
Total votes 14: ↑13 and ↓1+15
Comments22

Тот самый датасет, где архитектор чуть не сошёл с ума

Reading time10 min
Views17K
image

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

В одном из рулонов стали на 325-м метре образовалась продольная трещина, и теперь все в цеху хотят знать, где что случилось и почему. То есть надо проследить, что конкретно происходило с этим кусочком стали на протяжении всей его биографии.

Задача понятная: берём архитектора, берём данные со всех датчиков, архитектор совершает какую-то магию — и вот у нас готовый датасет для анализа.

И вот на «берём данные с датчиков» мы споткнулись в первый раз. Архитектор, умный адекватный мужик, привыкший работать с синтетическими данными и чистой математикой, чуть не сошёл с ума на нашем реальном производстве.

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

Потому что в теории всё немного не так, как на практике — например, есть много случаев, когда последовательность, которая по определению должна быть монотонно возрастающей, может быть:

  • Невозрастающей.
  • Немонотонной.

В смысле, что это в принципе физически невозможно, но часто происходит. Ещё могут быть скачки во времени и другие нарушения причинно-следственной связи.
Читать дальше →
Total votes 52: ↑51 and ↓1+62
Comments42

BTRFS для самых маленьких

Reading time22 min
Views142K
Доброго времени суток, Хабравчане.  Я работаю в компании Veeam Software и являюсь одним из разработчиков нашего решения для бэкапа линукс систем. По роду занятий мне довелось столкнуться с BTRFS. Совсем недавно она перешла из статуса «еще не пригодно» в статус «стабильна». И пока её первые пользователи в сети обсуждали проблемные места и вопросы стабильности, мы в Veeam тыкали её палочкой и пытались бэкапить. Получалось, мягко говоря, не очень — слишком уж она другая, не похожая на традиционные файловые системы. Пришлось изучить немало аспектов и собрать множество граблей, прежде чем научились с ней работать. В процессе изучения BTRFS сумела произвести на меня впечатление как в хорошем смысле, так и не очень. Уверен, она не оставит равнодушным ни одного айтишника из мира линукс: одни будут плеваться, другие восхвалять.

Если вы слышали об этой файловой системе, но не знаете, зачем она, интересуетесь подробностями или ищете, с чего начать знакомство с ней — приглашаю под кат.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments59

Эйчары такие противные девочки, которые отказывают из-за цвета глаз: найм глазами IT-рекрутера

Reading time5 min
Views59K

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

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

Читать далее
Total votes 81: ↑54 and ↓27+42
Comments366

Фаззинг с AFL++. Знакомство

Level of difficultyEasy
Reading time9 min
Views6.9K

Для реверсера, пывнера и бинари ресерчера очень важно уметь фаззить, поэтому данные статьи посвященны новичкам, которые только начинают фаззить и знакомятся со зверьком - AFL++.

Фаззинг (fuzzing) — техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающаяся в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования, часто используемого для проверки проблем безопасности в программном обеспечении и компьютерных системах. (Wikipedia)

Упражнение 1 - Xpdf

В этом упражнении мы проведем фаззинг просмотрщика Xpdf PDF. Цель - найти сбой для CVE-2019-13288 в XPDF 3.02.

Чему вы научитесь

После выполнения этого упражнения вы будете знать основы фаззинга с помощью AFL

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments2

Как я пять лет назад начал выходить на новый уровень дохода и как у меня это до сих пор не получилось

Reading time3 min
Views48K

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

Глядя на десяток знакомых владельцев агентств, я остановился на варианте со своим проектом. Собственная студия показалась мне слишком сложным и неблагодарным направлением.

Читать далее
Total votes 95: ↑77 and ↓18+76
Comments95

Как устроено автоматическое удаление мёртвого кода в Meta*

Level of difficultyMedium
Reading time7 min
Views9.7K

В фреймворке Systematic Code and Asset Removal Framework (SCARF) компании Meta* есть подсистема выявления и удаления мёртвого кода.

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

В своём предыдущем посте об автоматическом выводе из эксплуатации продуктов мы говорили о сложностях этого процесса, а также о созданном Meta* решении под названием Systematic Code and Asset Removal Framework (SCARF). В качестве примера мы рассмотрели Moments — приложение обмена фотографиями, запущенное Meta в 2015 году и закрытое в 2019 году. В статье говорится о том, как SCARF помогает в проведении процесса вывода из эксплуатации благодаря его функциям управления рабочим процессом. Мы сказали, что SCARF экономит время разработчиков, выявляя правильный порядок задач для очистки продукта, и указали, что можно заблокировать автоматическую очистку при наличии межсистемных зависимостей. Это естественным образом приводит нас к следующему вопросу: как автоматически разблокировать SCARF при наличии кода, ссылающегося на ресурс?
Читать дальше →
Total votes 28: ↑25 and ↓3+34
Comments2

Это база: нюансы работы с Redis. Часть 1

Level of difficultyMedium
Reading time15 min
Views45K

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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

Читать далее
Total votes 79: ↑79 and ↓0+79
Comments5

Обзор книги «С++ 20 в деталях»: доступно, но не для джунов

Reading time8 min
Views21K

Привет, Хабр! Меня зовут Дмитрий Луцив, я работаю в СПбГУ на кафедре системного программирования, веду ряд IT-дисциплин на математико-механическом факультете в лабаратории компании YADRO и помогаю вузам актуализировать образовательные программы под задачи индустрии.

Я давно не программировал на С++, но стараюсь не отставать от изменений, происходящих в языке. Книга «C++ 20 в деталях» заинтересовала меня личностью автора (на секунду, это Райнер Гримм) и возможностью познакомиться с новым источником знаний о «плюсах». Решил ее прочитать, чтобы понять, кому материал будет полезен и могу ли я его рекомендовать. Под катом расскажу, что в книге хорошего, а что можно было бы сделать лучше, а также дам список дополнительных источников для специалистов разного уровня.

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments14

Роль HR в борьбе с профессиональным выгоранием

Reading time9 min
Views3.2K

Привет, Хабр!

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

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

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

Читать далее
Total votes 15: ↑8 and ↓7+3
Comments12

Что будет с оборотнем, если отправить его на Луну?

Level of difficultyEasy
Reading time6 min
Views7.6K

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

Все мы знакомы с легендой. Оборотни в полнолуние приобретают форму волка и жаждут охоты, особенно когда добычей становятся люди. Здесь нет необходимости вдаваться в подробности. Более подробную научную информацию можно найти у Вагнера, 1941, Лэндиса, 1981, и, особенно в отношении поражения молодых жертв, в Дэниела, 1985.

Гипотезы о научных основах изменений многочисленны, но, к сожалению, эмпирические исследования немногочисленны. (И это неудивительно, учитывая уровень смертности среди наблюдателей). Медицинские журналы время от времени публикуют спекулятивные работы по биологии ликантропического превращения, но, опять же, достоверных данных мало. Эта проблема усугубляется тем, что полученные после смерти особи возвращаются в человеческий облик, что необратимо изменяет ДНК и биохимию всех извлечённых образцов.

Читать далее
Total votes 36: ↑34 and ↓2+44
Comments20

Виды баз данных. Большой обзор типов СУБД

Reading time21 min
Views112K

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., но надеюсь, она даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

Читать далее
Total votes 38: ↑36 and ↓2+38
Comments16

С 31-го февраля в России полностью запретят VPN

Reading time11 min
Views154K

Как вам заголовок, а? Как вам такой подарочек на Рождество? 

Нет, это неправда, это шутка такая.

Не с 7-го января запретят. С другого числа запретят.

Добро пожаловать под кат, будем вместе учиться обходить блокировки VPN у наших коллег из дружественных стран - Китая, Ирана, Туркменистана и конечно же Северной Кореи.

AmneziaVPN снова на связи!

Читать далее
Total votes 468: ↑126 and ↓342-193
Comments200

Мнение три года спустя: стоил ли того переход с JavaScript на Rust?

Level of difficultyMedium
Reading time7 min
Views39K

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

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

Спустя три года, выполнив несколько развёртываний в продакшен, написав электронную книгу и выпустив примерно сто пакетов на crates.io, я решил, что настало время поделиться своими мыслями о Rust.

Читать далее
Total votes 40: ↑39 and ↓1+53
Comments64

Как в 180 000 раз ускорить анализ данных с помощью Rust

Level of difficultyMedium
Reading time18 min
Views18K

В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Читать дальше →
Total votes 58: ↑52 and ↓6+68
Comments12

Information

Rating
3,113-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity