rawg

Когда продакт попросил добавить сортировку игр по рейтингу

Основная проблема — как сделать так, чтобы инди-игра с двумя «пятерками» не встала вперед блокбастера с тысячью «пятерок» и одной «двойкой».

Интересно, что IMDb не раскрывает свой алгоритм рейтингования, чтобы не накручивали, а для top-250 используют Bayesian estimate.

Признаюсь, я откладывал реализацию GDPR в RAWG, думал «вот получу комментарий от наших дорогих (в смысле оплаты) юристов и потом буду действовать согласно их рекомендациям».

А потом прочитал вот эту статью «истерия по поводу GDPR» и понял, что для малого и среднего бизнеса юристы по поводу GDPR нафиг не сдались.

Я лично двигаюсь по отличному чеклисту и интерактивному тесту от UK ICO (нет, Британия не выпускает криптовалюту, это Information Commissioner's Office, аналог, как ни странно, Роскомнадзора).

Ну и самое важное — acting in good faith. У меня сильно наследие российских реалий, где нужно соответствовать букве закона, иначе любой регулятор (при желании/заказе) тебя нагнет и 7 шкур снимет. Все, с кем я общаюсь про GDPR повторяют — пойми дух закона, действуй по нему, если не уверен — попроси помощи у своего местного регулятора. Если посмотреть со стороны, «взглядом марсианина» — так и должно всё работать.

Rawg.io ищет второго бэкенд-разработчика. Нас 3 программиста и мы делаем лучший сайт про видеоигры (всего 14 человек в компании).

TL;DR Работа, Python, Django, DRF, микрокоманда, Remote.

Под капотом у нас Python 3.6, Django 2, Django Rest Framework, Postgres, Celery, Docker на бэке и React на фронтенде. У нас есть стандартный CRUD (сейчас около 20 тысяч пользователей в месяц) и нестандартные задачи скрепинга/импорта/мержа игровых данных из XBox Live, PSN и Steam с последующим миксом видео и фото из Youtube, Twitch и Imgur. Редакторы активно используют Django Admin для редактирования базы игр (52 тысячи, будет расти до 200 тысяч).

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

Мы работаем по модели Basecamp, когда в начале 2-4 недельного «цикла» микро-команда — фронт + бэк и дизайнер получают хорошо сформулированную бизнес-задачу с примерными макетами, а дальше мы минимально дергаем команду разработки, чтобы не отвлекать и не мешать. Коммуникация происходит в Basecamp и немного в Slack, все Remote.

Из важного — codebase свежий (первый коммит год назад) и написан одним человеком (Антоном, который сейчас единственный бэкендер), жесткого легаси или костылей там (пока) нет. Мы используем стандартные тузлы, такие как github, docker, ci (есть даже blue green). Рабочее окружение разворачивается парой команд (используется docker). Мы пишем unit-тесты, но не маниакально, а для удобного тестирования и контроля работоспособности.

Мы ищем человека с опытом программирования на Python и Django (опыт работы с DRF и Celery будет большим плюсом), чтобы не терять время на изучение азов. При этом мы готовы рассмотреть как опытных, так и начинающих кандидатов. Нам важно желание приносить пользу пользователям и бизнесу, а не «придумывать красивый код ради кода»

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

Пишите на python@rawg.io или мне в личку.

Давно ничего не писал и чувствую необходимость перед вами объясниться.

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

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

Дорогие коллеги из Медузы подарили мне, на прощание, первую в моей жизни приставку — Nintento Switch. Я почти каждый вечер погружаюсь в мир Зельды — про это я вам обязательно расскажу как-нибудь подробнее.

Но сегодня у меня совсем другой пост: вакансия.

Rawg.io ищет продакт-дизайнера. Мы строим лучший в интернете сайт про видеоигры.

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

На борту уже несколько тысяч игроков, 50 тысяч (!) игр, импорт профилей с 3 главных платформ (Steam, Xbox и PlayStation). Впереди бомбическая лента новостей (на основе того, во что играл ранее), UGC-редактирование базы и вознаграждения за достижения в играх. Самая настоящая внутренняя экономика, где игроки получат криптовалюту и плюшки за свои ачивки.

Вы станете вторым дизайнером в команде (всего у нас сейчас 14 сотрудников). Один дизайнер не вытягивает ни по количеству смыслов, ни по скорости отрисовки (мы любим красоту). Мы ищем не винтик в большой отдел, а профессионала, способного работать в маленькой команде.

Вы будете придумывать поведение и визуальную составляющую продукта вместе с сооснователем проекта Алексеем Горностаевым (ex-CPO kanobu) и реализовывать его в жизнь вместе с классной командой разработки во главе с техдиром Саматом Галимовым (ex-CTO Медузы). Вашим напарником будет Андрей Кулагин.

Мы — remote команда. У нас есть коворкинги в Москве, Вильнюсе и Риге, где порой мы собираемся вместе.

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

Напишите нам на designer@rawg.io. В письме хочется прочитать про вас, ваши последние проекты и ваш вклад в них. Пара мыслей про Rawg также не будут лишними.

P.S. На собеседовании часто слышу «работал в классном проекте, потом деньги закончились и стартап закрылся». Мы уже подняли 4 миллиона долларов и уверены, что соберем планируемые 10 (щепетильно выбирая инвесторов), так что с этой точки зрения мы в безопасности :)

