Обновить
90
0
Сергей Аксёнов @SergeAx

Создатель и руководитель инженерных команд

Отправить сообщение

Конкретно брэнд Яндекса влияет, потому что там действительно жёсткие интервью.

Слова, которые я сейчас напишу, я пишу так часто, что надо уже их в отдельную заметку в Evernote положить и копипастить оттуда.


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


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


На собеседовании нам позволяют по полчаса задавать любые вопросы о компании: какой у вас график работы? Какую технику предоставляете? Как проходит код-ревью? Какое у вас покрытие тестами? Какие методологии вы используете? Какой возраст кодбазы? Как вы управляете техническим долгом? Выделяется ли время на рефакторинг?


Как в этой ситуации мы можем говорить, что дело в ком-то ещё, кроме нас?)

Вы знаете, я регулярно слышу такие вот вопросы: "а разве бывают проекты с нормальным покрытием тестами?" "а разве можно писать всё время по SOLID?"


Пока мы будем это спрашивать, ответ всегда будет "нет, не бывает". Надо ставить вопрос по другому: "почему у нас на проекте нет тестов? почему мы не соблюдаем методологии, придуманные не самыми глупыми людьми? почему мы используем общеизвестные антипаттерны?" А ещё лучше: "почему я молчу на код-ревью, когда я вижу спагетти-код? почему я не прошу звать меня на собеседования с потенциальными новыми людьми в команде?"


В одном я готов дать слабину — документация в динамично развивающемся проекте как правило фатально отстаёт от функционала, поэтому надо или автоматом генерировать спеку на API, или наоборот — спеку писать руками, а из неё — генерировать boilerplate кода, контроллеры, DTO и вот это всё.

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


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

Будет тормозить команду? Научим.
Будет задавать тысячи вопросов — ответим.
Будет писать дерьмовый код? Отревьювим.

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

Спасибо за обзор, триггернули старую болячку — фантомная боль на месте слишком дорогого NewRelic) Огорчился, что они усложнили процесс триала, порадовался, что появился план pay-as-you-go.


А какие self-hosted решения вы рассматривали?

Хм, действительно, как же это так получилось? Дайте подумать… О, смотрите, а вдруг причина вот такая: одно мероприятие пригласило выступить Ричарда Столлмана, а другое — не пригласило? Звучит маловероятно, согласен, но других вариантов мне что-то в голову не приходит.

Debian, на который натянули ядро от Ubuntu

Можете пояснить, что вы имели в виду этим предложением? И Debian, и Ubuntu используют ядро Linux, при этом дистрибутив Ubuntu базируется на Debian. Скажем, Debian 9 за два года выпуска минорных версий 9.0… 9.9 поменял версию ядра с 3.16 до 4.9. Debian 10 вышел на ядре 4.19. При этом мы помним, что ядро Linux не придерживается семантического версионирования.

Наш мозг функционирует иначе в условиях переключенного контекста. На Курсере есть отличный курс "Learning how to learn", там приведён пример, что ученики запоминали материал лучше, если его давали в одном месте (аудитории), а потом повторяли в двух других (актовом зале и на улице).


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


А так сегодня компания отправляет человека узнать много нового за условную $1000, а в течение года после этого он заработает/сэкономит компании условные $10000, применив эти новые знания. А ролики на YouTube он посмотрит в метро по дороге домой, получит свою дозу дофамина — и всё это канет в Лету.

По моему это как раз тот случай, когда ради более компактного/оптимального опкода автор написал некрасивый (e.g. менее прозрачный, чем можно было бы) код.


function retry($retries, callable $fn)
{
    do {
        try {
            return $fn();
        } catch (\Exception $e) {
            $retries--;
        }
    } while ($retries > 0);

    throw new FailingTooHardException('', 0, $e);
}

Я специально использовал постусловие, чтобы получить функционально идентичный результат, хотя как по мне, retry(0, function() { ... } ) и даже retry(1, function() { ... } ) должно кидать исключение "Алё, какой смысл? Там должно быть хотя бы "2"!".

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

В целом я бы не хотел заниматься неймдроппингом, если меня погуглить — всё найдёте. Сейчас я работаю вместе с автором статьи, это видно в хабра-профиле. Стек у нас — монолит на PHP с вынесенным в Java/Kotlin-сервисы performance critical функционалом, БД — Монго, KV — Redis, немного машинки на Питоне, куда без неё. Находимся в процессе переезда из AWS в свой ДЦ, о чём однажды выйдет супер увлекательная статья) Доставляем контейнерами (звучит почти как работа в логистической компании).

У меня сейчас уже третий)

Так докер — это как раз способ один раз настроить интерпретатор, зафиксировать базовый образ и дальше все проекты наследовать FROM этого образа.

Вы так пишете, как будто это что-то плохое, когда на самом деле это социальный дарвинизм чистой воды. Нанимает компания в штат трепачей без понимания как писать код, платит им приличный оклад — через некоторое время конкуренты, которые таких людей не нанимают, выносят такую компанию с рынка ногами вперёд. Хватается компания за модные фреймворки и языки — через некоторое время она или смертельно истекает деньгами, вынужденная оплачивать самых дорогих носителей знаний о хайповых технологиях, или её выносят с рынка ногами вперёд конкуренты, которые пишут на PHP и Java с Symfony и Spring.

Спасибо за математику с биологией! Обратите, однако, внимание вот на что:


  1. Движение глаза по экрану — не просто норма, а важный элемент эффекта присутствия. Если экран такой, что глаза остаются неподвижными — это приводит к ощущению "я смотрю в окно", которое совсем не нужно для просмотра фильмов.


  2. Размер и количество пикселей заметно влияют на артефакты растеризации, особенно при показе графики и/или титров. Так что 4К картинка даже на большом расстоянии часто выглядит лучше.



Кроме того, заметно играет роль технология дисплея, от которой зависят яркость, контраст, цветовой охват и глубина чёрного.

Вот за это мы JSON и не любим!

Напишите sonyarybak на sr@fun.co адрес и контактный телефон)

Вот я садовая голова! Спасибо ещё раз!

У тебя остались стикеры с ML-митапа? Они пободрее. Если нет — у меня заныканы, завтра принесу)

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность