Любому Java-разработчику понятно, сколько важного остаётся незаметным для конечного пользователя. Кнопочки на сайте видны всем — но при взгляде со стороны можно никогда не задуматься о бэкенде, без которого эти кнопочки не работали бы.
А у Java-конференции Joker, как и у любой другой конференции, есть свой «бэкенд». «Фронтендом» можно считать спикеров: они видны всем, их гигантский вклад понятен. Но есть и большая работа, происходящая «за кулисами». Кто следит, чтобы доклады были достойного уровня, и помогает спикерам его достичь? Кто решает, какие темы подходят мероприятию? Кто помогает привлечь зарубежных звёзд?
Программный комитет конференции — это «бэкендеры» программы, и в преддверии Joker мы решили расспросить ПК. Во-первых, так можно увидеть мероприятие со стороны, обычно незаметной участникам. А во-вторых, от интервью есть и конкретная практическая польза: поскольку они уже видели лично все доклады грядущего Joker, могут подсказать, на что обратить внимание.
— Для начала расскажите кратко о себе: кто вообще те люди, которые принимают важные решения о программе Joker?
Иван Крылов: Я ведущий инженер в компании Azul Systems, занимаюсь JIT-компиляторами и виртуальными машинами.
Андрей Когунь: Я из Москвы, в IT более 15 лет. Сейчас работаю в компании КРОК, уже более 6 лет. За свою карьеру принял участие в большом количестве проектов по заказной разработке, в основном систем электронного документооборота и автоматизации бизнес-процессов для ряда крупных российских компаний в роли ведущего разработчика и архитектора. Преподаю для студентов московских вузов курсы по основам разработки с применением Java-технологий. Основатель и организатор встреч московского сообщества Java-разработчиков JUG.MSK.
Глеб Смирнов: Я работаю в компании Plumbr, мы делаем мониторинг надёжности и производительности. Занимался за последние четыре года многим: от манипуляций внутренними структурами Java-машины «на живую» в нативной памяти до управления on-call командой. Сейчас мы уже не настолько стартап, и я больше сфокусирован на надёжности наших собственных сервисов.
Дмитрий Александров: Я родом из Петербурга, живу в Болгарии. Работаю архитектором в T-Systems. Люблю Java, обладаю званием Java Champion, лидер болгарской Java User Group, организатор множества конференций внутри страны (например, JPrime).
Олег Анастасьев: Работаю ведущим разработчиком в Одноклассниках с 2007 года в команде платформы. Занимаюсь разработкой архитектур и решений для высоконагруженных систем, больших хранилищ данных, решением проблем производительности и надежности портала.
Виктор Полищук: Я спикер, алкоголик и красавец. Любят меня не за это, а в основном за то, что я стараюсь рассказать людям максимально полезную информацию. Я жуткий технарь и обожаю это дело. Одна из моих основных задач состоит в том, чтобы в мире было больше технарей и меньше гуманитариев. Давайте от них избавляться! Ладно, на самом деле я не сильно против гуманитариев, но топлю всё-таки за технарей.
Владимир Ситников: Я занимаюсь оптимизацией производительности Java/Oracle DB приложений в компании Netcracker. Я committer в Apache JMeter, Apache Calcite, PostgreSQL JDBC. Мне нравится узнавать новое, и я помогаю готовиться докладчикам на конференциях Joker, JPoint, Devoops, Heisenbug.
— Как вы попали в ПК?
Глеб Смирнов: Какое-то время назад писал много статей на Хабре в хаб Java, они тогда собирали много плюсов. Затем со мной связался Лёша 23derevo Федоров и предложил сделать доклад. Несколько лет я активно выступал на конференциях по всему миру, в том числе Joker. Но на подготовку новых хороших докладов нужно очень много времени, и я перестал. А потом меня позвали в ПК, и я прижился, мне понравилось. Выяснилось, что можно потратить столько же времени в год, как на подготовку собственных докладов, только в результате получится не один доклад, а куча. Просто не у тебя, а у других людей. Это здорово.
Владимир Ситников: Как с языка снял! Всё так.
Иван Крылов: В первый раз я попал на Joker как участник, через какое-то время стал докладчиком и выступал на нескольких конференциях, а в этом цикле решил попробовать себя в ПК.
Андрей Когунь: Я достаточно давно участвую в ПК всех Java-конференций JUG.ru Group, а также состою в ПК DevOops. Я помню историю Joker ещё с тех ранних времён, когда у этой конференции не было программного комитета, и программой единолично занимался Андрей Дмитриев. Тогда с докладчиками было легко: бери и зови очевидных людей, многие были из Oracle. Но затем конференция выросла, вышла на серьезный уровень, а все очевидные докладчики уже побывали, и надо было расти за счёт новых. Тогда появился ПК, и мне кажется, от этого сама конференция стала лучше. Для меня принципиально участвовать в чем-то таком, где я не зарабатываю деньги, но приношу какую-то пользу.
Виктор Полищук: Сейчас расскажу, почему я согласился участвовать в ПК и взял на себя эту ответственность, хотя представлял себе объем работы, а сам на этот Joker даже не приеду.
Когда я раньше ездил на Joker, JPoint и другие конференции, там всегда были под капотом какие-то организаторы, и они что-то делали, чтобы я получал свои знания. А сейчас пришло время вернуть должок.
Я хотел бы видеть на конференции доклады, которые помогут людям сделать правильные решения, которые уже кто-то отработал, а затем пришел и рассказал о них. А с другой стороны, хочу полет мысли для тех инженеров, которые работают с кровавым энтерпрайзом, чтобы у них была дополнительная пища для ума. Мне кажется, это развитие, это позволяет продвигать идеи. Мне действительно нравится рынок идей — за это я люблю конференции.
— Что именно делает программный комитет?
Иван Крылов: ПК занимается несколькими вещами. Во-первых, формирует общую структуру конференции: решает, каких докладов будет больше, а каких — меньше, и на какую тему. ПК смотрит заявки, которые к нам приходят, некоторое количество людей зовем самостоятельно на конференцию. Как правило, это очень занятые и известные спикеры, тяжело добиться того, чтобы они сами подавались на конференцию, поэтому мы шлем им индивидуальные приглашения.
Далее отбираем заявки, строим нашу программу. Чтобы избежать дисбаланса, мы думаем о том, какое количество докладов мы хотим на каждую из тем. После того, как сформировались канва и агенда конференции, что на ней будет, мы работаем с докладчиками. Особенно с докладчиками, которые не имеют большого опыта выступлений на конференциях. Мы слушаем доклады и помогаем улучшить их качество, чтобы доклады собрали максимальные оценки у слушателей на конференции.
Дмитрий Александров: Учитывая, что у меня большой конференционный опыт (и не только в России), я считаю, что я относительно в тренде. Я понимаю и о чем говорят на Западе, и какая публика у нас. Например, множество европейских докладов у нас просто не пойдут, потому что мы хотим хардкор, хотим case study, хотим детали, очень четкое и понятное изложение. И есть много случаев, когда крутейшие европейские спикеры у нас проваливались, не отвечая этим требованиям. Поэтому в ПК важная работа заключается в том, чтобы понять, действительно ли тема актуальна для конференции, применима ли она и как ее рассказывает докладчик с учетом нашей специфики. Очень много таких нюансов. Я знаком со многими зарубежными спикерами и пытаюсь привезти их в Россию, объясняю им нашу специфику.
— При подготовке конференции каждый участник ПК отвечает только за конкретные доклады, закреплённые за ним, или вы пересекаетесь?
Иван Крылов: У нас есть пересечения по следующей причине: важно, чтобы не было ситуации, при которой мнение одного человека все определяет. Поэтому мы стараемся брать такие области, чтобы было определенное пересечение и хотя бы два человека составили полноценное мнение о докладе.
Короткие описания докладов читают все в ПК. А потом, когда идет работа непосредственно с развернутым содержанием доклада, хотя бы два человека смотрят его и дают свои комментарии, потому что все видят немного под разным углом. Например, если бы я смотрел только со своей стороны на доклады про виртуальные машины или на доклады, связанные с низкоуровневыми вещами, то в результате доклад у соответствующего спикера получился бы ориентирован исключительно на разработчиков виртуальных машин. В то время как слушатели разные: кто-то действительно разрабатывает виртуальные машины, а кто-то хочет получить взгляд для Java-разработчика на вещи, связанные с виртуальными машинами. И тут приходят мои коллеги, одергивают меня, и в результате получается что-то, что интересно большинству.
— Какие доклады на Joker 2018 вы курируете? Порекомендуете что-то конкретное заранее?
Глеб Смирнов: Мне ближе всего темы с более низкого уровня: устройство JVM, профилирование, всякие кишочки. В этом году я, например, отвечаю за «Интеграцию виртуальных машин .NET и Java» от Григория Кошелева, интересный доклад. Особенно примечателен своей необычной для Java-конференции перспективой. Обычно все говорят про то, как из Java дергать native, например, в тот же .NET — а Григорий, наоборот, рассказывает, как из .NET пробраться в Java-машину.
Ещё порекомендую доклад «Jlink и Custom Runtime Image» от Юрия Артамонова. Там про то, как собрать, используя фичи из Java 9, минимальный образ Java-машины и поставлять его на клиентские сервера без необходимости иметь уже там готовую Java-машину.
Но не все доклады низкоуровневые: например, я курирую доклад Владимира Плизги «Spring Boot 2: чего не пишут в release notes». Про то, как ты вроде обновился на второй Spring Boot, а потом ещё несколько недель ходишь и собираешь шишки на лбу. Владимир тщательно описывает грабли и даёт много толковых рекомендаций по тому, как на них не наступить.
Андрей Когунь: Раньше мне хотелось ревьюить доклады, в которых я что-то понимаю, например, про Spring. В целом я прикладной разработчик. А теперь я пришел к тому, что больший интерес проявляю к тем докладам, в которых, вероятно, ничего не понимаю. Я все чаще смотрю на все это так, что я как член ПК могу первым увидеть все доклады и дать оценку с точки зрения всей аудитории конференции: будет ли что-то понятно? Смотрю именно на качество самого доклада, а не контента.
Мы считаем, что спикеры, которых мы принимаем в программу, — уже эксперты в своей теме. А вот помочь структурировать доклад, сделать его качественным, работать над подачей — это то, что может сделать ПК. В частности, недавно слушал доклад про Fuzzing, это для меня совсем новая вещь. И когда ты пытаешься осознать, о чем идет речь, доносишь до спикера, где тебе было что-то не очевидно, и задаешь ему вопросы, то это наталкивает спикера на какие-то мысли. Для меня как для человека, который тоже делал доклады, это самое ценное в подготовке — когда тебе могут дать подобного рода обратную связь.
В ПК есть эксперты в разных областях, и достаточно часто, конечно, происходит и помощь с контентом, что-то добавляется. Например, мы общаемся сейчас с Кириллом Толкачевым и Максимом Гореликовым по поводу их доклада, и они прямо спрашивают мнение: хорошо или нехорошо, добавить ли пример или что-то еще. Здесь я понимаю, о чем идет речь. Если говорить про Баруха, то он не любит готовиться сильно заранее, но любит, когда ему накидают какие-нибудь мысли. В частности, некоторые кейсы, которые были на его докладах про Alexa, мы придумали в ходе брейншторма в рамках созвона ПК.
Дмитрий Александров: У нас получилась очень сбалансированная программа. Есть интересные case study, есть кишочки, есть смузи и JVM-овские темы, есть performance темы, фреймворковские темы, есть даже темы, которые выбиваются из Java. Например, машинное обучение, Postgres и так далее. Здесь получился, на мой взгляд, хороший баланс. Нет какой-то перекошенности конференции в сторону Spring или в сторону перформанса, есть все.
Что касается конкретных докладов, то это одна из конференций, записи докладов которой каждый захочет пересмотреть. Будет отличное шоу от Венката Субраманиама. Будет Тагир, у него хорошая тема на мой взгляд, она очень актуальна. Будет интересный case study с алгоритмами поведения публики при планировании билетов на чемпионат мира. Это круто, потому что это недавно происходило, и это интересный способ алгоритмизировать все это дело.
Мне очень понравилось, что у нас будет про Postgres. Это выбивается из Java, но мы все этим пользуемся. Там будет хорошо, на мой взгляд. Будет и машинное обучение для новичков. Big Data и машинное обучение — крутые темы, но реально хорошего ввода на них пока еще не делали. Брали маленький кусочек, углублялись в тему, и usability от таких докладов был маленький. А тут usability будет большой. Плюс будет и шоу, и хардкор, и будет Scala — мне это очень нравится. Scala — это инкубатор идей, которые впоследствии выезжают в Java. Хотя те темы, которые будут на конференции, чисто физически в Java не въедут, потому что не хватит конструкций языка все это дело написать. Тем не менее, это круто, потому что хардкорные скалисты найдут для себя хорошую тему чтобы послушать. Тема не нова, но товарищ ее представит хорошим образом.
Олег Анастасьев: Я, конечно, лучше всего понимаю, чем интересен доклад Вадима Цесько про реактивную раздачу музыки в Одноклассниках.
С одной стороны, это интересно с точки зрения того, как на Java выжать из железки всё. Музыки много, раздавать её надо много кому одновременно и быстро. Поэтому, хотя Java и «write once, run anywhere», тут тесная интеграция с операционной системой, чтобы выжать по максимуму. При этом нативного кода там нет, это все Java с one-nio.
С другой стороны, интересно с архитектурной точки зрения, потому что
рассматриваются вопросы отказоустойчивости. Все построено так, чтобы для клиентов сервис не прекращал работу. Это редкий случай системы resilience first, где отказоустойчивость или устойчивость к сбоям зашита, начиная с архитектуры и заканчивая самыми низкоуровневыми штуками.
А с третьей стороны, интересно с точки реактивщины. У нас реактивный стрим может открыться, начиная с HDD в дата-центре, на котором лежит нужный трек, и будет проброшен через всю инфраструктуру Одноклассников вплоть до этого раздатчика. Раздатчик будет выдавать стрим прямо непосредственно с диска. Для этого пришлось написать свою реактивную систему — мы не просто взяли Reactive Spring, поставили пару аннотаций @Autowired, и все заработало.
Владимир Ситников: По выбору докладов я рекомендую найти на конференции кого-нибудь из ПК и спросить. И/или найти докладчика и спросить про его доклад. Это работает. Я сам так делаю, когда не вхожу в состав ПК конференции. Да, у докладов есть описание (его же все читают? :) ), но на два доклада сразу пойти не получится, и гораздо лучше, если сразу попадёшь на более полезный для себя доклад, чем ходить между залами первые 5-10 минут.
— Есть ли в программе какая-нибудь штука, которую вы не знали, что-нибудь, что вас удивило — возможно, далёкое от вашей основной специализации?
Глеб Смирнов: На прогонах почти всегда что-то новое для себя узнаю. Например, я не работал с байт-кодом Java 4 ни разу. Так уж повезло, что наш Java-агент всегда поддерживал клиентские приложения, скомпилированные минимум под Java 5. А на Joker будет выступать Женя Мандриков, который рассказывает про то, как неочевидно некоторые языковые структуры транслируются в байт-код, и у него там есть археологический пример с Java 4. Оттуда узнал, что раньше была инструкция jsr (Java Subroutine). Через неё, к примеру, можно было довольно компактно выражать finally-блоки. Но с верифицируемостью там всё плохо, поэтому к Java 5 её выпилили.
Виктор Полищук: Один из самых необычных докладов, которые я видел — про каскадные транзакции. Он меня зацепил, потому что я как промышленный девелопер видел много всякого ужаса, когда люди подключают распределенные транзакции в код, и после этого код перестает работать. Иногда он сыплется в местах, в которых ты ожидаешь меньше всего. Условно говоря, не существует ни одной нормальной реализации распределенных транзакций.
Товарищ будет рассказывать на английском, как они в TransferWise смогли с помощью простых инструментов схлопнуть сложные двухфазные транзакции в нормальные однофазные, к которым мы привыкли и с которыми проблем не возникает. Мне кажется, что этот подход — будущее всего распределенного мира. При разработке микросервисов нужна транзакционность, атомарность. И ее можно достичь либо с помощью распределенных транзакций (которых не существует, и никто до сих пор не знает, как их делать), либо с помощью каких-то изменений в архитектуре твоего кода. Немного изменив подход, ты получаешь те же гарантии, только намного проще и
надежнее. Мне кажется, это для практикующих инженеров будет очень полезный
доклад. Тот доклад, который должен помочь всем-всем-всем.
Владимир Ситников: Одним из моих интересов является функциональное программирование. Без фанатизма, конечно, но есть что-то привлекательное в этих подходах. Так вот: на этот раз будет целых два доклада John McClean о производительности persistent collections и Олег Нижников о tagless final. И это не математические доклады для математиков, а доклады с прямой практической пользой.
— Что запомнилось при подготовке?
Андрей Когунь: Мне очень нравится этап отбора заявок. Заявок очень много, очень много интересных людей, много неожиданных моментов. Иногда думаешь, неужели этой темой или технологией до сих пор кто-то занимается и интересуется, то есть это возможность посмотреть на мир пошире. Я бы не сказал, что имею какое-то преимущество перед аудиторией конференции в том, что все-таки приходится видеть доклады в том виде, в котором на конференции они не показываются. Мне нравится отбор заявок и возможность сформировать программу, которая будет на конференции, поставить доклады таким образом, чтобы они органично смотрелись. Бывает прикольно, когда ты знаешь, что в течение конференции можно сходить на 3-4 доклада, и они будут друг друга дополнять. Так получается, потому что есть какая-то технология, которая на текущий момент самая модная и много кто по ней хочет доложить, какие-то новые веяния. Редко рассказывают о чем-то устаревшем. Когда мы отбираем заявки, там случается много всякого неожиданного и интересного, интересные знакомства и общение. Заявок у нас больше десяти на одно место на последней конференции. Со всеми мы созваниваемся, со всеми общаемся, и это действительно круто.
Иван Крылов: С Иваном Углянским получилась такая ситуация. Иван работает в компании Excelsior LLC, много лет является инженером команды рантайма, он разработчик виртуальной машины. Тот замечательный доклад, который он изначально предложил, был с сильным фокусом на слушателей, которые глубоко разбираются в деталях виртуальной машины. В то же время мы понимаем, что большая часть аудитории хотят понять паттерны и антипаттерны программирования на Java, хотят видеть примеры и уроки, которые они могут вынести из докладов. Сухой рассказ про алгоритм устройства сборщика мусора не позволит им вынести какие-то явно применимые советы из доклада. Поэтому мы с Иваном поработали и он добавил некоторое количество примеров, которые будут действительно полезны.
— Чем Joker отличается от других конференций?
Андрей Когунь: На мой взгляд, Joker — очень душевное место, туда всегда приятно сходить. Эта атмосфера создаётся общением: я бывал на разных конференциях, я люблю общаться, но не всегда бывает так, что даже спикеры общаются между собой. А если ты спикер Joker, то, как правило, ты сразу оказываешься во всей этой тусовке. И к этому присоединяются и участники конференции. Есть ребята, которые много лет ходили на конференцию, а теперь сами выступают с докладами. Например, к нам присоединился Паша Финкельштейн, он много лет ходил на конференцию, а теперь выступает с докладом. Люди на Joker знакомятся, начинают общаться, на Joker здоровская атмосфера. Люди вливаются в нее. Это то, что для меня отличает Joker от других конференций, я на него обязательно приеду.
Со многими ребятами из этой атмосферы я в постоянном контакте. Есть всякие чатики, например, в разборе полетов часть спикеров участвует. В каком-то виде сообщество существует постоянно. Есть люди, с которыми ты встречаешься на разных митапах. Очень здорово, что это общение не ограничено двумя днями, оно постоянно.
Глеб Смирнов: Нам сами спикеры говорят, особенно зарубежные, когда общаются с ПК, что никто никогда так тщательно не работал с заявками. Мы каждую внимательно проверяем: абстракт, план, слайды, тренировки. Так почти никто не делает. Есть отдельные личности, которым не очень подходит такой режим работы, но большая часть благодарна, поскольку и им полезно, и нам. Мы даем полезный фидбэк, а взамен получаем хороший доклад.
— Пожелаете что-нибудь напоследок читателям?
Виктор Полищук: Конкуренция в Java-мире, в JVM-языках — то, что заставляет эту платформу развиваться. Как только что-то одно победит, мы не выживем. Приходите на конференцию: чем больше разработчиков Java, Kotlin, Scala, еще каких-нибудь JVM-based языках, чем больше нас, тем стабильнее и живее будет эта платформа. Поэтому иди и сделай Java еще более живой, чем она есть.
Дмитрий Александров: Эта конференция получилась очень сбалансированной. Я думаю, что многие из посетителей найдут нужные аспекты применения всех технологий для себя. Будет не очень много искусственного и просто интересного, будет много практики и того, что может стать практикой, того, что может быть применено. Очень большой охват технологий получился. Найдут для себя интересные вещи, мне кажется, очень многие люди, приверженцев разных течений, фреймворков и платформ. Каждый для себя может что-то новое почерпнуть и услышать, как это сделано у других, чтобы сделать для себя выводы. У нас очень часто на конференции обсуждаются альтернативные технологии к какой-то. Есть одна технология, а есть альтернатива. В этом вся крутость конференции, на мой взгляд. Баланс охвата аудитории. Посмотреть, поговорить и пересмотреть все видео. Есть технология, есть альтернативная ей, которая достойна обсуждения и достойна хотя бы того, чтобы о ней знать.
Глеб Смирнов: Конференция проходит в Экспофоруме, в десяти минутах на машине от которого расположен петербургский пригород Пушкин. Чем культурно бухать, можно вместо этого пойти культурно прогуляться. Особо рекомендую сходить на экскурсию в мемориальный музей-лицей: посмотреть, где учился Пушкин, проникнуться идеей великого общего дела, найти масонскую символику, все дела :)
Тем, кто приезжает на конференцию из другого города, обязательно рекомендую сходить в Эрмитаж, там как раз выставка работ Рембрандта из Лейденской коллекции. В воскресенье после конференции — самое то!
Владимир Ситников: Я рекомендую познакомиться с докладчиками (и/или другими участниками конференции). Уже запланировали подписать книгу у Robert Scholte? Он, к слову, предводитель Apache Maven. Интересуетесь производительностью? Тогда, как минимум, стоит встретиться с авторам крутейших в мире профайлеров Marcus Hirt (JFR) и Андрею Паньгину (async-profiler). И так далее.
В кулуарных беседах можно узнать много полезного.
Целиком программу Joker можно увидеть на сайте. А до самой конференции остаётся лишь несколько дней — если всё ещё не определились, пора это сделать!