Ищу Python бэкенд-разработчика
Привет! Меня зовут Влад, я технический директор
Мы запустили платформу на новой архитектуре для обоих сервисов «Авиаты» и «Чокотревела» — чтобы всё работало быстрее и эффективнее. И нужны люди, которые помогут её поддерживать и развивать.
Зарплата 150 000—750 000, в зависимости от уровня.
«Авиата» — сервис покупки авиа- и Ж/Д билетов. Мы работаем с 2013 года, и сейчас продаём более 300 000 билетов ежемесячно. В 2018 году издание Forbes Казахстан назвало нас лидером по продаже билетов.

Мы ставим перед собой амбициозные цели и не собираемся останавливаться. Наша IT-компания — команда единомышленников, но по отдельности каждый – самонаводящаяся ракета!

Что мы делаем

Мы разрабатываем платформу на микросервисной архитектуре, на которой стоят Авиата и Чокотревел, создаем новые сервисы и дорабатываем существующие. Это позволяет нашим системам не только работать быстрее и стабильнее, но и дает возможности для использования новых технологий.

Всё, что мы делаем, укладывается в нашу миссию — делать путешествия людей удобными. Нередко задачи бывают и архитектурные, и продуктовые. Поэтому наши программисты должны не только хорошо кодить, но и проявлять инициативу — выбор способа выполнения задания лежит именно на разработчике.

Еще одна важная деталь — мы работаем по методологии Agile. Все программисты, дизайнеры, тестировщики и менеджеры поделены на продуктовые команды, перед которыми стоят определенные цели, например поднять конверсию бронирования или ускорить процесс покупки. То, как команда достигнет своей цели, зависит только от самой команды, потому что решения для достижения этой цели принимаются внутри команды.

Ожидаем от человека
Основная работа — разработка веб-части сайтов, REST-сервисов, asyncio сервисов, клиентов для работы с API, написание unit-тестов.
Подробнее в грейдинге

Рекомендуем к прочтению:

- Чистый код. Роберт Мартин
- Совершенный код. Стив Макконнелл
- Изучаем Python. Марк Лутц
- Чистый Python. Тонкости программирования для профи. Д. Бейдер
- Паттерны проектирования. Эрик Фримен, Элизабет Фримен, Кэтти Сьерра, Берт Бейтс
- Рефакторинг. Улучшение существующего кода. М. Фаулер
- Чистая архитектура. Искусство разработки программного обеспечения. Р. Мартин
- Создание микросервисов. Сэм Ньюмен
- Микросервисы. Паттерны разработки и рефакторинга. Крис Ричардсон


Предлагаем взамен

Офис в центре Алматы. Мы находимся на пересечении проспектов Абая и Гагарина, в 5 минутах от станции метро «Алатау». Кстати, офис у нас новый, просторный и клевый.

Официальное трудоустройство и «белая» зарплата. Мы принципиально против зарплат в конвертах, поэтому не будем так платить, даже если вы сами этого попросите.

Ноутбук и монитор. И любое другое оборудование, необходимое для эффективной работы.

Обучение за счёт компании. Если хотите пройти курсы или пойти на конференцию, связанную с вашей работой, компания готова оплатить стоимость обучения.

Библиотека с профессиональной литературой. Мы регулярно обновляем список книг, которые можно читать в офисе и брать домой.

Если считаете, что сработаемся,
отправьте своё резюме
Как к вам обращаться
Как с вами связаться
Прикрепите резюме в формате DOC или PDF
Грэйдинг бэкенд-разработчиков
Intern
Hard skills
  • Базовые знания языка программирования (переменные, операторы, функции, ограничители)
  • Понимание клиент-серверной архитектуры
Soft skills
  • Способность и желание обучаться
  • Проактивность в поиске решения задач
  • Умение формулировать и задавать вопросы
  • Способность спокойно относиться к критике
Responsibilities
  • Решение простых задач
  • Исправление некритичных багов
  • Следование принципам разработки ПО, принятым в компании
  • Обязательное прочтение рекомендованную литературу, описанную выше
  • Участие в Code review разработчиков выше
