Постоянная удалённая позиция в моей студии: Full Stack Ruby on Rails

Здесь в Карма, моём инди-продукте, не хватает рук. Мы растём и ищем специалиста Full Stack Ruby on Rails на постоянную, полностью удалённую позицию с асинхронным общением. Желательно на полный день, но и частичная занятость тоже подойдёт: с чего-то надо начинать. Интересно?

Так получилось, что Ruby on Rails — это наш выбор: всё серверное сделано на этом фреймворке. На стороне клиента у нас Vue.js. Админство через кастомизованный ActiveAdmin. Продукту 3 года, писали на том, что на тот момент знали лучше всего. Основной набор фич, скелет, костяк, если угодно, уже готов. Ежедневные задачи можно грубо разложить по двум коробочкам:

  • поддержка — решения узких краевых случаев, улучшения, помощь пользователям
  • и развитие продукта — постепенно, как в Корабле Тесея, мы заменяем старое на новое.

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

Пока вы читаете этот пост, Кармой пользуются сотни компаний по всему свету, тысячи (не миллионы) запросов летают туда сюда каждый день. Это очень даже живой, нишевый, современный продукт, который естественным образом растёт и двукратно укрупняется от года к году. Я еженедельно публикую на IndieHackers мини-отчёты о развитии продукта — все цифры, включая $, наружу. Мы не скрываем внутренние показатели, как не скрываем, что очень гордимся Кармой и верим, что пользователи не просто так оставляют нам все эти положительные отзывы.

Этот корабль уверенно плывёт вперёд, и вы можете стать частью его сплочённой команды. У основателей компании (меня и Давида) — две основные заботы: забота о пользователях Кармы и забота о сотрудниках.

Команда полностью удалённая, всё общение идёт через Slack, таски в Asana, код в Gitlab, инфраструктура крутится на DigitalOcean. Я живу (сейчас) в Новой Зеландии, Давид, второй основатель, в Австралии; программисты, дизайнеры и дизайнерки в Новой Зеландии, Польше, Беларуси, России, Украине. С кем-то мы сотрудничаем больше семи лет, с кем-то пять, но почти в о всех случаях речь идёт о годах. Это наш с Давидом личный вклад в уменьшение энтропии в и без того хаотичном мире.

Рабочие отношения — дело непростое, мы, как и в обычных межличностных отношениях, верим в то, что время покажет. Хочется, чтобы отношения были стабильными и постоянными. Чтобы это было партнёрство, в котором каждая сторона учится у другой, оказывает поддержку.

Зарплата — договоримся: наша задача сделать так, чтобы вопрос денег был, что называется «закрыт» и не отвлекал от профессиональной деятельности. Для постоянных работников работает система бенефитов (пособий?) и бонусов (основанная на Karma, как можно догадаться). Программа расписана на декаду вперёд, мы инвестируем в будущее! Мы будем рады рассказать об этом подробнее в личной переписке.

Испытательный срок — три месяца. Обычно этого достаточно, чтобы понять, сработаемся мы или нет.

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

Пишите о себе или своих талантливых друзьях на [email protected]. Присылайте, пожалуйста, несколько примеров своих работ и пару слов о своей трудовой истории и ситуации вообще. Если вы ходите на работу в какой-то другой офис и думаете, что получится подработать у нас — всё равно пишите, начнём с малого, а там посмотрим.

Как мы сделали эмулятор Слэка для демонстрации возможностей Кармабота

Здесь в Окленде обозначилась проблема. Чаты пришли на замену электронной почте. Рынок чат-приложений, чатботов (Telegram, Slack, MS Teams) новый и неизведанный. Крупные компании переезжают одна за другой в чудный мир хаотического общений чатиков. Два года назад мы создали Кармабот. Это бот для учёта плюсов, посланных коллеге «в карму». Из этих маленьких актов взаимной благодарности строятся профили участников команды. В долгосрочной перспективе из шума коммуникаций Кармабот распознаёт важные сигналы и определяет успеваемость каждого сотрудника.

Кто-то пользуется ботом для системы бонусов, кто-то для повышения в конце года использует информацию, кто-то для веселья и ежемесячных призов «Лучший коммуникатор». Мы старались построить гибкую систему.

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

Проблема одного стартапа