P.P.S. Успешная рекомендация получит классные латвийские конфеты и самую большую бутылку рижского бальзама лично от меня.

Это мои последние дни в Медузе.

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

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

Помню, как в первый месяц работы меня разбудил звонок в 4 утра, Султан сказал «Самат, в Грозном серьезная перестрелка, админка не работает». Я тогда подумал, что, наверное, прямо сейчас с похожим сообщением разбудили г-на Путина.

Помню первые полмиллиона посетителей в день (убийство Немцова), переворот в Турции, когда я переводил трансляции с турецкого, теракт в Питере, когда упали Яндекс.Новости и некоторые СМИ, а нашу трансляцию прочитали миллион человек. Помню DDoS-атаку, когда я был на конференции в Брюсселе и поездку в Калифорнию с Ильей.

Уже в Риге у меня родилась вторая дочь, а старшая твердо усвоила, что папа делает и чинит сайт. Что такое сайт она, кажется, ещё не знает. Да и Медуза отходит от сайто-центричности, мы запустили свою собственную админку для постинга в соцсети и платформу доставки подкастов.

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

Хочу поблагодарить некоторых людей отдельно: Андрей Зайцев-Зотов и Егор Хмелев руководили техническим запуском Медузы и порекомендовали меня Гале, Илье и Ване. Руководство Медузы рискнуло и доверилось молодому человеку без большого опыта. Команда разработки Медузы — это dream team. Мы начинали с 6 человек, по одному человеку на специальность, каждый профессионал экстра-класса, отвечающий за своё направление. За 3 года от нас ушел один разработчик, а наняли мы троих.

Почему я ухожу? Есть несколько причин. Главная в том, что в Медузе я построил процессы, сильно завязанные на функцию менеджера (меня). Это режим мобилизации, эффективный для мощного спринта. То, что мы держали его больше 3 лет — большая удача.

Понятно, что для долгосрочного развития необходим другой режим управления. Я знаю, команда разработки Медузы готова к изменениям, но провести эту трансформацию лично мне будет очень сложно. Дело в реактивности психики и моей усталости (кек, накопилось 50 дней отпуска). Будет проще, если изменения проведет новый человек. Я вижу, что моему заместителю это интересно и он хочет этим заняться.

С гордостью представляю нового технического директора Медузы: Бориса Горячева. Боря — один из лучших программистов, с которыми мне довелось поработать. Он имеет парадоксальный ум и редкое умение придумывать и вывозить проекты до конца, не теряя при этом в голове крупной картины. Уверен, что у него и технической команды всё получится.

