July 23

Backend Developer (Python)

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

О самой вакансии:

Сейчас мы расширяем нашу команду специалистов и находимся поиске Backend-разработчиков

Требования:

  • Опыт коммерческой разработки на Python от 2 лет
  • Коммерческий опыт работы с асинхронными фреймворками
  • Умение анализировать SQL-запросы
  • Опыт работы с реляционными СУБД
  • Умение работать с брокерами сообщений (RabbitMQ)
  • Опыт работы с ORM, в приоритете SQLAlchemy
  • Умение тестировать свой код и работать с чужим
  • Навыки работы с Docker
  • Опыт использования Linux

Чем предстоит заниматься:

  • Поддержание производительности, отказоустойчивости и бесперебойности работы проектов
  • Внедрение нового функционала и оптимизация кода
  • Разработка микросервисов
  • Написание API

О компании

Компания Betting Software (BSW) начала свою деятельность в 2009 году. В тот период она занимались исключительно ставками на спорт, в частности - принимала ставки. Затем дела пошли в гору, пришла пора масштабироваться, и в 2015 году руководством компании было принято решение расширить сферу деятельности и начать продавать сборку полноценных сайтов для принятия ставок. С того момента BSW начинает свое функционирование в качестве IT-компании.

  • Betting Software– это IT-компания, которая специализируется на разработке и сопровождении веб-приложений для беттинга и гемблинга, их дизайне, а также интеграции систем и игр.
  • BSW создает под ключ решения, позволяющие клиентам запустить свой игорный бизнес онлайн с последующим его развитием и сопровождением.
  • Компания работает за пределами русскоязычного рынка и предоставляет свои услуги по всему миру. Основные рынки компании на сегодняшний день – это Тунис и Аргентина.

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

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

Примеры готовых проектов (мобильная версия превалирует, процентов 90 юзеров пользуются именно ей):

Команда

Команда Betting Software – это более 90 удаленных специалистов из различных городов и стран (преимущественно из России), которые работают в отделе продаж, поддержки, разработки, менеджмента, дизайна, финансов и т.д.

До марта 2020 года компания функционировала очно и имела офис в Томске, но после пандемии все сотрудники перешли на удаленную работу. По сей день компания функционирует в формате fully remote.

Коллектив компании преимущественно молодой, средний возраст сотрудников +- 28 лет, в разработке 24-26.

Даже с небольшими стажами новичнов - средний стаж работы в компании выше 2,5 лет.

Об отделе разработки

Структура отдела:

Возглавляет отдел технический директор (CTO)

В отдел входят:

  • Frontend разработчики, разделенные на 3 команды, у каждой из которой есть тимлид. Сейчас в команде 10 человек.
  • Backend разработка: этим направлением руководит техлид. Разработчики также разделены на 3 команды, у каждой из которой есть тимлид. Сейчас в команде 17 человек.
  • Devops-инженеры: одна команда из 4 человек. Данным направлением также руководит техлид.
  • Тестирование: одна команда из 4 человек.

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

Группа разворачивания занимается новыми проектами для клиентов.

Группа сопровождения - поддержкой, разработкой, рефакторингом проектов, которые уже запущены в работу, новички в основном приходят именно в эту группу.

Группа развития - занимается внутренним проектом компании по автоматизации разворачивания продуктов.

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

Внутренняя политика и процессы в отделе разработки:

  • Уровень сотрудников отдела разработки: middle и senior. Иногда мы берем junior-специалистов, в которых видим потенциал в повышении навыков в первые 2-3 месяца.
  • Корпоративное общение осуществляется в Telegram.
  • Разработка работает по недельным спринтам. Для крупных задач проводится ресерч сроков, мелкие задачи не оцениваются.
  • Привязки к одной методологии разработки нет. У нас используется комбинация различных подходов: часть по скраму, часть по канбану, есть какие-то свои фишки. Задачи ставит техдир в microsoft azure , затем их разбирают тимлиды по командам и распределяют между сотрудниками.
  • Не используются таймтрекеры. Вместо этого ведется отчетность по формату End Of the Day (EOD). Коротко: сотрудники ежедневно заполняют таблицу с указанием времени начала и окончания работы и выполненными задачами, чтобы отслеживать выполнение нормы в 160 часов в месяц.
  • Созвоны проводят не часто. Общие созвоны 1-2 раза в неделю, чаще проводятся отдельные тимлидерские созвоны.
  • У отдела разработки есть WIKI, в ней описаны все базовые вещи + каждый новичок дополняет и обновляет её в процессе обучения, если что-то не нашел или не смог разобраться. Можно сказать, что это представляет из себя обучение по теоретической части. Конечно, можно собирать фидбэки и целенаправленно улучшать эту "базу знаний", но на это нужно выделять время, поэтому, как правило, это совмещается с процессом обучения.
  • Онбордингом сотрудника занимается тимлид команды, в которую он попадает. Также часто новичка онбордит коллега из команды. У бизнеса почти всегда есть поток хороших небольших тасок, на которых можно онбордить. Это и снижает порог вхождения в компанию, и даёт некоторую автономность новичкам, но обязательно у каждого есть ментор, который наблюдает за новичком, отвечает на вопросы, ревьюит код и в целом помогает с адаптацией.
  • Ревью кода проводится на все задачи, связанные с кодом. Оценки персонала, перфоманс ревью нет (пока что, возможно когда-то будет).

