🤠 Бэкендеры, найдите себе команду по вайбам! Проверить мэтч → в вайб-квизе
Команда разработки (devteam256), Россия, Санкт-ПетербургКоманда разработки (devteam256), Россия, Санкт-Петербург

Команда разработки

Бэкенд разработчикИнженер по обеспечению качестваСтарший (Senior)
Ищу работу

Контакты

Войти
Опыт работы: 7 лет и 5 месяцев
Регистрация: 16.06.2022
Последний визит: 7 месяцев назад
Гражданство:
Местоположение: Россия, Санкт-Петербург
Дополнительно: готов к удаленной работе
Знание языков:

Обо мне

Мы начали формироваться пять лет назад, когда встретились в отделе транспортной разработки финтех компании IQ Option (сейчас Quadcode). Множество интеграционных точек, инфраструктурный уровень и гибкость настройки разрабатываемой транспортной инфраструктуры ставили перед нами задачи не только по поиску нестандартных решений в разработке, но и средств воспроизведения проблем (как функциональных, так и связанных с высокой нагрузкой). Все эти задачи приводили к большому объёму совместной работы разработчиков и тестировщиков, результатом которой явился внутренний командный рабочий процесс, в основе которого лежит равнозначное стремление участников к качеству разрабатываемого продукта.
Самоорганизация, заинтересованность, опыт и личное понимание каждого члена команды о том, каким должен быть конечный продукт, помогают постоянно контролировать процесс разработки, давать чёткое представление о состояние продукта в любой момент времени, а также определять самые ранние этапы подключения тестирования к разработке. Мы можем как вести разработку, где качество является наивысшим приоритетом, так и со строгим балансом качество-сроки, давая полное понимание об уровне готовности продукта и рисках перед выпуском.

Навыки

Работа в команде
Kanban
Bash
Python
Jenkins
RabbitMQ
C++
Scrum
ООП
Golang

