Как стать автором
Обновить
98.22
Рейтинг
Miro
Online collaborative whiteboard platform
Сначала показывать
  • Новые
  • Лучшие

Performance review как инструмент для оценки результатов работы и развития сотрудников

Блог компании Miro Управление разработкой *Управление персоналом *Карьера в IT-индустрии IT-компании

Меня зовут Артём Сусеков, я менеджер разработки в Miro. Расскажу, как мы пришли к справедливой оплате и прозрачному обсуждению эффективности сотрудников команд продуктовой разработки.

Статья будет полезна, если вы задаётесь вопросами: 

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 5.3K
Комментарии 12

Как мы в Miro используем Miro

Блог компании Miro Визуализация данных Удалённая работа
Из песочницы

Собрали примеры, как инженеры и тимлиды в Miro используют доску Miro по работе и в личных проектах. Расскажем, какие фичи они применяют и как это можно повторить. Возможно, что-то из примеров вам пригодится.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 7.4K
Комментарии 4

Fluent setter. Нарушаем конвенцию

Блог компании Miro Ненормальное программирование *Java *
Tutorial
Что будет, если возвращать в setter-методе не void, а this, т.е. использовать прием Fluent Interface?

public class SimplePojo {
    private String value;

    public String getValue() {
        return value;
    }

    public SimplePojo setValue(String value) {
        this.value = value;
        return this;
    }

    // equals, hashCode, toString
}

Теперь перепишем типовой кусок кода и получим такое:

private static AssignmentGroupedActivitiesResource create() {
    return new AssignmentGroupedActivitiesResource()
            .setGrouping(new UserActivitiesGroupingResource()
                    .setAlignmentScore(1)
                    .setFocusScore(0)
                    .setAdvancedGroups(Arrays.asList(
                            new ProductivityGroupResource()
                                    .setSectionName("Development")
                                    .setColor("#2196f3")
                                    .setSpentTime(5L),
                            new ProductivityGroupResource()
                                    .setSectionName("Chat")
                                    .setColor("#E502FA")
                                    .setSpentTime(1L)
                    ))
                    .setPeriodLong(10L)
                    .setTotalTrackedTime(7L)
                    .setIntensityScore(2));
}

Для сравнения – как тот же код выглядит без использования приёма:

Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 2.6K
Комментарии 11

Методология и практика нагрузочного тестирования. Опыт Miro

Блог компании Miro Высокая производительность *Тестирование веб-сервисов *


Всем привет!

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

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

Описываемый подход основывается на нашем опыте и множестве просмотренных и прочитанных материалов. Подобный доклад делался на конференции DUMP в Екатеринбурге 14 мая 2021 г., эта статья представляет собой значительно дополненный и переработанный вариант выступления.

Автор арта на «обложке» — Orest Terremoto.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 11K
Комментарии 6

Как мы боролись за байты на фронтенде. Усмиряем прожорливый виджет рисования и помогаем iPad его переварить

Блог компании Miro JavaScript *Клиентская оптимизация *Canvas *
Из песочницы

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

Так случилось и с нашим продуктом: 2020 год стал для Miro годом оптимизации производительности. Чем больше пользователей взаимодействуют на одной доске, тем больше контента генерируется, тем больше данных браузеру каждого пользователя нужно получить, обработать и отобразить в реальном времени.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 4.2K
Комментарии 11

Роль QA Lead в продуктовой компании: особенности и зоны ответственности

Блог компании Miro Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *Управление разработкой *

QA Lead в Miro отвечает за стратегию качества большой части продукта, реализацию крупных инженерных инициатив и развитие QA-инженеров.

Я как Head of QA расскажу о зонах ответственности QA лида, но прежде кратко расскажу о наших структуре разработки и процессе обеспечения качества, потому что это даёт понимание основных принципов работы.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 6.7K
Комментарии 0

Как мы строим масштабируемый процесс онбординга при гиперросте команды разработки

Блог компании Miro Развитие стартапа Управление персоналом *IT-компании

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 2K
Комментарии 7

Как эффективно проводить 1:1 встречи

Блог компании Miro Управление проектами *Управление персоналом *
Из песочницы

После 1:1 участники должны выходить радостными котиками

Встреча 1:1 (one-on-one) — регулярная встреча менеджера и его сотрудника. Это отличный инструмент для развития и построения доверительных отношений в работе. В прошлой компании я был на стороне менеджера, в Miro — на стороне сотрудника. Обычно у меня одна встреча с менеджером в неделю.

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