Появилась идея, что интерактивный тур будет продавать лучше, чем видео: повысит конверсию. Кроме этого, мы предположили, что в тур люди инвестируют больше времени и не только научатся, как пользоваться Кармаботом, но и породнятся с ним, как с IKEA.

Планирование

Посмотрели как работают Slack и Teams, проанализировали основные действия, выделили необходимые фичи приложений, которые нам потребуется имитировать, для демонстрации нашего бота, а именно – имитация каналов / групп / команд, окно чата и разные типы сообщений (текст, картинка, экшен-баттоны, karmabot cards), ввод сообщений и обработка вводимых команд.

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

Для среды разработки был выбран Nuxt.js, генератор статических сайтов, работающий на реактивной связке Vue + Vue router + Vuex.

Начало разработки

Наличие одного глобального хранилища (Vuex) очень упростило всю разработку тем, что в любой момент из любого компонента доступны ссылки на единственное истинное хранилище, любые изменения в котором логируются и вызывают реактивные изменения во множестве связанных компонентов

Также присутствует интернационализация, русский и английский язык (обусловлено тем, что лендинг мультиязычный), реализовано с помощью модуля nuxt-i18n и файлов локализации

Для создания антуража и атмосферы команды и движухи внутри нее, при инициализации приложения слачайным образом генерируются пользователи и записываются в глобальное хранилище, а также для них генерируются базовые значения, необходимые для нашего чат-бота: количество кармы (на базе этих данных строится таблица лидеров среди команды) и karmafeed, имитирующий выдачу кармы в прошлом нашими сгенерированными юзерами демо-команды. Также каждому юзеру генерируется его текущий статус (работает, брейк, оффлайн), для демонстрации фичи karmabot status.

Рендеринг

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

Было полностью сымитировано поведение чата — наличие списка сообщений (на старте мы также генерируем несколько сообщений от пользователей, для антуража и большей вовлеченности), и поле ввода, которое при “отправке” сообщения анализируется на предмет команд нашего бота.

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

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

Результат

Тур Кармабота

Мы добавили события Google Analytics и изучаем связь конверсии с наличием интерактивного теста. Эмуляторы вызвали интерес у комьюнити Hacker News, больше 5000 человек проиграли тест, кто-то зарегистрировался и попробовал сам Кармабот. Очень надеемся, что созданный “интереса ради” модуль, поможет улучшить показатели.

Комментарии

 

Кармабот — чат бот для успешных команд

Здесь в Окленде, мы с любимым детище Кармаботом, которому уж больше двух лет исполнилось, попали в Y Combinator Startup School на программу Advisor Track. Что значит, крутые ребята, прошедшие программу YC, помогают избранным стартапам решить обычные проблемы, не наступить на обычные грабли. Свои компании они успешно провели через YC и нередко смогли презентовать инвесторам так, что те вложили миллионы. Не секрет, что Y Combinator интересуется компаниями, которые могут заработать $1000000000 (миллиард долларов), не меньше. И в целом можно сказать, что получается: список топ-100 YC-компаний, например — знакомые все лица.

  • Топ-100 оценивается в 100 миллиардов долларов.
  • Создано 28000 рабочих мест.
  • В основном те, что оценены в миллиард и больше — это биотехнологии, бизнес-решения, инструменты для разработки и, конечно, потребительские продукты тоже.

Мы заходили с Кармаботом, как бизнес-решение для бизнес-команд. Оно и понятно — чатбот платный, решение не тривиальное. Бриллиантовый дым рассеялся довольно быстро. Строить бизнес по-настоящему — это очень сложно.

Собирая плюсики в чатегах с 2016 года, мы научились строить профили работничков и накладывать их на компанейской ценности. За 10 недель в стартап-школе мы разобрались наконец, кто наш сферический покупатель в вакууме, и что ему нужно. Как оказалось, это менеджеры и владельцы бизнесов. Жаль, что управляющий YC не смог получить ответ на этот свой вопрос во время интервью. Интервью мы в итоге не прошли, но надежды не потеряли. Достаточно того факта, что управляющий многомиллионной компании пусть даже на 10 минут смог себе представить, что Кармабот — это миллиардный бизнес с потенциалом.

Логическим завершением стало создание отчётов производительности. Их можно использовать во время самого важного разговора — о повышении зарплаты работнику. Буквально принести распечатку со всеми микро-достижениями и косяками за год. Называется это дело Karmabot Performance, и было оно опубликовано на главной Product Hunt (опять!).