Tech skills
  • Базовые знания Linux
  • Базовые знания Python и один из WEB-фреймворков
  • Базовые знания и принципы работы БД (CRUD, нормальные формы, теория)
  • Умение работать с Git
Junior 1
Hard skills
  • Понимание что такое API в целом; и в частности: REST API и HTTP статусов
  • Умение работать по Gitflow
  • Умение дебажить код
  • Знание и применение базовых принципов ООП (Инкапсуляция, Наследование, Полиморфизм)
  • Умение писать unit test'ы
  • Базовые знания работы с БД (CRUD)
Soft skills
  • Умение уточнять задачу
  • Умение оповещать о проблемах
  • Умение распределять время
  • Умение исследовать проблему
Responsibilities
  • Решение типовых задач
  • Исправление багов
  • Следование составленному плану развития
Tech skills
  • Базовые знания Docker
  • Хороший уровень знания Python:
    асинхронное программирование, генераторы, итераторы, context manager, декораторы, list/dict comprehension
  • Хороший уровень знания фреймворка Django (DRF), Sanic:
    понимание middleware, ORM, шаблонизация
  • Следование конвенции codestyle PEP-8 и конвенций принятых внутри команды
  • Умение писать unit test'ы на базовом уровне:
    pytest, мокирование, fixture
Junior 2
Hard skills
  • Умение понимать чужой код
  • Знание и применение SOLID, DRY, KISS
Soft skills
  • Не отнимать время команды однотипными вопросами
  • Самостоятельно анализировать проблемы и предлагать решения
Responsibilities
  • Правильно оценивать типовые задачи
  • Писать документации
Tech skills
  • Базовый уровень знаний микро-сервисной архитектуры:
    Понимание HTTP, REST API, Event Bus, WebSockets
  • Понимание SOA
  • Умение работать с очередями (Pub/Sub)
  • Базовый уровень знаний Redis:
    get, set, expiring control
Junior 3
Hard skills
  • Проходить код ревью без больших переделок
  • Умение проводить рефакторинг кода
  • Умение писать интеграционные тесты
  • Базовые алгоритмы и структуры данных (алгоритмы сортировки, бинарный поиск)
Soft skills
  • Умение работать в команде
  • Хорошо знать и понимать бизнес-часть проекта
  • Понимание методологий разработки и планирования (Agile)
Responsibilities
  • Решать нетиповые задачи
  • Создавать новый функционал
Tech skills
  • Хороший уровень знания RabbitMQ: exchanges, queues, bindings
  • Уметь создавать периодичные таски, scheduling
  • Хороший уровень знания Docker, умение редактировать и расширять образы
  • Понимание индексов, транзакции, атомарности в базе данных
  • Умение работать с pytest-asyncio, pytest-sanic, pytest-django
Middle 1
Hard skills
  • Умение применять паттерны проектирования
  • Улучшение кодовой базы (например, подключение шаблонизатора на весь проект, а не только на свою задачу)
  • Хорошие знания фреймворков, используемых в проекте (описаны в «Tech Skills»)
Soft skills
  • Самостоятельно общаться с другими командами, правильно решать проблему
  • Менторство
  • Понимание работы в команде, проактивность в улучшении процессов в командной работе
  • Выбор наиболее оптимального способа решения задачи
  • Участие на собеседованиях в роли интервьюера
  • Выступление на внутренних конференциях с докладами
Responsibilities
  • Поиск в code review слабых мест в коде
  • Решение сложных багов
  • Закрытие технического долга
Tech skills
  • Уверенное знание Python: хороший уровень знаний asyncio и библиотек для работы с asyncio, профилирование кода, garbage collector, multi-threading, multi-processing
  • Хороший уровень знания фреймворков Django, Django REST framework: ORM: работа с json полями, raw sql, managers, transactions, безопасность
  • Хороший уровень знания фреймворка Sanic: умение расширять базовый функционал, безопасность
  • Хороший уровень знаний технологий используемых в проекте Redis: sets, hashes, lists, pipeline
  • Хорошие знания реляционных БД: сложные запросы, вложенные запросы, группировка, оптимизация sql-запросов