Read more
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 9.4K
Комментарии 16

Профилирование в продакшене для поиска узких мест на сервере

Блог компании Miro Программирование *Java *
Из песочницы

Я работаю техлидом в команде System, которая отвечает за производительность и стабильность сервиса. С марта по ноябрь 2020 года Miro вырос в семь раз — до 600+ тысяч уникальных пользователей за сутки. Сейчас наш монолит работает на 350 серверах, около 150 инстансов мы используем для хранения данных пользователей. 

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

Read more
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 3K
Комментарии 3

SQL миграции в Postgres. Часть 1

Блог компании Miro PostgreSQL *Администрирование баз данных *

Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ... 

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

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 15K
Комментарии 17

Как не продолбать архитектуру в погоне за фичами

Блог компании Miro Разработка веб-сайтов *Управление разработкой *

Я работаю в Miro со дня основания, вначале как фронтенд инженер, сейчас как менеджер core-команд, которые разрабатывают внутреннее ядро канваса и realtime-коллаборации на нём.

Мы очень быстро растём: в пользователях, в размере команды, в количестве выпускаемых фич. Немного фактов за 2020 для контекста:

— Перешагнули рубеж в 10 миллионов регистраций;

— Пиковая онлайн-нагрузка за год выросла в 7 раз;

— Команда разработки выросла в 2 раза (инженеры, продакты, дизайнеры);

Выглядит круто! Но есть нюансы.

Наблюдая за компанией 9 лет, я вижу, что кратное увеличение количества инженеров приводит к падению скорости разработки. Задачи по созданию новой функциональности приводят к костылям. Текущая архитектура не позволяет сделать их правильно, а на рефакторинг времени не хватает. Непонятно кто именно должен брать на себя рефакторинг. Начинаемые архитектурные изменения не доводятся до конца из-за отсутствия фокуса. Порог входа  в код повышается, онбордить новичков становится сложнее. Time to market новых фичей падает. 

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

Так мы сталкиваемся с задачей “Как сохранить скорость разработки фичей и гибкость архитектуры на стадии роста?”. Откатимся назад в прошлое и будем пробовать разные подходы чтобы прийти к тому, что есть сейчас.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 9.8K
Комментарии 16

Выбор хэш-функции в задаче шардирования данных

Блог компании Miro Высокая производительность *Java *Алгоритмы *Хранение данных *
Из песочницы

Мы в Miro работаем над процессом шардирования баз Postgres и используем разные подходы в зависимости от бизнес-требований. Недавно перед нами встала задача шардирования новых баз, в ходе неё мы выбрали новый для нас подход к шардированию, основанный на согласованном хешировании (consistent hashing).

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

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 5.1K
Комментарии 8

Prometheus и VictoriaMetrics: отказоустойчивая инфраструктура для хранения метрик

Блог компании Miro Системное администрирование *IT-инфраструктура *Серверное администрирование *DevOps *
Перевод

Рассказываем, как в Miro выглядит инфраструктура для хранения метрик. Все компоненты в ней соответствуют принципам высокой доступности (High Availability) и отказоустойчивости (Fault Tolerance), имеют чёткую специализацию, могут хранить данные долгое время и оптимальны с точки зрения затрат.

Стек, о котором идёт речь: Prometheus, Alertmanager, Pushgateway, Blackbox exporter, Grafana и VictoriaMetrics.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 9.1K
Комментарии 12

Как эффективно релизить монолит, в который коммитят 150+ разработчиков из разных офисов

Блог компании Miro Тестирование IT-систем *Тестирование веб-сервисов *Управление разработкой *
Из песочницы

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

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

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Просмотры 7.7K
Комментарии 12

Токсичность в команде, компании и индустрии. Конспект митапа из серии “Инженер заходит в бар”

Блог компании Miro Учебный процесс в IT Управление персоналом *Карьера в IT-индустрии IT-компании
Собрали инсайты митапа на тему токсичности в общении. Дискуссия состоялась между инженерами и техлидами из Miro, Parma TG, Xsolla и SEMrush.

Митап прошёл в рамках серии «Инженер заходит в бар», где инженеры из разных IT-компаний общаются на профессиональные не-инженерные темы. Серия мероприятий организована инженерами из компании Miro, при поддержке DevRel-бюро «Долгушев и Сторожилов».



