описание
Должность требует квалифицированного и самоинициативного инженера-программиста с глубокими техническими знаниями в системах на базе Go и практическим опытом создания современных веб- и распределённых приложений. Кандидат сочетает в себе сильные инженерные способности с умением ориентироваться в сложностях интеграции сторонних систем, последовательно применяет лучшие практики безопасности как правило и ответственно использует инструменты ИИ, полностью неся ответственность за каждую строку кода, которую он отправляет.
Ключевые бизнес-процессы
• Проектирование и разработка программного обеспечения.
• Разработка интерфейсов с помощью ИИ.
• Интеграция сторонних API.
• Надежность и эксплуатация систем.
• Документация и обмен знаниями.
Функции работы
• Проектирование и разработка программного обеспечения
Проектировать, разрабатывать и поддерживать масштабируемые программные решения, внося вклад в архитектуру и реализацию высококачественных систем, которые соответствуют бизнес- и техническим требованиям.
• Разработка интерфейсов с помощью ИИ
Использовать инструменты разработки с поддержкой ИИ для повышения производительности в разработке интерфейсов, при этом обеспечивая, чтобы весь сгенерированный код был тщательно проверен, безопасен, поддерживаем и соответствовал стандартам проекта.
• Интеграция сторонних API
Разрабатывать и поддерживать интеграции с внешними системами и сторонними API, обеспечивая надежность, устойчивость и правильное обращение с развивающейся или неполной документацией.
• Надежность и эксплуатация систем
Поддерживать надежность системы, контролируя производительность, устраняя проблемы и поддерживая стабильные производственные среды с помощью эффективной отладки, наблюдаемости и эксплуатационных практик.
• Документация и обмен знаниями
Создавать и поддерживать четкую техническую документацию, включая архитектурные решения, детали реализации и эксплуатационные инструкции, активно делясь знаниями внутри инженерной команды.
Технические навыки
Язык Go и экосистема
Кандидат должен продемонстрировать сильное, производственное владение Go, включая:
• Глубокое понимание основ языка Go: горутины, каналы, интерфейсы, обработка ошибок и система типов.
• Свободное владение стандартной библиотекой и широко используемыми библиотеками сообщества (например, chi, gin, sqlx, pgx).
• Опыт работы с веб-фреймворками Go и паттернами HTTP middleware.
Знание официального инструментария Go и инструментов для разработчиков, включая go build, go test, go vet, go mod, go generate.
Инструменты для производительности и качества:
• pprof для профилирования и анализа производительности;
• race detector для проверки кода на наличие гонок;
• golangci-lint и staticcheck для оценки качества кода.
Кандидат также должен продемонстрировать способность писать идиоматический, поддерживаемый код на Go, следуя установленным конвенциям сообщества.
Веб-приложения
• Сильное понимание архитектуры и работы современных веб-приложений.
• Способность рассуждать о жизненных циклах запросов, дизайне API (REST, gRPC) и взаимодействиях клиент-сервер.
• Опыт работы с семантикой HTTP, кэшированием, потоками аутентификации (OAuth2, JWT, сессии) и версионированием API.
• Знание контейнеризации (Docker) и развертывания в облачных средах (Kubernetes или аналогичных).
Распределённые системы
• Опыт работы с паттернами распределённых систем, включая: очереди сообщений; архитектуры, управляемые событиями; конечную согласованность.
• Знание баз данных (реляционных и/или NoSQL) и их эксплуатационных характеристик.
• Понимание практик наблюдаемости, включая: структурированное логирование; метрики; распределённое трассирование.
Опыт интеграции сторонних систем
Значительная часть этой роли связана с интеграцией с внешними системами и API различного качества и зрелости.
Кандидат должен продемонстрировать:
• Практический опыт работы с сторонними REST и/или gRPC API.
• Способность эффективно работать с API, имеющими неполную, неточную или развивающуюся документацию.
• Умение диагностировать сбои интеграции, читая трафик; интерпретируя ответы об ошибках; изолируя коренные причины.
• Четкую и профессиональную коммуникацию с внешними контрагентами для устранения проблем и эскалации, когда это необходимо.
• Опыт переговоров по изменениям в API, управления ограничениями версионирования и проектирования устойчивых интеграционных слоёв.
Знание инструментов для инспекции и отладки API, таких как Postman; curl; Wireshark или аналогичные инструменты.
Знания в области безопасности
Кандидат должен иметь практические знания в области безопасности приложений, включая:
• Осведомленность о OWASP Top 10 и распространённых уязвимостях веб-приложений: атаки внедрения; XSS; CSRF; SSRF и связанные риски.
• Понимание практик безопасного программирования, включая: валидацию ввода; кодирование вывода; принципы наименьших привилегий.
• Опыт безопасной реализации механизмов аутентификации и авторизации.
• Знание управления секретами и избежание раскрытия учетных данных в коде или логах.
• Способность выполнять базовое моделирование угроз и рассуждать о поверхностях атак в проектировании систем.
• Знание TLS/HTTPS, управления сертификатами и безопасной коммуникации между службами.
Аналитические и документальные навыки
Аналитическое мышление
• Способность разбивать сложные проблемы, формировать гипотезы и систематически проверять выводы.
• Умение проводить анализ коренных причин и постинцидентный обзор.
• Способность рассуждать о компромиссах в проектировании систем, производительности и поддерживаемости.
Документация
• Способность писать четкую и точную техническую документацию для: кода; API; архитектурных решений; эксплуатационных инструкций.
• Уверенность в создании записей архитектурных решений (ADR) и проектных предложений.
• Поддерживает документацию по мере эволюции систем, рассматривая её как первоклассный инженерный артефакт.
Разработка с помощью ИИ
Мы активно поощряем использование инструментов программирования с поддержкой ИИ для повышения производительности при соблюдении строгой инженерной ответственности.
Кандидат должен продемонстрировать:
• Опыт интеграции помощников программирования с поддержкой ИИ (например, GitHub Copilot, Cursor, Claude Code или аналогичные) в повседневный рабочий процесс разработки.
• Способность критически оценивать сгенерированный ИИ код на предмет корректности, безопасности и соответствия стандартам проекта.
• Понимание того, что ИИ является ускорителем, а не заменой инженерного суждения — инженер несет ответственность за каждую строку, отправленную в репозиторий.
• Практики, обеспечивающие, чтобы код, созданный с помощью ИИ, был должным образом проверен, протестирован и полностью понят перед слиянием.
Требуемый опыт и квалификация
• Минимум 4 года профессионального опыта в области программной инженерии на полной ставке.
• Не менее 3 лет профессионального опыта в разработке программного обеспечения, создания и поддержки производственных веб-приложений.
• Подтвержденный опыт создания и поддержки производственных веб-приложений.
• Подтвержденный опыт разработки распределённых систем.
• Практический опыт на всех этапах жизненного цикла разработки программного обеспечения, включая проектирование, реализацию, тестирование, развертывание и обслуживание.
• Знание полного жизненного цикла разработки программного обеспечения, от проектирования и реализации до тестирования, развертывания и обслуживания.
• Сильное владение языком программирования Go и инструментами экосистемы.
• Опыт интеграции сторонних API и внешних сервисов.
• Практические знания лучших практик безопасности приложений.
Требуемые мягкие навыки
• Сильное чувство ответственности и обязательства за предоставленные решения.
• Сильные аналитические способности и структурированное решение проблем.
• Высокая ответственность и собственность за предоставленный код.
• Четкие технические навыки коммуникации и сотрудничества.
• Способность работать самостоятельно и преодолевать сложные технические задачи.
• Приверженность высокому качеству кода, поддерживаемости и стандартам документации.
Пакет вознаграждений
• Конкурентоспособная базовая зарплата, соответствующая опыту и технической экспертизе.
• Гибкие условия работы.
• Бюджет на инструменты, профессиональное развитие и обучение.
• Возможность работать над сложными инженерными задачами в совместной среде с низким уровнем бюрократии.