Вдвойне хорошие новости — это то, что после публикации на vc.ru мы всерьёз дожали русский язык, и бот теперь разговаривает на языке Пушкина.

Поддерживаются Slack, MS Teams и Telegram (бесплатный!), куча фич и активный саппорт.

Попробуйте Karmabot, если хотите »

Комментарии

 

Кармабот для Telegram

Здесь в Окленде, после неплохих отзывов на VC.ru, мы сделали Karmabot для Telegram.

Как он устроен, и какой сценарий он решает:

Группа товарищей общается по работе в одном (или нескольких телеграм-чатах), и порой хочется похвалить (или наказать) коллег — кинуть + в карму или заминусовать. Кармабот считает и строит таблицу рекордов, всё помнит, и позволяет анализировать «успеваемость» членов команды. Ну, и просто веселее с ним.

Вся петрушка пока бесплатная. Делаем для людей, не для бизнесов.

Можно просто кинуть ++ (или —) в карму, и это будет:

@user ++

Синтаксис важен, мы не ползуемся одиночными + или — чтобы не смешивалось с обычной болтовнёй и бот не срабатывал впустую. Программистам так вообще не надо объяснять, что значат эти операторы.

Из чего состоит полный карма-запрос:

@user 10++ за то, что сдали проект вовремя, и всё успели #leningrad

  • @user — человек, которому будет начислено.
  • 10++ – начислено будет 10 кармы.
  • за то, что сдали проект вовремя, и всё успели — описание, навсегда сохраняется в бд.
  • #leningrad — просто хэштэг. Название проекта в моём конторском примере.

Можно просто ответить на сообщение ++ или --, или 10++.

Как установить и создать команду:

  1. Добавить @nanokarmabot в команду.
  2. Авторизоваться (откроется окно) через стандартный Телеграм-логин.
  3. Создать команду, указать имя и язык (русский или английский).
  4. Начать раздавать карму: @user ++ за прекрасие и успехи #лето

Ваша команда использует несколько чатов для работы? Не беда, бота можно добавить в несколько групп, но после логина выбрать одну команду – в итоге у вас будет сводная таблица реально занятых в работе/организации людей. Мы не смотрим, что и кто в каналах: мы ничего не знаем ни о содержании, ни об участниках. В таблицы попадают только те, кто был упомянут в карма-запросах.

  • /top— покажет список героев.
  • /help — напоминит синтаксис.
  • /dash — даст ссылку на статистику.

Nano Karmabot бот для Telegram

Принимаются предложения по улучшению и багрепорты вот в этом группе Karmabot for Telegram ß.

P.S.: Актуальная статистика на конец июня 2018: 1932 команд, около 245694 пользователей у Karmabot Slack и MS Teams

Комментарии

 

Кармабот точка ру – организуйте бизнес в Slack на русском языке

Здесь в Окленде, как вы помните, мы превратили внутренний инструмент для мотивации в продукт, которым пользуются Microsoft, Twitter и другие компании, и относительно модный русскоязычный ресурс написал о нас материал, что по ссылке выше.

Ребята из VC хорошо объяснили суть продукта. Если совсем кратко, Кармабот позволяет учитывать командную «успеваемость» через чатики, бот хранит историю достижений и строит визуализации, что позволяет менеджерам не только знать, что происходит, но и в принимать серьёзные решения (повышение зарплаты, например) в долгосрочной перспективе.

Процитирую себя, чтобы не перепощивать чужую статью.

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

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

И, например, в конце года работник попросил о повышении зарплаты. Менеджер может открыть список вещей, за которые вычиталась карма, и сказать: «Давай сперва попробуем, чтобы ты в течение двух месяцев не опаздывал на совещания».

Что хотел сказать автор?

После публикации с нами связались мелкие и не очень команды, которым для внедрения на русскоязычном рынке не хватало одного – русского языка. Услышано, записано, сделано. Сегодня Кармабот научился разговаривать по-русски.

Karmabot говорит по-русски

Отдельной строкой, пожалуй, упомяну добрячок из комментариев на VC.

KARMAVC –50% купон для читателей vc.ru. За тёплый приём.

Пробуйте Кармабот в своих Slack-командах , рассказывайте нам, что думаете, будем вместе строить светлое цифровое будущее, чо.

Статья об этом в нашем блоге

Комментарии