Pull to refresh
22
0
Андрей Щетинин @andrewsch

User

Send message

devleads — (не)финансовая мотивация

Reading time 18 min
Views 9.8K
Всем привет! С вами снова devleads-подкаст. Подкаст для тимлидов, руководителей разработки и им сочувствующих. В этот раз мы решили поговорить про мотивацию, провести четкую грань между финансовой и нефинансовой, а также определить, какая же из них важнее для разработчиков и и как правильно их развивать среди сотрудников. Попробуем ответить на вопросы:

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


— Артём, привет! Какое бы ты дал определение мотивации в целом?

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

— А есть еще такая штука как стимуляция. Какая между ними разница?

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

— Звучит круто, но не очень понятно — зачем оно? Зачем дополнительно заниматься мотивацией, неужели одной зарплаты не хватает?
Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 20

Как мы полностью поменяли собеседования

Reading time 7 min
Views 28K
Меня зовут Саша, и я руковожу backend-разработкой в Tutu.ru. Сегодня я расскажу, почему и как мы полностью поменяли процесс собеседования кандидатов за прошедший 2018 год.

Итак, диспозиция на начало года


  • Мы быстро растем – нам нужно набирать новых сотрудников
  • Сообщество разработчиков о нас думает примерно «Ну это сайт с расписанием электричек – там наверно 3 человека работает в подвале». На самом деле у нас сейчас 7 бизнес-направлений и два десятка команд, которые над ними трудятся.

    Кстати, немного об электричках
    Кстати, в команде Электричек 7 разработчиков, а еще там высоконагруженные микросервисы, которые мы начали переписывать на go
  • На собеседовании мы задаем логические задачи, задачи по синтаксису php, ООП и базам данных

Честно говоря, подбор шел медленно. Забегая вперед, скажу, что к концу года мы увеличили скорость набора в 4 раза, при этом не потеряв в качестве кандидатов. Надеюсь, я вас заинтересовал. Читатель, если ты совсем суровый технарь и хочешь почитать только о техническом собеседовании, то тебе в этап 2 :)

image
Читать дальше →
Total votes 55: ↑52 and ↓3 +49
Comments 53

Дайджест новостей из мира PostgreSQL. Выпуск №10

Reading time 6 min
Views 4.4K


Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.

Релизы


PostgreSQL 11 Beta 4
В этом релизе починили баги, выявленные после выхода Beta 3. В том числе:

  • теперь отключена по умолчанию JIT-компиляция.
  • имена в constraint-ах должны быть уникальны.
  • убрали утечку памяти при обращении к XMLTABLE
  • исправили ошибки в хранимых процедурах
  • доработали секционирование, в том числе выбор секций в момент исполнения (runtime partition pruning)

Подробнее здесь.

PostgreSQL 10.5
В этом релизе несколько десятков исправлений, касающихся WAL, libpq, VACUUM и FREEZE, индексов GIN, распараллеливания запросов, OpenSSL. Вот их список.

Postgres Pro Enterprise 10.5.2.
В этой версии есть следующие нововведения по отношению к Postgres Pro Enterprise 10.5.1, они касаются pgbench:

  • pgbench теперь поддерживает составные команды;
  • с помощью параметра --latency-limit теперь можно ограничить время, отведённое на повторение транзакций. Если при использовании данного параметра значение --max-tries=0, транзакции могут повторяться неограниченное число раз, пока не истечёт время, заданное параметром --latency-limit;
  • при вычислении количества обработанных транзакций и скорости выполнения (TPS) пропущенные и неуспешные транзакции больше не учитываются.

Напомним, за время между нашими выпусками вышел релиз Postgres Pro Enterprise 10.5.1.. Там есть существенные изменения, о них можно прочитать здесь.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 2

Диалекты английского: как понять собеседника, не сломав себе мозг

Reading time 6 min
Views 26K
Лингвисты любят говорить, что любой язык — это живой организм, который постоянно меняется и совершенствуется.

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

И как же сильно удивляются туристы, которые приезжают в Великобританию. Ведь только 3% от всего населения говорят на том английском, который мы учим в школах и слышим на английских телеканалах вроде BBC.

Остальные 97% разговаривают со всеми возможными акцентами и на тех диалектах, о которых мы часто слышали только вскользь.

Но так ли это неожиданно? Ведь в России тоже полным-полно диалектов, которые иногда очень сильно отличаются от литературного языка. Они разнятся по произношению слов, строению предложений и даже лексике.

Взять только питерский «поребрик» — если не знаешь, что это «бордюр», то не догадаешься. А по московскому «аканью» всегда можно определить жителя столицы, даже если он приехал погостить в другой город.
Total votes 31: ↑24 and ↓7 +17
Comments 43

«Кроличья нора». UX-дизайнер в продуктовой команде