Куда дальше? В https://rawg.io. У игрового мира нет единой точки сборки, такой, как IMDb (Кинопоиск) для кино. Мы с Гаджи Махтиевым, Лешей Горностаевым (ex-Kanobu) и маленькой и классной командой такую штуку сделаем. Причем, если IMDb — это очень крутой сайт, застрявший в 90-х, то мы сделаем всё по фэн-шую 2018-го: рекомендательная система, учитывающая вкусы игрока, токен-экономика, завязанная на его активность и возможность обычному человеку задать вопрос создателю любимой игры — всё это есть в планах. Ещё у нас есть 2 миллиона долларов венчурных инвестиций и запланирован ICO в апреле на ещё 10 миллионов. В базе уже 52 тысячи игр https://rawg.io

Будет жарко. Stay tuned.

Полторы недели назад мы начали поиск второго бэкендера в команду RAWG. Позавчера мы взяли на работу не одного, а двух программистов; расскажу, как мы это сделали.

После публикации вакансии в фб и телеграме (спасибо большое за репосты!), мы взяли неделю на сбор предложений, отвечали всем сразу, что «вернемся на следующей неделе». Бесит, когда наниматели не отвечают на письма. Нам пришло 22 предложения. Из них 10 — в телеграм, 9 — на почту python@rawg.io, 3 — в фб-мессенджер. Почту мы создали как группу в GSuite и завернули в Intercom, чтобы ничего не пропустить. Я вел базу со всеми кандидатами в Airtable, это очень удобно, рекомендую.

Во вторник мы созвонились с Антоном (нашим супер-бэкендером) по зуму и прошлись по airtable-таблице предложений. Пару предложений мы отсекли на этапе сопроводительного текста и резюме, учить совсем начинающих мы пока не готовы. 7 человек нам понравились — там был или внушительный опыт и внятный сопроводительный текст или хороший код. Если кода в первом сообщении не было — я просил прислать его до собеседования. Мы договорились об одном собеседовании на вечер вторника и о пяти — на среду. Согласование времени собеседований заняло пару десятков минут, это феноменально быстро. Дело в том, что почти вся переписка велась в телеграме, это очень приятно. Этот этап занял в сумме пару часов.

Сразу после собеседований у нас появились два явных фаворита — опытные, классные программисты из Питера. Ещё нам понравился второкурсник, у которого был хороший код, горящие глаза и удивительно четкая письменная и устная речь. Мы сделали два офера и по одному из них пришел отказ, так что решили рискнуть и взять одного опытного разработчика и студента без большого опыта.

Больше всего мне запомнился отказ (второй за мою карьеру, кажется). Он пишет: «... Наверное, за годы работы в стартапах, у меня наступила какая-то деформация. Я очень полюбил работу над продуктом и решение бизнесовых задач – не вижу себя без всего этого. ... На нынешней работе несколько спринтов проводил в роли продакт оунера, пока он был в отпуске — понравилось. Пока что научился считать рынки кое-как, проводить Customer Development и тестировать гипотезы...»

То есть, размышляя над нашим предложением, человек понял, что не хочет больше работать программистом. А был идеальный кандидат! Умеет прогать и при этом «видит за деревьями лес», думает о «конечном смысле».

Фан факты:
- я попросил владельца канала с python-вакансиями репостнуть нашу вакансию. Женя (ведущий канала) скоро выходит к нам на работу;
- кандидат-студент узнал о вакансии из слек-сообщества python-ru;
- из 30 кандидатов — один школьник и две девушки (не пересекающиеся множества);
- всего 2 предложения от аутсорсеров. Обычно бывает десяток; видимо, сейлзы плохо мониторят телеграм и фб.

В заключение: спасибо вам большое, дорогие читатели! Без вашей поддержки, поиск бы был гораздо дольше и скучнее. Я собираюсь воспользоваться этим каналом ещё раз на следующей неделе, при поиске фронта.

Rawg.io ищет третьего фронтенд-разработчика. Ключевые слова: React, микрокоманды, Remote.

Мы делаем лучший сайт про видеоигры; у нас есть IMDb-часть со страницами игр и социальная часть, где можно собирать коллекции, писать обзоры и подписываться на похожих игроков. В ближайших планах дать возможность редактировать страницы игр обычным игрокам прямо на сайте (сейчас используется внутренняя админка) и прокачать SEO.