Третий митап серии состоится 24 сентября. Тема — как бизнес и инженеры общаются и договариваются друг с другом. Спикеры — CTO и тимлиды из Miro, Яндекс.Практикум, LANIT, Алгоритмика. Регистрация.

Оглавление:


  • Что такое токсичность? Примеры
  • Тактика: как работать с токсичностью
  • Low social skill и корреляция с токсичностью
  • Токсичность незнакомых людей в офлайне, онлайне. Как это работает?
  • Что делать, если люди считают, что токсичный ты сам?
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 7.4K
Комментарии 11

Как инженеру профессионально развиваться в компании. Конспект митапа из серии “Инженер заходит в бар"

Блог компании Miro Учебный процесс в IT Управление персоналом *Карьера в IT-индустрии IT-компании
Это текстовая расшифровка митапа на тему профессионального развития инженера в компании. Дискуссия состоялась между CTO, техлидами и тимлидами из Miro, X5 Retail Group, FunBox, ManyChat и MadRobots.

Митап прошёл в рамках серии «Инженер заходит в бар», где инженеры из разных IT-компаний общаются на профессиональные не-инженерные темы. Серия мероприятий организована инженерами из компании Miro, при поддержке DevRel-бюро «Долгушев и Сторожилов».



20 августа состоится второй митап серии. Тема — токсичность в командах, компаниях и индустрии. Спикеры — инженеры и техлиды из Miro, SEMrush, Parma TG, Xsolla. Регистрация уже открыта.
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 4.9K
Комментарии 1

Работа с базами данных глазами разработчика

Блог компании Miro Тестирование IT-систем *PostgreSQL *Программирование *Java *
🔥 Технотекст 2020

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

Написание SQL миграции → написание кода → тестирование → релиз → мониторинг.

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

Поскольку мы в компании работаем с PostgreSQL, а серверный код пишем на Java, то примеры будут основаны на этом стеке, хотя большинство идей не зависят от используемой БД и языка программирования.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 10K
Комментарии 17

Иван Дёмшин, Head of Engineering в Miro, о продуктовой разработке, смене технологий и эволюции процессов в компании

Блог компании Miro Управление разработкой *Развитие стартапа Управление продуктом *IT-компании
Это конспект интервью с Иваном Дёмшиным, Head of Engineering в Miro, про структуру продуктовой разработки, смену технологий на фронте и бэке, эволюцию тестирования, процесс найма и развития инженеров.



Полную двухчасовую версию можно посмотреть на Ютуб-канале Хекслет.
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 10K
Комментарии 8

Бесшовная миграция пользователей между доменами

Блог компании Miro Разработка веб-сайтов *Программирование *
В начале 2019 года мы провели ребрендинг и поменяли название с RealtimeBoard на Miro. Следовательно, изменился домен сайта с realtimeboard.com на miro.com.

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

Чтобы минимизировать потерю трафика после смены домена, нужно было провести миграцию авторизованных пользователей со старого домена на новый:

  • Поддержать пользователей, которые выполняли авторизацию с помощью SSO провайдеров через старый домен.
  • Передать токен авторизации пользователя со старого домена на новый.
  • Передать LocalStorage с пользовательскими настройками приложения.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 5K
Комментарии 2

QA-процесс в Miro: отказ от водопада и ручного тестирования, передача ответственности за качество всей команде

Блог компании Miro Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *Управление разработкой *
Наш текущий QA-процесс мы прорабатывали порядка двух лет и он продолжает активно развиваться. Он может казаться очевидным, но когда мы начали внедрять его в новой команде, которая полностью состояла из новых разработчиков, то поняли, что сразу внедрить его сложно. Многие привыкли работать иначе и для переключения им требуется сделать единовременно много изменений — это сложно. Однако внедрять такой процесс частями тоже нельзя, потому что это может негативно сказаться на качестве.

Что делать? Нужна предварительная подготовка по каждому из блоков процесса разработки: декомпозиция задачи, оценка и планирование, непосредственно разработка, исследовательское тестирование, релиз. Подготовка заключается не в простом выбрасывании старых частей из процесса, а в их адекватной замене, которая даёт прирост в качестве.

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


Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 15K
Комментарии 14

Информация

Дата основания
Местоположение
Россия
Сайт
miro.com
Численность
1 001–5 000 человек
Дата регистрации
Представитель
Сергей Шабалин