Ведущий инженер-программист / Специалист разработки ПО
Описание
### Общие ожидания Приглашаем специалиста с широким техническим кругозором, способного решать задачи на уровне архитектуры и эффективно взаимодействовать со смежными командами. Ключевая специализация — веб-разработка, однако ожидается глубокое понимание смежных областей (операционные системы, сетевые протоколы, веб-серверы, низкоуровневое взаимодействие, аппаратное обеспечение, криптография, безопасность) для принятия взвешенных инженерных решений. ### Ключевые обязанности - **Разработка экосистемы приложений:** проектирование и создание клиентских и внутренних веб-приложений, интерфейсов, а также сопутствующих инструментов автоматизации и интеграции. - **Техническое развитие:** непрерывное изучение новых подходов, языков и инструментов, совершенствование собственных навыков и распространение экспертизы внутри команды. - **Внедрение инноваций:** оценка и внедрение новых технологий, современных практик разработки, повышение качества и эффективности процессов. ### Пhофессиональные компетенции **Базовый стек и экосистема** - Глубокое понимание современного стека веб-разработки, основными технологиями являются JavaScript, HTML, CSS. - Опыт работы с Vue.js (готовность разбираться в его внутреннем устройстве, а не только использовать API). - Практическое применение Node.js для построения серверной логики, инструментов сборки, вспомогательных сервисов. **Системные знания и инфраструктура** - Уверенная работа в нескольких ОС: **Linux, FreeBSD, Windows** — администрирование, настройка окружения разработки, деплой и отладка. - Глубокое понимание сетевых протоколов: **TCP/IP, DNS, DHCP, HTTP/HTTPS, TLS/SSL, WebSocket** — умение анализировать трафик, диагностировать проблемы, проектировать надёжные сетевые взаимодействия. - **Практические навыки настройки веб-серверов и прокси:** конфигурирование **nginx** и **Apache**, настройка виртуальных хостов, балансировка нагрузки, проксирование (forward/reverse proxy), кэширование, оптимизация производительности и безопасность. - Понимание аппаратных элементов компьютера: **архитектура процессоров** (x86, ARM), принципы работы **оперативной памяти** (иерархия, кэширование), устройство **дисковых подсистем** (HDD, SSD, NVMe, контроллеры) и влияние этих компонентов на производительность и надёжность программного обеспечения. - **Понимание архитектуры операционных систем:** осознанное разграничение пользовательского пространства (userspace) и пространства ядра (kernelspace), принципы взаимодействия между ними, механизмы системных вызовов, управление памятью и процессами. - Знание **алгоритмов шифрования** (симметричных, асимметричных, хеширование) и принципов их применения для обеспечения безопасности приложений и данных. **Качество и инструменты** - Опыт написания Unit-тестов, понимание роли тестирования в обеспечении надёжности ПО. - Профессиональное владение Git, знание стратегий ветвления (Git Flow, ревью кода). - Чёткое понимание **синхронных и асинхронных методов** программирования, умение выбирать подходящую модель для решения задач (коллбэки, промисы, async/await, реактивные потоки). - **Понимание узких мест безопасности** и умение проектировать и разрабатывать приложения **с учётом защиты от утечек данных** (безопасное хранение секретов, валидация входных данных, защита от инъекций, управление доступом, безопасная обработка пользовательской информации). **Личностные и командные качества** Готовность работать в команде, конструктивно участвовать в обсуждениях, делиться опытом и влиять на технические решения. - Ориентация на пользователя: желание создавать приложения, которые решают реальные задачи, и постоянно улучшать их с учётом обратной связи и бизнес-целей. Будет преимуществом - Опыт наставничества или технического лидерства в команде. - Понимание принципов CI/CD, опыт настройки конвейеров сборки и деплоя. - Знание дополнительных языков или фреймворков (TypeScript, React, Python, Go, Rust) как подтверждение широты кругозора. - Практический опыт низкоуровневой разработки (драйверы, модули ядра, системное программирование). - Опыт работы с криптографическими библиотеками (OpenSSL, libsodium и др.). - Опыт проведения аудита безопасности кода. - Работа в офисе в г. Сочи. - Размер заработной платы будет обсуждаться индивидуально с каждым кандидатом на интервью.