Плюшки

  • Каждые 3 месяца отделу разработки пересматривают з/п, в том числе на основе среднерыночных зарплат (анализ з/п проводит HR, решения о повышениях принимает техдир; ближе к концу подраздела описаны подробности).
  • Компания оплачивает 1 час самообучения в день согласно часовой ставке сотрудника. Под самообучением может подразумеваться чтение профильных книг, прохождение курса, просмотр конференций и т.д.
  • Компенсация на здоровье - до 165 долларов в месяц. Походы к узким специалистам, лекарства по назначению врача, с чеком в HR-отдел и компенсация в следующий месяц придет вместе с зарплатой.
  • Компенсация на изучение английского языка - до 165 долларов в месяц. Можно пользоваться корпоративным SkyEng, можно заключить договор в другой онлайн-школе или оффлайн-школе в своем городе. Опять же - чек, компенсация в след. месяце с зарплатой.

График отдела разработки

  • Как и все сотрудники компании, отдел разработки работает в государственные праздники России, кроме новогодних каникул (тогда мы отдыхаем все 8-10 дней)
  • Есть норма в 160 рабочих часов в месяц. Обязательные часы работы - с 10:00 до 14:00 по МСК, в это время мы активно работаем, отвечаем на все сообщения, находимся на рабочем месте.
  • Остальные часы можно распределять по своему усмотрению - в какой-то день можно поработать 6 часов, в какой-то добрать оставшиеся часы.
  • Конечно, ошибочно предполагать, что можно выполнить задачи на 160 часов за 15 дней и не работать остальные полмесяца. Мы стремимся к тому, чтобы распределять свое рабочее время равномерно, а эта гибкость графика существует для более комфортного формата работы, в том числе из-за разницы в часовых поясах.

Рост внутри компании

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

Стек технологий

  • Frontend: JavaScript, SASS, React 16+, Redux, RTK, RTK query, Hooks, TypeScript.
  • Backend: Python, FastAPI, Tornado, PostgreSQL, SQLAlchemy, Redis, RabbitMQ, Docker, nginx, gitlab-ci.
  • DevOps: Linux, git, docker/docker-compose, nginx/traefik, PostgreSQL, Redis, CouchDB, RabbitMQ, k8s, kubeadm, prometheus/grafana/Alertmanager, ELK, Sentry, Gitlab CI + Ansible, AWX.

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

Есть около 10-15 высоконагруженных проектов, на самом топовом из них нагрузка около 4000 RPC и рекорд 100 млн ставок за сутки.

При подборе Backend-разработчиков в первую очередь мы смотрим на опыт с fastapi, postgresql (или другая БД / знание SQL), Docker; крайне желательно с sqlalchemy, redis; необязательно nginx, Tornado (наш небольшой легаси), RabbitMQ, gitlab-ci.

Система мотивации для команды Backend

Отделу backend начисляют премии за 3 направления в работе: бесперебойность, выполнение спринта, скорость в сдаче проекта.

- Если за неделю (вместе с выходными) после рабочего времени (18:00 по МСК) не упало ничего из-за действий, совершенных отделом backend разработки в течение предыдущих трех дней, то начисляется премия 1%. По сути мы вводим гарантийный срок выполненных работ, равный трем дням.

- Если выполнен весь спринт (мелкие и средние задачи), при этом крупные задачи спринта, которые по сроку должны были выполниться в данную рабочую неделю, также были завершены, то начисляется премия 1%.

- Если новый проект сдан в срок, то начислять премию 1%.

Итого в месяц максимум (1+1+1)*4 недели = 12% (от оклада) премии для отдела Backend

Дежурства

В связи со спецификой бизнеса у backend разработчиков предусмотрены дежурства.

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

Время дежурства с 6 вечера до 6 утра по МСК.

Всего есть 3 типа дежурств:

1. 7 дней недели
Пояснение: 7 дней дежурят, получают премию 300 долларов за выходные, отсыпаются в понедельник.