Под капотом это респонсив SPA React приложение с SSR. JS потребляет красивое REST API, которое готовится бэкендерами на Python (Django DRF) специально для сайта.

Мы работаем по модели Basecamp: в начале 2-4 недельного «цикла» микро-команда — фронт + бэк и дизайнер получают хорошо сформулированную бизнес-задачу с примерными макетами, а дальше мы минимально дергаем команду разработки, чтобы не отвлекать и не мешать. Коммуникация происходит в Basecamp и немного в Slack, все Remote.

Codebase свежий (первый коммит два года назад) и написан хорошими разработчиками, жесткого легаси или костылей там, пока, нет. Github, ci, рабочее окружение разворачивается одной npm-командой. Подключен линтер, в проекте настроен webpack, начали писать тесты, используется связка Redux + Recompose. Верстка: stylus, flexbox, css grids, bem. Дизайнеры и даже продакт раньше верстали, так что понимают ценность переиспользования компонент и естественные ограничения веба.

Мы ищем человека с опытом программирования на Javascript, использовавшего React, умеющего верстать. В идеале — вы любите верстку не меньше, чем программирование. При этом мы готовы рассмотреть как опытных, так и начинающих кандидатов. Нам важно желание приносить пользу пользователям и бизнесу, а не «придумывать красивый код ради кода».

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

Пишите на frontend@rawg.io или @samatg в личку.

Запускаем «сториз» про игры на rawg.io/tldr. Сегодня можно посмотреть 80 тематических подборок игр, где каждая игра представлена 17-секундным клипом. «Пиксельные игры», «игры, где можно драться с гигантами» и даже жутковатые «играем за антигероя» — все эти «списки» классно смотреть как видео-подборки.

Когда мы начинали проект, казалось, что просмотр сториз (tldr, как мы их назвали) — это просто развлечение. В какой-то момент, мы поймали себя на том, что сами находим интересные игры через эти подборки.

Управление стандартное — клик/тап в правой доле видео прыгает на следующий клип, если залогиниться — можно добавить игру в вишлист одной кнопкой. Хочется добавить ссылку на стор с ценой, но это запрогаем, только если будет достаточный интерес к ним в текущем виде.

Буду рад, если поделитесь tldr со знакомыми, особенно, с более молодым поколением и расскажете, что нравится, что хочется изменить.

В ролях: продакт 🤔 Алексей Горностаев, дизайн 🖌 Андрей Кулагин, фронтенд 🖼 Роман Ахмадуллин, бэкенд ⚙️ Артем Ломоносов и Антон Шурашов, контент 📹 Евгений Цветков и Сергей Уланкин. Ура!

P.S. К сожалению, мы не смогли сделать переключение видео без задержек в мобильном Safari :( если знаете, как это сделать — буду благодарен подсказке.

P.P.S. Мы на главной Product Hunt, буду очень благодарен апвоуту.

Спасибо вам за поздравления и теплые слова. Я давно не чувствовал такой благодарности.

Уходить очень страшно. Я ценю вашу поддержку.

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

1. Что с каналом «запуск завтра»? Продолжаю вести. Расскажу, как передаю дела в Медузе. Увидите, как я принимаю новый проект, погружаюсь в игровой и блокчейн мир. Медиа-новости тоже будут.
2. Останусь ли в Риге? Да. Планирую каждые месяц-полтора летать в Москву.
3. Есть ли канал у Бори (нового техдира Медузы)? Пока нет. Как появится — дам ссылку обязательно.
4. Есть ли вакансии в RAWG? Скоро будут :)

Мы в RAWG сегодня открываем публичное API. 300 тысяч игр, 2 миллиона скриншотов, 400 тысяч оценок и прямые ссылки на игры в магазинах.

Это самая большая база данных игр в мире.

Для рекомендаций «похожих игр», мы единственные анализируем внутриигровой контент, а не только метаданные. Эти рекомендации также доступны по API.

Для некоммерческого использования API бесплатное, по всем вопросам пишите на api@rawg.io или @samatg в личку. Примеры приложений — бот на реддите, бот на DTF и другие (с исходниками) доступны тут. Есть обертки для питона и nodejs, написанные сообществом. Ура!