Рассказываем, как устроена работа программистов в компании Dualboot, с какими технологиями они работают и какие проекты реализуют.
Что такое Dualboot
Dualboot — это компания по разработке бизнеса и программного обеспечения. Мы создаем хорошее программное обеспечение, но наш успех зависит от того, помогает ли оно бизнесу развиваться. Среди наших клиентов основатели компаний, работающих в очень разных сферах (IT и не только), а также компании из списка Fortune 500. Такое разнообразие позволяет нам работать как с маленькими компаниями, так и помогать им масштабироваться.
Мы молодая компания, но мы росли как компания каждый год в два раза. На данный момент у наc команда продаж и менеджмента распределена равномерно по US, существует три центра разработки, а суммарно в компании работает больше 250 человек.
Структура Dualboot
Наш технический центр имеет горизонтальную структуру. Вся наша работа имеет два основных ответвления: проектное взаимодействие и инженерная культура. Каждое из них имеет более мелкие подразделения — ячейки.
Команды
Для проектной работы разработка делится на несколько команд, в которую входят от двух до семи человек. В каждой команде есть представители разных функций — разработчики, QA-инженеры, продакт-менеджеры, аналитики, дизайнеры.
Состав команды определяется текущими потребностями. Если проект сильно разрастается, он разбивается на осмысленные логичные подпроекты, над каждым из которых работает отдельная команда. При этом в каждой небольшой группе все участники понимают, что они делают, и чем занимаются другие разработчики.
В Dualboot каждая команда несет полную ответственность за то, что она делает. Команда отвечает за проект от начала до конца, при этом она руководствуется стандартными в разработке практиками, но может идти к цели наиболее эффективным для себя и ситуации способом.
Инженерные практики
Практика в нашей компании — это объединение людей вокруг какой-то темы, технологического стека или методологии для ее продвижения, повышения своей компетентности и помощи другим.
Цель практики — развитие инженерной культуры. Для нас она — невидимая субстанция, которую мы не замечаем в повседневной жизни, потому что она окружает нас повсюду. Люди не могут выразить ее с помощью формальных процедур, но если каждый будет говорить о ней и понимать ее, мы сможем сохранить и развить инженерную культуру.
Технологии и процессы
Нашими основными технологическими стеками являются Ruby, Python, NodeJS — на бэкенде, и React, Next, Typescript и немного Angular на фронтенде.
Основой нашего рабочего процесса является Docker, мы используем его для разработки и производства. Вычислительная инфраструктура описана в виде кода и управляется Terraform. Также мы любим писать тесты и автоматизацию, поэтому все проекты используют CI/CD.
Кроме того, Dualboot является Agile-компанией. Мы используем доски Канбан, ежедневные совещания, спринты, майлстоуны и в целом любые дополнительные инструменты, которые делают нас более эффективными.
Почему Dualboot?
Зачем же тогда идти работать в Dualboot, если можно пойти работать в стартап (или в продукт) напрямую? У нас есть преимущества и большой компании — несмотря на ограниченность ресурсов внутри компании клиента, со своей стороны, мы можем сбалансировать негативные факторы стартапа. Например, мы можем уберечь разработчиков от кранчей перед релизами расширив команду, уберечь людей от провала, несмотря на ошибки клиента. Мы обеспечиваем стандартный рабочий день, даже при условии разницы таймзон.
Конечно, не всегда все идет гладко, и иногда мы можем только дать совет, а финальное решение все равно остается за клиентом. Поэтому иногда мы отходим от паттерна, обозначенного выше — проекты проваливаются и могут заканчиваться ничем. Но для тех, кто работает у нас, это даже не стресс — в Dualboot всегда есть, куда перераспределить высвободившиеся силы.
Наши проекты получаются достаточно разные, поэтому у человека всегда есть выбор, где работать. Где-то поспокойнее, но есть легаси-код, где-то все пишется с нуля, но нужно успеть в определенную дату релиза, где-то процессы управления похуже, но проект технически сложнее и интереснее, где-то наоборот.
Мы продвигаем сотрудников внутри компании и рады справедливо вознаграждать членов нашей команды, обладающих необходимыми техническими навыками, хорошим знанием английского языка и софт-скиллами. Новые проекты постоянно появляются, и постоянно существуют возможности для тех, кто хочет занять руководящую должность. Например, в продуктовой компании ждать, пока ваш менеджер уйдет, а вы займете его место, сложнее. Есть только одно место, и вас много на предыдущем уровне.
Кроме того, мы поощряем рекомендации и изменения в процессах и культуре, основанные на передовом опыте. Нам нравится привлекать новых членов команды в нашу компанию, потому что они обладают новыми знаниями. Мы всегда призываем разработчиков высказываться, если у них есть хорошая идея, которая может сделать нас или наших клиентов более эффективными. Наша команда становится лучше, когда мы прислушиваемся к членам команды и перенимаем их опыт и знания, чтобы улучшить нашу культуру и процессы.
Наконец, в Dualboot поощряется обмен знаниями между членами нашей команды. Мы создали образовательную платформу, которая помогает обучать новых членов команды и повышать квалификацию уже работающих.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях