Pull to refresh
18
0
Сергей Сусиков @Angerslave

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

Send message

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Reading time25 min
Views130K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Total votes 67: ↑65 and ↓2+90
Comments37

Выделяем ДНК банана в домашних условиях

Reading time5 min
Views66K

В анонсах мероприятий, которые проходят в Leader-ID, можно встретить неожиданные вещи. К примеру — мастер-класс по выделению молекул ДНК, для которого достаточно «оборудования» и «реагентов», присутствующих на любой кухне. Этот эксперимент можно провести вместе с детьми — погрузить их, так сказать, в мир биологии и химии.

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

История GoldenEye 007

Reading time8 min
Views6.3K

Геймеры смирились с этим ещё в девяностые. Платформеры, шутеры от первого лица, и любой из жанров игр, основанных на фильме — будет ужасным. Но вышла GoldenEye 007 и всё изменила.


image


Игру выпустили через два года после проката фильма в кинотеатрах, всего за несколько месяцев до выхода следующей части бондианы — «Завтра не умрёт никогда». И даже команда, ответственная за проект, особого успеха не ожидала. Затем картридж разошёлся ошеломляющим тиражом в 8 миллионов копий, попав в тройку самых продаваемых игр на 64-битной консоли Nintendo. В дальнейшем, GoldenEye 007 неизменно присутствовала в списках «Лучших игр».


Примечательно, что для большинства разработчиков, GoldenEye стал первым серьёзным проектом. Тим и Крис Стамперы, руководители Rare, постоянно напоминали команде, что «это не университетский проект» и затягивать с разработкой не стоит (на игру ушло более трёх лет). Однако, поскольку большая часть коллектива были новичками в этом бизнесе, означало, что они не будут ограничены представлениями о том, что возможно, а что нет. Придумав хорошую идею — они пытаются её реализовать.

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

Делаем из Power Mac G4 универсальный и дешевый ретро-компьютер

Reading time7 min
Views22K
Ретрогейминг на ПК. С чем в первую очередь это ассоциируется? Конечно же с этими огромными кинескопными мониторами и неизменно стоящими рядом системниками на которых в подавляющем большинстве стояла какая-нибудь Windows 98. Но существовал особый пласт компьютеров от фирмы Apple, которые в странах бывшего СНГ видели единицы, а уж про игры на них вообще не стоит и заикаться. Так что, давайте разбираться, возможен ли ретрогейминг на старом компьютере от Apple.
Сразу хочу предупредить, что это своего рода эксперимент, а не руководство к эксплуатации. Да, библиотека игр на Mac поскуднее будет, но она немальнькая. И в Mac Os есть свои приколы и баги, но не будем об этом.
Total votes 34: ↑33 and ↓1+45
Comments20

Кастомные декораторы для NestJS: от простого к сложному

Reading time7 min
Views20K

image


Введение


NestJS — стремительно набирающий популярность фрeймворк, построенный на идеях IoC/DI, модульного дизайна и декораторов. Благодаря последним, Nest имеет лаконичный и выразительный синтаксис, что повышает удобство разработки.


Декораторы или аннотации — наследники аспектов, которые позволяют декларативно описывать логику, модифицировать поведение классов, их свойств, аргументов и методов.


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

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

Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно

Reading time2 min
Views71K
Всем привет. Давно хотел собрать большой E-Ink дисплей, который можно поставить на стол и отображать на нем полезную информацию (погоду, календарь и т.д.) В этой статье расскажу, как можно собрать такое устройство на базе ESP32 и дисплея от Kindle DX значительно дешевле, чем Waveshare.


Читать дальше →
Total votes 100: ↑97 and ↓3+129
Comments202

Хакинтош на Powermac G5 или как собрать себе рабочую станцию

Reading time11 min
Views28K

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



Стоит сказать, что тогда я уже как два года баловался своими сборками хакинтоша, и только пару лет назад сказал себе что с этим все, завязываю. Да и оригинальное устройство от Apple у меня уже было. О боги, я прошел наверно все круги ада, чтобы завести Mac OS X на не нативном железе, и даже оставлял руководства на профильных сайтах. Но одно достижение мной покорено не было. Собрать все в корпусе G5...

