Введение

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

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

Как устроена команда

Команда состоит из тимлида, PM’а и разнородной группы программистов.

  • Тимлид: делает так, чтобы вся команда работала над выполнением задачи в срок, в том числе имеет возможность поощрять и наказывать отличившихся. Тимлид ставит конкретные задачи членам команды и контролирует их выполнение в срок. При этом тимлид “на входе” получает задачи, чаще всего описанные в терминах того, каким должен быть результат а “на выходе” (то есть в виде задач команде) выдает декомпозицию в виде пачки технических задач, адресованных конкретным людям.
  • PM: отвечает за правильное взаимодействие с заказчиком, структурирование процессов и соответсвие реальной картины работы над проектом той картинке, которая есть в голове у заказчика. PM должен быть всегда в курсе работы над проектом, это значит, например, что перед любыми изменениями на продакшн сервере PM должен быть предупрежден заблаговременно
  • Программист: пишет код, вносит любые полезные предложения (не только касающиеся кода) и участвует в обсуждении проектов.
  • Собственно команда: имеет свое уникальное название, которое придумывается членами команды единожды при её создании

Инструменты

  • Редактор: конечно же, вы можете использовать любой редактор по своему усмотрению, но мы используем VSCode
  • Оборудование: ноутбук и нужное количество дополнительных мониторов мы вам предоставим. Мы стараемся серьезно относиться к безопасности, поэтому предоставляем свое железо.
  • Система контроля версий: Мы используем bitbucket
  • Система хранения паролей: На всякий случай не будем говорить какую используем
  • Хранение и обмен Документами: google drive (google docs) + draw.io (для рисования схем)
  • Корпоративный чат: Telegram (link not found :) )
  • Ведение проектов и bugtracker: wrike, потому что это очень гибкая и одновременно простая система

Руководство по стилю

node.js (backend)

Ссылочка на гайд airbnb style guide

Используем eslint с такой конфигурацией:

{
    "env": {
        "es6": true,
        "node": true
    },
    "extends": "airbnb-base",
    "parserOptions": {
        "sourceType": "module"
    },
    "rules": {
        "indent": ["warn", 4]
    },
    "overrides": []
}

Чтобы использовать конфигурацию airbnb-base для eslint необходимо установить пакет:

npm install -g install-peerdeps
install-peerdeps --dev eslint-config-airbnb-base

Мы используем 4 пробела для отступов вместо 2-х (всем в команде так привычнее). Если необходимо поменять правила для каких-то конкретных файлов, используем массив overrides либо помещаем дополнительный файл конфигурации в директорию.

Бизнес-процессы

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

Scrum, водопад?

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

Какой бывает программист и как мы это понимаем

По уровню профессионализма:

  • Junior - Новичок, который может очень мало и имеет опыт работы менее года или не имеет его вообще
  • Middle - Специалист, имеющий до от 1 до 5 лет стажа по специальности.
  • Senior - Программист в самом высоком смысле этого слова, имеющий стаж более 5 лет и много решенных сложных задач за плечами.

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

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