Мы создаём собственную систему управления автоматизированным тестированием - ключевой инструмент CI/CD, которым ежедневно пользуются разработчики компании. Это полноценное desktop-приложение с GUI и фоновым сервисом, оркестрирующим параллельное выполнение тысяч тестов.
Ищем разработчика, который будет участвовать в развитии архитектуры, проектировании и реализации новых возможностей, повышении надёжности.
Что вы будете делать:
-
Разрабатывать GUI-клиент на Python (PyQt/PySide): работа с базой тестов, фильтрация, формирование сессий, отображение результатов.
-
Разрабатывать и поддерживать ядро системы - фоновый сервис для параллельного выполнения тестов (таймауты, окружение, очереди, статусы).
-
Проектировать и реализовывать надёжное взаимодействие GUI и сервиса: работа через файлы, сокеты, механизмы блокировок.
-
Работать с JSON-конфигурациями, профилями, переменными окружения, сложными путями к данным.
-
Обеспечивать отказоустойчивость: транзакционное сохранение состояния, корректное восстановление после сбоев.
-
Оптимизировать работу с большими наборами данных - очереди тестов на тысячи элементов.
-
Работать над архитектурой, участвовать в code review, писать документацию.
Мы ожидаем:
-
Уверенный опыт разработки на Python 3.9+ от 3 лет (или опыт в другом языке + готовность перейти на Python).
-
Опыт создания desktop-приложений с GUI (PyQt6/PySide6).
-
Хорошее понимание параллелизма и межпроцессного взаимодействия: threading, subprocess, синхронизация, пулы.
-
Опыт проектирования IPC: файлы, сокеты, очереди сообщений.
-
Уверенная работа с файловой системой, путями, аргументами командной строки (argparse, pathlib).
-
Опыт работы со структурированными данными (JSON, сложные схемы, валидация).
-
Понимание принципов разработки надёжного ПО: обработка ошибок, консистентность данных, транзакционность.
-
Уверенное владение Git.
-
Понимание базовых принципов CI/CD и роли автотестов.
-
Архитектурное мышление: модульность, паттерны, поддерживаемый код.
Будет плюсом:
-
Опыт сетевого программирования (TCP-сокеты).
-
Знание C++ - для понимания контекста тестируемых продуктов.
-
Опыт упаковки Python-приложений (PyInstaller, cx_Freeze).
-
Опыт разработки автотестов или работы с большими тестовыми наборами.
-
Опыт оптимизации производительности Python.
Что мы ценим:
-
Умение находить баланс между идеальным и практичным решением.
-
Ответственность за качество и надёжность - ваш код станет основой ежедневной работы разработчиков.
-
Самостоятельность и внимание к деталям.
-
Готовность к диалогу, командная работа, конструктивность в обсуждениях.