Reading time 5 min
Views 6.2K
Я — UX-дизайнер, и всегда работала одна. Но в прошлом году всё изменилось: в свой день рождения я прошла собеседование в ISPsystem и попала в продуктовую команду. Пришлось вникать в новое, учиться жить по скраму и спорить с суровыми программистами (конструктивно!). Теперь дизайн-процессы устаканились, я сама прошу ребят о честной критике, а разработчики используют мои прототипы как ТЗ. Подробнее об этом — под катом.


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

Доступность интерфейсов. Лекция Яндекса

Reading time 21 min
Views 21K
Меня зовут Дима, я работаю в офисе Яндекса в Санкт-Петербурге и занимаюсь внутренними сервисами в команде разработки интерфейсов Толоки. В этом году я подготовил лекцию для Школы разработки интерфейсов. Ниже — её расшифровка.

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


— Что скрывается под модным нынче термином accessibility? Какие у вас есть варианты? Для слепых, чтение с экрана, с ограниченными возможностями, координация движений… Все верно. Доступность — возможность использования интерфейса всеми, независимо от физических или технических ограничений.
Total votes 32: ↑30 and ↓2 +28
Comments 11

Постгресовая стата без нервов и напрягов

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

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

В тот же раз, мне нужно было не просто так разово посмотреть на какую-то стату, мне нужно было отслеживать её изменение. Не помню что это было точно, возможно надо было смотреть на изменение лага репликации, или с какой частотой вызывался какой-то конкретный запрос…
Так вот, поймав себя на мысли что мне мне хватает инструмента я начал поиски утилит под свою задачу, но увы, не нашел ничего того что мне бы зашло. Так появился pgCenter.
Читать дальше →
Total votes 36: ↑35 and ↓1 +34
Comments 19

Что происходит в рознице

Reading time 10 min
Views 39K


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

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

Потому что это интересно и внезапно.

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

Читать дальше →
Total votes 103: ↑93 and ↓10 +83
Comments 206

«Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin

Reading time 26 min
Views 20K
Если хочешь в чем-то разобраться — учись сразу у лучших. Сегодня на мои вопросы отвечает бог корутин и concurrency, Рома elizarov Елизаров. Мы поговорили не только о Kotlin, как вы могли бы подумать, но ещё и о куче смежных тем:

  • Golang и горутины;
  • JavaScript и его применимость для серьезных проектов;
  • Java и Project Loom;
  • олимпиадное программирование на Kotlin;
  • как правильно обучаться программированию;
  • и другие волнующие вещи.


Читать дальше →
Total votes 59: ↑53 and ↓6 +47
Comments 108

Как сократить код-ревью с двух недель до нескольких часов. Опыт команды Яндекс.Маркета

Reading time 6 min
Views 22K

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


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


Для начала надо представить, какой флоу в разработке у нас принят:


Читать дальше →
Total votes 47: ↑43 and ↓4 +39
Comments 42

Масштабируем разработку: от стартапа до сотни инженеров

Reading time 22 min
Views 8K
Многие другие крупные IT-компании, начиналась со стартапа, и Badoo не исключение. За последние годы компания прошла путь от нескольких десятков инженеров до нескольких сотен. Николай Крапивный был на передовой на большей части этого пути и принимал решения: что лучше делать, а что не делать, как справляться с проблемами. Его доклад на TeamLead Conf был посвящен этому опыту и картине мира, которая в результате сформировалась.

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



Рассказ состоит и трех частей. Первая — про коммуникации, про то, как они меняются с ростом компании. Вторая часть о том, как с увеличением количества инженеров в команде попытаться сохранить скорость разработки. И третья часть — от том, почему Badoo живет на два офиса, и как при этом справиться с проблемой общения.
Total votes 39: ↑37 and ↓2 +35
Comments 0

24-ядерный CPU, а я не могу набрать электронное письмо

Reading time 9 min
Views 100K
Я не искал неприятностей. Не запускал процесс сборки Chrome тысячу раз за выходные, а только занимался самыми обычными задачами 21-го века — просто писал электронное письмо в 10:30 утра. И вдруг Gmail подвис. Я продолжал печатать несколько секунд, но на экране не появлялось никаких символов. Затем внезапно Gmail отвис — и я вернулся к своему очень важному письму. Но впоследствии всё повторилось, только на этот раз Gmail ещё дольше не отвечал запросы. Это странно

Трудно устоять перед возможностью провести хорошее расследование, но в данном случае вызов особенно силён. Ведь я в Google работаю над улучшением производительности Chrome для Windows. Обнаружить причину зависания — моя работа. И после множества фальстартов и тяжёлых усилий мне всё-таки удалось выяснить, как Chrome, Gmail, Windows и наш IT-отдел вместе помешали мне набрать электронное письмо. По ходу дела нашёлся способ сэкономить значительное количество памяти для некоторых веб-страниц в Chrome.