2. 5 будних дней, в другой раз 2 выходных
Пояснение: дежурят 5 будних дней, потом через пару недель еще дежурят на выходных, за которые получают 300 + отсыпной. По сути 1 в 1 как в первом типе дежурств, но с разрывом.

3. 3 будних дня, 2 будних дня, 2 выходных
Пояснение: дежурят в первые 3 дня недели и на четверг получают сокращенный день, в другую неделю с четверга до пятницы 2 дня обычные без отсыпных (так как потом и так выходные), в иную неделю за выходные как и в первых двух случаях 300+ отсыпной.

Важно: новичков не ставят на дежурства, как минимум первые полгода, так как для устранения неполадок в работе проектов нужно иметь более четкое понимание о их специфике. График составляется заранее, можно корректировать его в соответствии со своими пожеланиями. Как правило, для опытных разработчиков дежурство выпадает 1 раз в 3 месяца.

Этапы отбора в команду

  • При отборе разработчиков этого направления одним из этапов является выполнение тестового задания после скрининга резюме и первичного общения с HR.
  • Нанимающим руководителем является техлид, он же проводит технические собеседования с кандидатами (1 или совместно с коллегой из отдела), дает фидбэк и принимает решение.
  • Этапе отбора следующие: первичный скрининг и общение с HR, выполнение ТЗ, просмотр техлидом результатов и, если они удовлетворительны, то приглашение на техническое собеседование (если нет, то отказ с объяснением причин).
  • ТЗ для бэкеров: https://drive.google.com/file/d/1GJUCtfnWdx-sp3UmdjAnYs1JkEm-fDmm/view?usp=sharing
  • Ссылку на git с заданием можно отправить HR.
  • Формат техсобеса: знакомство, обсуждение опыта, вопросы по различным темам и опционально обсуждение тестового, без лайвкодинга, онлайн-задач и т.д.
  • Проводят техсобесы обычно в google meet, формат 1-1,5 часа (как правило до часу, но, если беседа очень оживленная, можем по взаимному желанию задержаться)
  • По результатам технического собеседования также дают фидбэк. Если очевидно, что кандидат не прошел по требованиям или не соответствует по другим моментам, то фидбэк с отказом можно получить в этот или на следующий день.

Еще кое-что из внутренностей

  • З/п в компании выплачивают каждого 2го и 16го числа (16 аванс).
  • Если день выплат выпадает на выходной, то з/п переносится на будний день (пятница или понедельник).
  • Все бонусы, больничные, переработки и т.д. выплачиваются вместе с з/п 2 числа.
  • Расчеты в USDt
  • Все сотрудники компании получают 28 дней оплачиваемого отпуска в году.
  • Право на использование отпуска возникает у сотрудника по истечении шести месяцев его непрерывной работы в компании.
  • Отпуск в течение года можно брать как частями (кратными 7ми), так и все 28 дней сразу.
  • P.S Бывают кейсы, когда сотруднику могут одобрить отпуск, если он еще не отработал полгода, но это необходимо предварительно обсуждать и согласовывать в индивидуальном порядке, так как нужно понимать причину.

Еще вопросы

Почему платят в крипте?
Заказчики расплачиваются с компанией криптовалютой, поэтому она и используется как средство расчета с сотрудниками.

Методология разработки?
Конкретной методологии нет, у нас они замиксованы: часть по скраму, часть по канбану, есть какие-то свои фишки. Работаем по недельным спринтам, задачи ставят в azure.

Возможно ли устроиться официально?

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

Мы являемся аккредитованной IT-компанией, поэтому можем предоставлять льготную ИТ ипотеку со сниженной ставкой по кредиту.

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

Почему работам по праздникам?
Мы работаем 160 часов в месяц, что нивелирует отсутствие праздников. С учетом этого, мы работаем даже меньше тех, у кого есть отдых в праздники. Если смотреть производственный календарь 2024 года, то за четыре квартала в этому году будет 1979 рабочих часов при 40-часовой рабочей неделе, а у нас 1885 (на Новый год мы отдыхаем). Это объясняется тем, что не в каждом месяце 160 рабочих часов, бывает и больше 20 рабочих дней, а у нас всегда 160 часов, независимо от месяца. Специфика компании такова, что лучше работать каждый день (кроме выходных), но меньше, чем отдыхать по праздникам.

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

Betting/gambling легален?
Незаконно принимать ставки, но компания этим не занимается. BSW разрабатывает букмекерские сайты и передает их заказчикам, а далее они сами принимают деньги, гонят трафик, рекламируют проект, то есть мы продаем IT-продукт. Деятельность компании - разработка ПО.

На этом - все. Спасибо за прочтение! Будем рады продолжить наше общение, ответить на остальные вопросы, договориться о сроках выполнения тестового задания и всех остальных условиях.

HR Александра - t.me/adssn