Читать дальше →
Total votes 25: ↑23 and ↓2+26
Comments35

Вычисляем по IP: как бороться со спамом в социальной сети

Reading time19 min
Views40K
Спам в социальных сетях и мессенджерах — это боль. Боль и для честных пользователей, и для разработчиков. Как с ней борются в Badoo, рассказал Михаил Овчинников на Highload++, далее текстовая версия этого доклада.


О спикере: Михаил Овчинников работает в Badoo и последние пять лет занимается антиспамом.

В Badoo зарегистрировано 390 миллионов пользователей (данные на октябрь 2017). Если сравнивать размер аудитории сервиса с населением России, то можно сказать, что в нашей стране по статистике каждых 100 млн человек охраняет 500 тысяч полицейских, а в Badoo каждые 100 млн пользователей защищает от спама всего один сотрудник Антиспама. Но даже такое небольшое количество программистов способно защитить пользователей от разных неприятностей в интернете.
Total votes 76: ↑72 and ↓4+68
Comments50

Микросервисы: размер имеет значение, даже если у вас Kubernetes

Reading time7 min
Views30K
19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании «Флант» в области эксплуатации проектов с микросервисной архитектурой. В первую очередь он будет полезен всем разработчикам, задумывающимся о применении этого подхода в своём настоящем или будущем проекте.



Представляем видео с докладом (50 минут, гораздо информативнее статьи), а также основную выжимку из него в текстовом виде.

NB: Видео и презентация доступны также в конце этой публикации.
Total votes 40: ↑39 and ↓1+38
Comments23

Топливо для ИИ: подборка открытых датасетов для машинного обучения

Reading time6 min
Views80K


Связанные проекты сообщества Open Data (проект Linked Open Data Cloud). Многие датасеты на этой диаграмме могут включать в себя данные, защищенные авторским правом, и они не упоминаются в данной статье


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


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


Мы разобрались в этом вопросе и собрали данные по датасетам, удовлетворяющим критериям открытости, востребованности, скорости работы и близости к реальным задачам.

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

О структуре и масштабировании сложных приложений для Node.JS

Reading time7 min
Views20K
Структура программных проектов – это важно. От решений, принятых в самом начале работы, зависит то, какой будет эта работа в течение всего жизненного цикла продукта.



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

Вот основные темы, которые мы здесь раскроем:

  • Разработка хорошо масштабируемых приложений, которые легко поддерживать.
  • Качественное разделение конфигурационных данных и основного кода приложения.
  • Использование в Node.js-приложениях процессов различных типов.

Здесь мы, иллюстрируя различные концепции, будем пользоваться приложением-примером, полный код которого можно найти на GitHub.
Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments5

Коллекции иконок? Легко! Тысячи иконок в сетах.

Reading time2 min
Views39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →
Total votes 156: ↑134 and ↓22+112
Comments36

11 порталов для выбора Иконок

Reading time1 min
Views5.4K
Коллекция ссылок больших порталов и поисковиков, для выбора всевозможных Иконок(Icons) разного типа. Практически на всех есть широкий выбор размеров.

В этой коллекции я уверен что вы найдете что вам нужно ;)

Ну интересное так точно!!!

1. http://www.iconspedia.com
Читать дальше →
Total votes 100: ↑99 and ↓1+98
Comments32

Пару слов о программировании и непрограммистах

Reading time4 min
Views2.9K
А также о тех, кто хочет научиться этому искусству. Очень субьективно.

Я горжусь своей профессией, но очень не люблю говорить людям мало сведущим в программировании и в ИТ в частности, кем я работаю.
Люди сходятся во мнении, что программист — это тот, кто связан с компьютерами. На этом сходства заканчиваются. Один думает, что я печатаю бумажки в Ворде, другой то, что ремонтирую компьютеры и прочую периферию. Я это не придумываю. Вот случай произошедший как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у нас принтер не печатает!
— Какой принтер?
— Ну такой, с лентой.
Читать дальше →
Total votes 163: ↑159 and ↓4+155
Comments200

