Расскажи про команды на прошлых местах работы

Ответ

В моем последнем проекте на Flutter мы работали в кросс-функциональной команде из 6 человек: 3 мобильных разработчика (включая меня), 2 бэкенд-разработчика на Dart (использовали aqueduct/conduit) и 1 QA-инженер. Мы придерживались методологии Scrum с двухнедельными спринтами.

Мои основные обязанности как Flutter-разработчика:

  • Разработка новых фич для iOS и Android из единой codebase.
  • Интеграция с бэкендом через REST API и WebSocket для real-time уведомлений.
  • Настройка и поддержка CI/CD пайплайнов на Codemagic для автоматической сборки и публикации в App Store Connect и Google Play Console.
  • Активное участие в планировании спринтов и ретроспективах.
  • Проведение код-ревью для коллег, фокус на качестве кода, производительности рендеринга и соблюдении архитектурного паттерна BLoC/Cubit, который мы использовали.
  • Менторинг junior-разработчика в команде.

Пример нашего workflow:

  1. Обсуждаем задачу из Jira, разбиваем на подзадачи.
  2. Создаю feature-ветку от develop, реализую функциональность, пишу unit- и widget-тесты.
  3. Открываю Pull Request в GitHub. После прохождения ревью и успешных checks CI (сборка, тесты, анализ кода) мерджим в develop.
  4. После окончания спринта создаем релизную ветку, проводим регрессионное тестирование и мерджим в main с последующим деплоем в сторы.

Работал как в офисном, так и в полностью удаленном формате, используя Slack для ежедневной коммуникации и Zoom для планирования и демо.

Ответ 18+ 🔞

Вот, представляешь, сидим мы в этой конторе, как мартышлюшки на ветке, и пилим приложение на Flutter. Команда у нас — просто ёперный театр какой-то: шесть человек, и все с прибабахом. Три мобильщика (я в их числе), два бэкендера, которые на Dart'е какую-то свою магию творили, и один QA, который нас всех бесил, но без него — никуда, хитрая жопа. Работали по Scrum, спринты по две недели — стандартная история, но весело было.

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

  • Пилил фичи сразу и для айфонов, и для этих ваших андроидов из одного куска кода. Красота же, ёпта.
  • Цеплял всё это дело к серверу. REST, WebSocket'ы для уведомлений — чтобы всё летало в реальном времени, а не как хуй с горы.
  • Настраивал эту всю автоматическую хуйню — CI/CD пайплайны на Codemagic. Чтобы приложение само собиралось, тестировалось и летело в сторы, как только мы код замерджим. Идея-то охуенная, но когда оно ломалось, волнение ебать, терпения ноль ебать.
  • Участвовал во всех этих планерках и ретро. Иногда чувствовал, будто хожу по охуенно тонкому льду, когда начинались споры про сроки.
  • Делал код-ревью. Смотрел, чтобы коллеги не написали какую-нибудь пиздопроебибну, чтобы архитектура (BLoC/Cubit у нас был) не разваливалась, и приложение не тормозило.
  • Ещё одного джуниора курировал. Парень был старательный, но иногда такие вопросы задавал... Сам от себя охуевал.

Как мы это всё организовывали, по шагам:

  1. Берём задачу из Jira, смотрим на неё. Обычно все такие: «О, ебушки-воробушки, это же на два часа!». Потом разбиваем, и оказывается, работы — овердохуища.
  2. Отпочковываю от develop свою ветку, сажусь кодить. Пишу, тесты прикручиваю — unit, widget.
  3. Когда готово, открываю Pull Request в GitHub. Тут начинается цирк: коллеги смотрят, комментируют, CI прогоняет проверки. Если всё ок — мерджим в develop. Если нет — сиди, чини, бля буду.
  4. В конце спринта из develop делаем релиз, всё тестируем ещё раз (наш QA тут особенно усердствует) и, если не накрылось медным тазом, пуляем в main и в сторы.

Работали и в офисе, и из дома. Удалёнка — это отдельный вид искусства. Весь день в Slack'е трещишь, на планерки в Zoom'е заходишь, демки показываешь. Главное — чтобы интернет не отрубился в ответственный момент, а то будет вам хиросима и нигерсраки. В общем, рутина, но со своими приколами.