Опыт работы

  • Разработка облачных решений для совместной работы со всеми типами документов, обмена сообщениями и хранения файлов
    Санкт-ПетербургОт 1000 до 5000 сотрудников
    Разработка и тестирование
    Август 2022 — По настоящее время (2 года и 4 месяца)

    * Сведение микросервисов в монолит. Задачей было, не касаясь бизнес логики работы сервисов, добиться их сборки в один бинарник (с сохранением всех принципов обмена данными, исключив при этом сетевой слой). Для этого была разработана общая платформа, на которую потом был переведён процесс инициализации микросервисов и принцип их сборки. Среди прочих задачь была постановка процесса оценки качества и производительности того, что получилось.
    * Катастрофоустойчивость. В рамках данной задачи необходимо подвести существующую архитектуру проекта под возможность репликации данных между дата центрами. Среди прочего разрабытвалось решение сквозной транзакции MongoDB для множества микросервисов, с целью повышения уровня консистентности данных в аварийных случаях.
    * В рамках тестирования был организован процесс формирования нагрузочной модели на всю систему Mailion и его реализация на k6, с написанием дополнительных плагинов на языке Go.

  • Программное обеспечение для торговой и инвестиционной индустрии
    От 100 до 1000 сотрудников
    Разработка и тестирование Go
    Июль 2017 — Август 2022 (5 лет и 2 месяца)

    О команде

    Мы начали формироваться в 2017 году, когда встретились в отделе транспортной разработки финтех компании IQ Option (сейчас Quadcode). Множество интеграционных точек, инфраструктурный уровень и гибкость настройки разрабатываемой транспортной инфраструктуры ставили перед нами задачи не только по поиску нестандартных решений в разработке, но и средств воспроизведения проблем (как функциональных, так и связанных с высокой нагрузкой). Все эти задачи приводили к большому объёму совместной работы разработчиков и тестировщиков, результатом которой явился внутренний командный рабочий процесс, в основе которого лежит равнозначное стремление участников к качеству разрабатываемого продукта.

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

    Интересующая область задач: инфраструктурные, низкоуровневые разработки, исследования.

    Наш опыт

    Вместе всех членов команды свела работа над первым продуктом – собственным транспортом (шина данных), предназначенным для общения микросервисов компании Quadcode, который писался на C++, с использованием boost, protobuf, gtest и сторонних сервисов Consul, RabbitMQ, Pulsar. Из интересных особенностей можно отметить: конфигурации транспорта на лету, поддержка связи с узлами из kubernetes, находящимися в другом адресном пространстве, огромное количество соединений между инстансами шин, реализованные publisher-subscriber и request-response принципы общения, поддержка гарантии доставки, в совокупности с поддерживаемым рейтом до 260 000 rps между узлами, а также время передачи сообщения меньше 1 ms – все это и многие другие условия ставили высокую планку для разрабатываемого продукта. С формированием команды также появились и задачи по расширению объёма и принципам автотестирования, формированию подхода к процессу оценки качества выпускаемой версии, его контроля, а также разработки принципов тестирования производительности.

    Все эти наработки и принципы были использованы и для следующего проекта, частью команды которого мы являлись - websocket’а. Он представляет из себя шлюз между конечным клиентом трейдинговой платформы и транспортной инфраструктуры, основывается на технологии Websocket и написан также на C++.

    Затем три года совместного опыта работы было посвящено разработке, которая является тем, что большая часть опишет как service discovery. SD, который, по сути, оркестрирует всем, что происходит в рамках транспортной инфраструктуры: конфигурация того или иного инстанса шины, оценка кто, как и к кому должен подключаться, контроль роутинга сообщений между шинами данных, агрегация состояний клиентов шин и т.д. Написанный на Go, отказоустойчивый, с кластерной архитектурой. Из сторонних сервисов использовались Consul (для интеграции с другими продуктами и хранения настроек), Redis (как временное хранилище на случай сбоев), Graylog (хранение структурированных логов) Prometheus\Grafana. В качестве транспорта использовался gRPC.

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

    Команда

    Никифоров Алексей - старший инженер-программист

    Более 18 лет опыта в разработке

    О себе: “Увлекся программированием еще в далеком детстве, которое переросло в профессию.

    Основным язык всегда был С++. Основной рост произошёл лет 10 назад в компании “Код Безопасности”, где пришлось реверсить протокол управления виртуальной инфраструктурой.

    Там я познакомился со всеми современными трендами в разработке от стиля написания кода до деплоя, изучил bash, powershell, python. Постоянно интересуюсь как работает та или иная система изнутри, не боюсь опускаться до самого нижнего уровня. Последние 3 года совмещаю разработку на С++ и Go, очень плотно пришлось заниматься проблемами многопоточного кода, отладкой и профилированием.”

    Квашнин Владимир - старший инженер-программист

    Более 16 лет опыта в разработке

    О себе: “Большую часть карьеры разрабатывал на C++, последние 3 года переключился на Golang, в качестве дополнительного языка часто использую Python. Люблю заниматься проектированием архитектуры приложения, автоматизировать процессы разработки, много занимался задачами связанными с многопоточностью, профилированием, оптимизацией и тестированием кода. При разработке учитываю как мой код повлиет на остальную систему, насколько он читабельный, расширяемый. Увлеченный разработчик, постоянно изучаю новые технологии, слежу за тенденциями и новостями в сфере IT.”

    Ершов Дмитрий – старший инженер по автоматизации тестирования

    18 лет опыта в тестировании, последние три года – в автоматизации тестирования

    О себе: “В тестировании с 2005 года. В основном занимался web и все что с ним связано. Начинал с ручного, дорос в этом качестве до ведущего специалиста. На предыдущем месте возглавлял процесс тестирования для своего направления. После перехода в текущую команду начал обучаться автоматизации – прошел курсы Go разработчика в Otus (с успешной защитой дипломной работы) и последние три года занимаюсь автоматизацией тестирования. Также, в качестве отвественного за эксплуатацию всех наших сервисом на всех окружениях, успешно применяю богатый опыт ручного и авто тестирования для поиска\воспроизведения нетривиальных проблем, найденных на различных окружениях.”

    Терехов Дмитрий – старший инженер по автоматизации тестирования

    17 лет опыта как в разработке, так и в автоматизации тестирования

    О себе: “Начинал как C++ разработчик, пока не открыл для себя область тестирования, после чего решил развиваться в ней находя там лучшее себе применение и принося с собой инженерную экспертизу. Первоначальные навыки разработки помогли получить быстрый старт в процессах автоматизации и всю карьеру служат хорошим фундаментом для понимания принципов написания и внутреннего устройства приложений. В числе прочего это позволяет находить наиболее ранний точки внедрения контроля качества, что в свою очередь служит главному делу контроля - снижению стоимости разработки. Есть опыт управления смешанной QA командой, от ручного до автоматизированного тестирования, постановка процесса качества в продуктах, найм и сопровождение сотрудников. В последние годы посвятил себя тестированию производительности и нагрузочному тестированию со всеми производными типами и процессами. В разное время использовал: C++, Java, python, go”

    Технологии и навыки

    General

    • Профилирование
    • Оптимизация
    • Тестирование кода
    • Многопоточная разработка
    • Написании высоконагруженных сервисов
    • Проектировании архитектуры приложений

    Go

    • grpc, zap, cobra, viper, testify, mockery, go-ruleguard, golangci-lint

    C++17

    • stl, boost, grpc, gtest

    Тестирование

    • Go (testify, testing), Java (TestNG, rest-assured, retrofit)
    • Ручное. Построение плана тестирования, написание тест кейсов для верификации релизов. Исследовательское тестирование, white/grey/black box. Воспроизведение сложных кейсов с продакшена по логам и метрикам системы
    • Автоматизация. Написание специфичных фреймворков для тестирования. Построение CI/CD процессов. Тестирование UI
    • Нагрузочное тестирование, тестирование производительности, стресс тестирование, fail-over and recovery. Поиск rush codition'ов и воспроизведение кейсов с продакшена. Go, k6

    Разное

    • ZeroMQ, RabbitMQ, Pulsar
    • Consul, redis
    • Ansible
    • Influx, telegraf, prometheus, graylog, grafana
    • Docker, kubernetes
    • Bash, Python
    • Continuous Integration / Continuous Delivery, DevOps, Gitlab, Jenkins
    • Targetprocess, Jira, git, confluence
    • Scrum, Kanban
    • Reverse, Assembler
    • Unix