Senior разработчик на Python/Django в отдел QA
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Наша небольшая компания перешла на стадию, когда индивидуальных усилий разработчиков по улучшению качества отдельных продуктов и их покрытия тестами недостаточно. Требуется системный подход к обеспечению качества сервиса в целом, повышению эффективности QA отдела и систематизации подхода к тестированию, совершенствованию инфраструктуры и инструментария.
О вас:
Вы - опытный разработчик, умеющий работать с разными проектами и системами. Вы неоднократно выпускали в мир качественные релизы продуктов написанных на Python/Django. Linux, ssh и командная строка для вас - привычные инструменты. Вы не боитесь вносить правки в код приложений, для того чтобы помочь выпустить новую функциональность. Вы предпочитаете реализовывать инфраструктурные изменения в системе управления конфигурацией, вместо того чтобы делать это вручную. Вы любите автоматизировать операции и разрабатывать инструменты для повышения эффективности команды.
Вы умеете конструктивно общаться с людьми, ищете обратную связь, учитываете чужой опыт и готовы делиться своим. То, что вы пишете текстом, отличается тактичностью и грамотностью, обычно вызывает мало вопросов, понимается однозначно и полезно тем кто с вами работает. Если вы ушли в отпуск, то ваши коллеги могут легко найти описание созданных вами инструментов и процессов и успешно воспользоваться ими. Вы без проблем читаете английскую документацию и можете отправить Issue или PR на Github в используемый вами Open Source проект.
Вы можете построить полный тест-план проекта и выбрать требуемые для конкретного контекста способы тестирования (модульное, интеграционное, нагрузочное, ручное и др.). Вы способны выявить пробелы или дублирование в наборах тестов и оптимизировать процесс в целом. Умеете давать конструктивную обратную связь по чеклистам и автоматизированным тест-кейсам, обучать коллег лучшим практикам, выявлять хорошие решения и унифицировать их между проектами.
Вы не представляете процесс разработки без средств Continuous Integration и автоматизированной обратной связи разработчикам по обнаруженным дефектам. Умеете готовить повторяемые тестовые окружения, собирать code coverage и метрики из приложений.
Вы умеете создавать инструменты и инфраструктуру для нагрузочного тестирования веб-проектов, для вас не является проблемой найти причину низкой производительности в коде проекта и помочь разработчику её исправить. Совсем здорово, если вы умеете делать нагрузочное тестирование одним из этапов автоматизированного процесса контроля качества.
Вы понимаете, что автоматическое тестирование не бесплатно и с одной стороны защищает от ошибок при рефакторинге и развитии, с другой - удорожает и замедляет реализацию больших изменений. Вы знаете когда нужно ограничиться минимумом тестов, а когда нужно обеспечить послойное тестирование всех уровней и точек взаимодействия. Вы умеете управлять техническим долгом в автоматизации тестирования и понимаете когда его допустимо создать, а когда необходимо выплатить (и умеете учитывать это в личных планах и планах компании).
Вы умеете управлять негативными эффектами, возникающими при росте количества автоматических тестов (производительность и время выполнения, экспоненциальное увеличение количества тестов, количество требуемых для их выполнения ресурсов, нестабильные тесты). Вы применяете и обучаете коллег практикам, помогающим уменьшить количество кода выполняемого в конкретном тесте и уменьшению количества причин по которым он может не пройти. Вы знаете как тестировать взаимодействие между разными системами.
Вы достаточно терпеливы и вместо "революции" предпочитаете эволюционный подход. При планировании изменений вы знаете, какие из них дадут наибольший эффект при прочих равных и приоритезируете работу соответствующим образом. Умеете находить баланс между требованиями к проекту и технологическими возможностями, между желанием использовать последние технологии и стабильностью проекта а также его долгосрочной поддержкой. Вы способны самостоятельно решать крупные задачи, имеете высокий уровень личной мотивации, можете самостоятельно управлять собственным временем и фокусироваться на задачах. Вы отличаетесь вниманием к деталям и эффективно решаете проблемы.
Плюсами будут навыки работы со средствами автоматизации тестирования веб-интерфейсов (PhantomJS, Selenium и др.), а также сборки мобильных приложений (Maven/Gradle, Xcode) и автоматической выкладки бета-версий для внутреннего тестирования (Fastlane/Fabric).
Мы - стартап, поэтому у вас будет возможность получить опыт работы с разными проектами и задачами:
- Поработать в роли релиз-менеджера для того чтобы лучше понять возникающие при этом задачи и ограничения, а затем предложить и реализовать инструменты автоматизации процесса
- Идентифицировать и оптимизировать участки кода с низкой производительностью либо неэффективным использованием базы данных
- Написать инструмент подготовки наборов данных для тестовых окружений
- Создать фреймворк или набор базовых классов для упрощения написания автотестов
- Внедрить инструменты мониторинга боевого кода, непрерывного измерения производительности, сбора и отображения рантайм-ошибок
Наши технологии:
Большая часть наших проектов использует Python + Django а также Django Rest Framework. Для отслеживания задач мы используем Redmine и Rational Plan, документацию пишем в Google Docs, ReST/Markdown (в зависимости от проекта). Разработку ведём в системе контроля версий Mercurial. Есть сервер Jenkins, система управления конфигурацией серверов SaltStack, несколько тестовых серверных площадок и деплой с помощью Fabric. Для ряда задач используем AWS. Основной коммуникационной средой является Slack, к которому подключены различные интеграции. Для голосовых коммуникаций используем Google Hangouts, митинги, собрания и отпуска синхронизируем в Google Calendar.
Условия работы:
Удалённая. Рабочий день с 9:30 до 17:30 KRAT (по договорённости возможен индивидуальный график). Ежедневный чекин в Slack по утрам (9:30 KRAT) и один крупный митинг в пятницу (для коллег из Кемерово предпочтительно очное собрание). Сотрудники компании находятся в городах Кемерово, Москва, Новгород, Новосибирск, Санкт-Петербург.
Очень желательно находиться в часовом поясе от MSK+2 до MSK+6.
Дополнительные инструкции
Мы надеемся, что вы внимательно прочитали описание вакансии и примерили её на себя. Чтобы пройти тест на внимательность, начните ваш отклик на вакансию с фразы “Здравствуйте, меня зовут <ИМЯ>, мой часовой пояс <ЧАСОВОЙ ПОЯС>".
Пожалуйста, не пишите нам если вы представитель компании-аутсорсера, заинтересованы в частичной занятости или работаете на проектной основе.