Младший разработчик Ruby
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Мы фин.тех компания специализирующаяся на создании кредитных конвейеров для банков из TOP-50. Мы не являемся банком, основной упор в компании на создании программных продуктов. Зарабатываем мы на проценте с выдачи кредита, поэтому заинтересованы в том, чтобы поток увеличивался, продукт улучшался, а наши банки становились сильнее. Поэтому отношения с банками у нас дружественные — они занимаются деньгами, а мы — разработкой. У нас нет банковской "муштры", но можно познакомиться с внутренней кухней банков (у нас их больше 10). С текущего года помимо банков из России у нас появился первый банк из США.
Наша работа сводится к замене бумажно-человеческого процесса в банках на автоматизированный процесс проверки и принятия решения. В нас закидывают пачку сканов и фотографий документов, который мы преобразуем OSR-методами в текст, распознаем количество заемщиков, достаточно ли документов для принятия решения, проверяем людей по всем доступным источникам на проблемы с законом, долги, банкротство. Далее принимаем решение об одобрении или отказе в кредите по риск-модели банка. Все это позволяет сообщать результаты по заявке на кредит быстрее (вплоть до 15 минут, если это потребительский кредит). В современном мире кто быстрее всех ответил клиенту, тот скорее всего кредит и выдаст.
За всем этим стоит работа около 200 разработчиков, разбитых на отдельные команды (ruby, python, php, elixir, front, java разработчики). У нас нет highload-а в привычном понимании этого слова, но через нас проходят миллиарды рублей. Кроме того, перед компанией стоит довольно много интересных задач. Например,
- укладываться в SLA: если мы не укладываемся в заранее заданное время, денег за заявку мы не получаем;
- собирать аналитику, выдавать рекомендации банкам;
- перестроить стейт.машину для обеспечения новой роли в банке или соответствию новому законодательству.
Каждый банк обслуживается командой, в которую входят проджект-менеджер, devops, аналитики, фронт-разработчики, python-разработчики, тестировщики и от 2 до 5 ruby-разработчиков. Наш технический директор является ruby-истом, поэтому исторически Ruby-сервисов и Ruby-специалистов в компании много, есть несколько Elixir-команд. Начать предстоит в одной из таких команд, после достижения middle-уровня и по мере знакомства с проектами, можно переходить из одной команды в другую.
Компания относительно молодая, работает с 2017 года, поэтому всем мы с удовольствием экспериментируем с новыми технологиями, стилями, нет технологического диктата. Например о конфиге Rubocop или gitflow каждая команда договаривается на внутреннем обсуждении. Ruby-исты и Python-исты регулярно встречаются, обсуждают проблемы, и общие для всех проектов микросервсы. Регулярно устраиваем и записывем внутренние митапы (по Docker, Kubernetes, CI, новинки Ruby 3, Rails 6, а не умер ли ООП?). Внутренние митапы используются для холивара, обучения и как площадка подготовки спикиров для внешних мероприятий.
Очень древнего кода нет, самая старая версия Ruby 2.5, Rails 5.2. Вам скорее всего придется работать с Ruby 3.0 и Rails 6.0.
У нас хватает и традиционной работой, связанных с Ruby on Rails, API, однако много нестандартных задач. Например, мы не можем терять заявки, в связи с чем у нас очень много очередей (мы используем RabbitMQ), решение проблем горизонтального масштабирования, перевода узлов системы в Kubernetes, у нас много файлов и работ связанных S3-подобным хранилищем. Это не обычный веб-сайт, проекты довольно нестандартные, зачастую "скопировать" и "подсмотреть" решения просто негде.
Мы считаем, что джуниор-разработчик:
- должен попадать в самый сильный коллектив, чтобы обеспечить ему как можно быстрый технологический рост;
- иметь ответственного ментора из состава синьор-разработчиков или тим.лидов (в соотношении один джуниор-разработчик на одного ментора);
- должен развиваться по заранее составленному плану индивидуальному развития (план составляется вместе с менторам на one-to-one встречах, на план можно влиять);
- должен постоянно изучать что-то новое;
- ему должны оплачиваться конференции и обучение;
- у разработчика должны быть регулярные встречи с ментором;
- заинтересован в развитии и изучает все технологии и инструменты, которые встречаются ему в работе (даже если его специально об этом не просят);
- должен получать детализированные, расписанные по пунктам задачи, в которых ему все понятно;
- должен быть упорным и атаковать проблему, даже если она не поддается с первого раза;
- должен знать Ruby и фреймворк Ruby on Rails на уровне выпускника Ruby-школы;
- покрывать свой код RSpec-тестами;
- владеть системой контроля версий git;
- владеть основами баз данных (на уровне составления crud и join-запросов);
- не должен бояться демонстрировать свое незнание или стесняться задавать вопросы (не только ментору, всем участникам команды: проджект-менеджеру, аналитикам, devops-ам, python-коллегам, тестировщикам);
- должен вырасти за 1 год до middle-разработчика (это задача в том числе и ментора).
Ключевые навыки
Git Ruby Python ООП Ruby On Rails