В расследовании оказалось так много нюансов, что я оставлю некоторые для другой статьи, а сейчас полностью объясню причины подвисаний.
Читать дальше →
Total votes 137: ↑129 and ↓8 +121
Comments 161

Ищем имена с опечатками в PostgreSQL

Reading time 12 min
Views 32K
Все началось с того, что мне нужно было разработать поиск пациентов для одной внутренней медицинской системы. Логика работы была в том, что если мы не нашли человека в системе, то его нужно создать (а дубли пациентов плодить нельзя). В связи с этим одной из подзадач стала реализация поиска людей с учетом опечаток в их именах. Ну а поскольку я люблю PostgreSQL (а когда в руках у тебя молоток, то все похоже на гвозди), не сложно угадать, на чем я решил реализовать поиск с опечатками…


Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 29

Длинные уши асинхронности

Reading time 13 min
Views 9.8K


Разработчики React тяготеют к функциональному подходу, но с появлением MobX, появилась возможность работать с состоянием в более-менее привычном ООП-стиле. Mobx старается не навязывать какую либо архитектуру, позволяя работать с реактивным состоянием, как с обычными объектами. При этом он делает автоматическое связывание вычислений, когда достаточно написать C = A + B, чтобы при обновлении A, обновился и C.


В HelloWorld это выглядит просто, но если мы добавим fetch, отображение статусов загрузки и обработку ошибок, мы увидим, что получается много копипаста, а в код начинают просачиваться хелперы вроде when, fromPromise или lazyObservable. И уже не получается писать код так, как будто нет асинхронности. Я хочу разобрать некоторые подобные примеры в MobX и попытаться улучшить его базовую концепцию, развив идею псевдосинхронности.

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

Изоморфное приложение React JS + Spring Boot

Reading time 9 min
Views 41K


Про ReactJs, Java, Spring, рендеринг, Virtual DOM, Redux и прочие подобные вещи уже существует очень много всевозможных статей и практических наработок, поэтому я не буду в них углубляться.

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

Я не особо заморачивался на стиле и качестве кода, так что извиняйте, кому не придётся по душе =)

Цель моей работы просто заставить работать воедино такие вещи как ReactJS + Redux + WebPack + Java/Spring.

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

С радостью исполняю желание читателей.
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 13

Мониторинг с Prometheus в Kubernetes за 15 минут

Reading time 7 min
Views 58K


Прим. перев.: Автор статьи Giancarlo Rubio — DevOps-инженер из ИТ-компании LINKIT (Нидерланды) — через онлайн-ресурс ITNEXT делится лаконичным рецептом по настройке мониторинга с Prometheus в Kubernetes с помощью Prometheus Operator. Инструкция появилась как следствие недавнего опыта выбора и внедрения системы проактивного мониторинга после миграции проекта с bare metal на облачную инфраструктуру. Рецепт отлично подходит для быстрого теоретического (первая половина статьи) и практического (вторая половина) знакомства. Для некоторых команд исправлены URL'ы, которые в оригинальном материале, по всей видимости, были преобразованы движком medium.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 5

БЭМ + React: гибкая архитектура дизайн-системы

Reading time 7 min
Views 25K



Дизайн — это фашизм. Фашизму нужна питательная среда. Он начинает раскрываться в полной мере только на крупных масштабах. Идеальная среда для фашизма — это большая компания с огромным количеством продуктов. Например, Google или… Альфа-Банк. Фашизм априори не гибок…
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Comments 64

Качественное уменьшение изображений за константное время

Reading time 8 min
Views 27K

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


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



Уменьшение изображения 4928×3280 до 256×170 ближайшим соседом.


Рекомендую смотреть примеры из статьи в браузере в масштабе 100% и без ретины. То есть по максимуму исключить ресайз при просмотре.

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



Точки, которые попадут в конечное изображение размером 20×13.
Читать дальше →
Total votes 80: ↑78 and ↓2 +76
Comments 46

Курс молодого бойца PostgreSQL

Reading time 13 min
Views 523K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Total votes 79: ↑77 and ↓2 +75
Comments 59

20 лучших книг для продакт- и проджект-менеджеров

Reading time 5 min
Views 56K
Мы в редакции «Нетологии» вместе с преподавателями курса «Руководитель digital-продукта» сделали подборку лучших книг для продакт-менеджеров. Возможно, какие-то книги покажутся вам знакомыми… что ж, это не баян, а классика :) А классику знать обязательно.

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

Пять книг Кати Текуновой — руководителя сервиса «Рамблер/платформа» в Rambler&Co


Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 4

Information

Rating
Does not participate
Location
Реховот, Мерказ, Израиль
Date of birth
Registered
Activity