Middle 2
Hard skills
  • Умение вносить доработки в код проекта с учётом нескольких проектов
  • Умение писать надёжный, расширяемый и тестируемый код
  • Умение выделять часто используемые фрагменты кода в библиотеки. Понимание и применение модульности
  • Углубленное понимание технологий, которые используются в проектах (описаны в «Tech Skills»)
Soft skills
  • Решать задачи, сложность которых растет, правильно их декомпозировать
  • Проверять задачи на соответствие целям ОКР и оценивать их приоритетность
  • Предлагать альтернативные технические решения для задач
  • Понимать бизнес составляющую каждой задачи
Responsibilities
  • Разработка библиотек, общих для продуктов компании
  • Ведение технической документации
  • Рефакторинг сложных/ответственных частей проекта
  • Профилирование, писать оптимизированный код
  • Своевременное информирование Team Lead/менеджера о возможных рисках
Tech skills
  • Уверенный уровень знаний Docker, умение создавать образы для различных окружений, multi-stage building, оптимизация образов
  • Уверенный уровень знания фреймворков Django, Django REST framework: signals, multiple databases, multi tenancy
  • Хороший уровень знания работы веб-серверов: wsgi/asgi, gunicorn/uvicorn/daphne, nginx
  • Хороший уровень знаний микросервисной архитектуры: tracing, авторизация, gateaway api (kong)
Middle 3
Hard skills
  • Кросс-командное проектирование архитектуры
  • Хорошие знания технологий, используемых в проекте (базы данных, поисковые решения, кэш — подробнее в «Tech Skills»)
Soft skills
  • Лидерство в задачах, где надо скооперировать несколько разработчиков или команд
  • Способность заменить тимлида и обеспечить продуктивное закрытие задач в его отсутствие
Responsibilities
  • Ликвидация факапов и аварий, выстраивание процессов, предотвращающих повторение таких ситуаций
  • Контроль тех. долга
  • Контроль ведения документации
Tech skills
  • Экспертный уровень знания Python: open-source contributing, читать open-source, применять лучшие практики из других библиотек, Python changelog
  • Умение проектировать модели данных Postgres, MySQL, Clickhouse, Redis и др. , применять нужное хранилище в различных ситуациях
  • Уверенный уровень знаний микросервисной архитектуры: ELK, prometheus, graphite, grafana, alerting, транзакционная модель, CQRS, distributed system design patterns
  • Умение проводить нагрузочное тестирование, сбор статистики и поиск узких мест
Senior
Hard skills
  • Разработка архитектуры систем, хорошее понимание взаимодействия систем компании между собой
  • Принимать оптимальные технологические решения в проекте для бизнеса и команды
  • Отличные знания технологий, используемых в проекте (базы данных, поисковые решения, кэш — подробнее в «Tech Skills»)
Soft skills
  • Сфера влияния - вся компания
  • Внедрять успешные практики в компании (процессы, технологии)
  • Умение продавать идеи для улучшения продукта, процесса
  • Коммуникативные навыки на высоком уровне
  • Выступление на внешних конференциях
Responsibilities
  • Стейкхолдинг
  • Решать самые сложные баги связанные с системой либо сторонними библиотеками
  • Участие в развитии технического бренда
  • Настройка и отслеживание технических метрик и ошибок
Tech skills
  • Экспертный уровень знаний технологий используемых в проекте PostgresSQL, Redis, RabbitMQ
  • Понимание работы систем оркестрации (Kubernetes, Swarm)
  • Gitlab CI/CD: уметь составлять gitlab-ci.yml, строить пайплайны, добавлять сервисы, protected tags
Есть комментарии или вопросы по грейдингу?
Сработаемся? Отправляйте резюме