Андрей Бреслав
@abreslav
Co-founder @ Alter (psyalter.ru), Ex-Kotlin
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Зарегистрирован
- Активность
Co-founder @ Alter (psyalter.ru), Ex-Kotlin
Ваш аккаунт
Надо помолчать
Done: https://bit.ly/abreslav-keep-quiet
Надо помолчать
Done: https://bit.ly/abreslav-keep-quiet
«Обратные интервью» или Как вовремя перевернуть доску
Повторю свой комментарий выше:
«Обратные интервью» или Как вовремя перевернуть доску
Да нет, конечно. Тестирует нагрузку сам кандидат, а я смотрю — как. Из вот из того, как тестирует, в совокупности с тем, что написано в коде — делаю вывод про уровень квалификации.
«Обратные интервью» или Как вовремя перевернуть доску
Я так понял, что обидел Дмитрия своим коротким ответом. Мне жаль, что обидел, обижать не хотел совсем. Мне стоило более подробно поговорить с Дмитрием, прежде, чем принимать решение.
Из комментариев Дмитрия выше мне видно, что мы с ним не сработались бы, а это очень важный фактор при найме, тем более в стартап. Увидев, как Дмитрий сформулировал свой отказ делать тестовое задание (он его запостил выше), я решил именно, что мы не сработаемся. Оказывается, я не ошибся, но это все-таки случайность, надо такие вещи перепроверять, разговаривая более подробно.
«Обратные интервью» или Как вовремя перевернуть доску
Если бы мне казалось, что нет, я бы не давал задание :) Мне кажется, что есть. И по факту отказались делать задание пара человек. Возможно, они, конечно, и были самыми подходящими, но по форме отказов я предполагаю, что мы бы с ними не сработались в любом случае :)
«Обратные интервью» или Как вовремя перевернуть доску
Дублирую комментарий выше:
Я такие скрипты не проверяю, просто запускаю нагрузочный тест.
«Обратные интервью» или Как вовремя перевернуть доску
Там такие условия: дано описание примитивного REST API на три эндпоинта, его надо реализовать и развернуть где угодно, чтобы было доступно из интернета и держало 100 RPS, протестировать нагрузку и корректность. Технологии можно использовать любые, какие бы стали использовать в продакшене.
«Обратные интервью» или Как вовремя перевернуть доску
Если есть время, согласился бы. Если времени нет, отказался бы без обид.
«Обратные интервью» или Как вовремя перевернуть доску
Это было техническое интервью. Позиция, на которую я тебя собеседовал, предполагает сильные технические навыки. Тимлидское собеседование я провожу только с теми, кто прошёл технические этапы. Ты отказался их проходить, на чем все и закончилось.
«Обратные интервью» или Как вовремя перевернуть доску
Прямо "что бы ты спросил_а на моем месте?" не пробовал, но собираюсь. Пока спрашивал: "что еще стоило бы у тебя спросить?"
Надо помолчать
Там написано, что я делаю: высказываю своё мнение после остальных, долго-долго задавать вопросы, чтобы все подумали — это педагогика, имеет право на существование, но довольно редко.
Если нельзя объяснить, почему одно лучше другого, бывает по-разному. Есть ситуации, когда делаем, как хотят остальные, есть ситуации, когда я скажу: одно решение не лучше другого, но я чую неладное, поэтому принимаю решение делать вот так. Важно это явно проговорить, мне кажется, и это довольно сложно не забыть сделать
Надо помолчать
Пока не планировал, но идея интересная :)
Kotlin: ищем Head of Marketing
Он до этого был инженером, потом побыл у нас Product Marketing Manager, теперь снова хочет побыть инженером
«Скорее всего, будет расти как снежный ком» — Андрей Бреслав и Антон Кекс о Kotlin
Скорее да, чем нет, но пока это довольно расплывчатые планы.
Мы как всегда обязательно всем все расскажем перед тем как непоправимо облажаться :)
Уже :)
«Скорее всего, будет расти как снежный ком» — Андрей Бреслав и Антон Кекс о Kotlin
Самый-самый толстый protobuf-java весит немного больше 500К, так что я сомневаюсь, что дело в нем :) Наш рефлекшен требует на рантайме большой кусок компилятора, который умеет работать с типовой информацией, вот он и весит так много. Мы будем работать над его уменьшением, конечно, но это потребует какого-то времени.
Макросов как таковых мы делать не хотим. Нормальный тулинг для статически типизированного языка с макросами написать крайне сложно (какие-то более-менее успешные примеры есть, но их мало, и они весьма непросты по реализации). Наш Scala-плагин к IDEA, например, использует черта в ступе и черную магию для этих целей, причем получает не 100% результат, насколько мне известно. Мы так не хотим :)
Однако это не значит, что у нас не будет никакого метапрограммирования. Во-первых, мы рассматриваем возможность поддержать что-то вроде expression trees, как в C#, но это все-таки рантаймовый механизм. Во-вторых, для compile time мы постепенно будем развивать инфрастурктуру плагинов к компилятору. То есть можно будет написать свой наикрутейший фреймворк, который порождает наихитрейший код во время копиляции, но не на макросах, а в виде compiler plugin. Чем это лучше макросов? Тем, что код, выполняемый в процессе компиляции, не является частью самого компилируемого проекта, поэтому тулинг не должен сойти с ума, чтобы его понять. Плюс, API таких плагинов можно сделать таким, чтобы они одновременно работали и в компиляторе, и в IDE, что, опять же, гарантирует качественную инструментальную поддержку.
Почему Kotlin отстой
Вводить такие ключи и прагмы — это крайняя мера, мы пока попробуем без них. (Аннотации на файл в Котлине есть, но их для таких целей мы использовать пока не хотим.)
Неприятнее всего было, конечно, не название, а то отношение к нам, которое выражено в тексте.
Типы сообщений компилятора Kotlin, которые нужно использовать в Suppress
Слово internal означает "доступно внутри модуля". Ваш main в том же модуле.
Мы не разрешаем ссылки и inline функций на приватные декларации, потому что это нарушает главный принцип работы с ними: изменения приватных деклараций не должно ломать клиентский бинарный код. Там выше подробно объяснили, почему код сломается, если разрешить ссылку на private.
Мы разрешаем ссылки на internal-декларации со специальной аннотацией, чтобы была возможность что-то не показывать клиентам из другого модуля. Лучше сделать не можем, к сожалению.
Типы сообщений компилятора Kotlin, которые нужно использовать в Suppress
Не вижу там ссылки на реквест в трекере
Почему Kotlin отстой
Я понимаю, что писать возмущенные тексты приятно :) Не могу сказать того же о чтении таких текстов. Постараюсь по существу ответить на ту часть, которая не покрывается документацией.
Про тернарный оператор (?:): многим не нравится, мы посмотрим, что можно сделать.
Про литералы для коллекций: тоже сделаем.
Объявления новых типов, а не алиасов тоже сделаем.
Неявные преобразований числовых типов у нас действительно нет. Есть перегрузки для арифметических операций. Мы думаем над тем, как сделать поменьше явных приведений типов, но с этим пока есть некоторые сложности.
C++ для JVM не сделаем. У нас другие задачи :)