Азбука хорошего разработчика. Книжки для чтения

Reading time2 min
Views3.4K
Часто разработчиков нужно направить, поскольку они не имеют понятия о том, что им нужно изучить для повышения своего уровня. В этой заметке я опишу источники знаний, в моем понимании, необходимые для этой цели. Пишу в порядке, в котором я их предлагаю читать.

Паттерны проектирования

Википедия — там, в принципе, на хорошем уровне все описано и приведены примеры на разных языках.
Базовая книга – классика:
«Приемы объектно-ориентированного проектирования. Паттерны проектирования» — читал книгу давно, и раза 3. Вам того же советую. Даст возможность понимать большое количество терминов, произносимых другими разработчиками.

Рефакторинг

«Рефакторинг. Улучшение существующего кода» — вероятно, эта книга сделала революцию в написании кода. Читается быстро и интересно. Методы рефакторинга должны отложиться в голове до конца жизни. Ваш код отныне будет лучше. В книге есть упоминание про юнит тестинг.
Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments66

Современный бэк-офис IT-компании

Reading time11 min
Views53K
В одной из дискуссий недавно, я перечислил основные системы, делающие работу ИТ-компании цивилизованной. Список получился весьма обширный, и я решил оформить его как самостоятельную статью.

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

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

Краткий спойлер содержимого: VCS, репозиторий исходного кода, code-review, build-сервера, CI, таск-трекер, вики, корпоративный блог, функциональное тестирование, репозиторий для пакетов, система управления конфигурацией, бэкапы, почта/jabber.

Картинка с фрагментом обсуждаемой инфраструктуры:


Читать дальше →
Total votes 56: ↑50 and ↓6+44
Comments29

Геймификация студии с помощью подручных средств

Reading time7 min
Views30K
Сам термин «геймификация», вы, наверняка, слышали — он в последнее время снова стал модным. Означает примерно следующее: перенос игровых механик на неигровые процессы. Отчего последние (по задумке) становятся увлекательнее и охотнее воспринимаются теми, кто в них вовлечен.

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

image
Читать дальше →
Total votes 76: ↑67 and ↓9+58
Comments13

Договор на разработку сайта: так, а не иначе

Reading time29 min
Views152K
Присылает нам заказчик (Газпром) свою версию договора.
Понимаем — нашу они не подпишут,
вносим реквизиты и отправляем обратно.
Пропадают на две недели… возвращают протокол разногласий к договору.


Последняя неделя выдалась жаркой на переговоры с юристами заказчиков. Проекты я не веду, но так уж получилось, что все договора проходят через меня. Соответственно, я участвую в их согласовании.
Читать дальше →
Total votes 135: ↑129 and ↓6+123
Comments78

Вся правда о модели Пропасти: Ранние рынки и как быть, если вы совершили ошибку

Reading time9 min
Views30K

Модель пропасти


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

Сейчас, куда не посмотри, все стали учёные: литературой запаслись, интернеты читают. Кого не спроси, и о кривой принятия технологии знают, и вообще всё им понятно: «… да-да, знаем! Есть Новаторы, Ранние последователи, есть рынок ранний, а есть поздний, отщепенцы и увальни — ну куда без них? Да-да, между рынками, ранним и основным, есть пропасть, которую нужно перепрыгнуть!» Знают. Прыгают. Только, бывает, пикируют. А всё почему? Потому что аннотацию прочли, а содержимое не осилили. Поэтому я написал эту заметку. Речь пойдёт о том, что важные вещи, которые нужно знать о модели Пропасти, не всегда лежат на поверхности.
image

Сразу оговорюсь — модель работает только при инновациях, прерывающих привычный образ жизни. Если это улучшения линейные, и никак не меняют ваш привычный образ жизни — модель гарантированно не сработает.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments5

N+1 полезных книг о бизнесе

Reading time9 min
Views229K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

Читать дальше →
Total votes 148: ↑137 and ↓11+126
Comments131

Information

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