Должностная инструкция: Разработчик категории II#
1. Общие положения#
Должность: Разработчик категории II Грейд: 4-5 (Middle I-II) Подчиненность: Руководитель отдела разработки / Тимлид команды
2. Квалификационные требования#
Источник истины: Полная матрица компетенций с маркерами критичности (
[Критичный],[Nice-to-have]) находится в competency-developers.md. Данный раздел содержит упрощённый список требований для должностной инструкции.
Образование: Высшее (IT-направления)
Опыт работы: Коммерческая разработка на C# от 2-3 лет
Технические навыки:
- Глубокое знание C#, понимание .NET (GC basics, память)
- Многопоточность и параллелизм (PLINQ, Parallel, ConcurrentCollections)
- Продвинутое асинхронное программирование (ValueTask, IAsyncEnumerable)
- Оптимизация производительности (профилирование, memory analysis)
- Проектирование модулей с учетом расширяемости
- Работа с C++ для nanoCAD интеграции (базово)
- Понимание инженерных сетей (2 раздела)
- Знание различных подходов и их компромиссов
- TDD, моки, интеграционные тесты
3. Должностные обязанности#
3.1. Разработка сложных программных модулей с учетом требований расширяемости и производительности, реализация параллельной обработки данных, интеграция с платформой проектирования.
3.2. Проектирование архитектуры программных модулей с балансом расширяемости, производительности и поддерживаемости, применение продвинутых архитектурных паттернов, выбор оптимальных технических решений.
3.3. Оптимизация производительности программного обеспечения: профилирование кода, анализ потребления памяти, поиск и устранение узких мест, оптимизация алгоритмов и структур данных.
3.4. Обеспечение качества программного кода: применение практик разработки через тестирование, написание интеграционных тестов, покрытие тестами критичных путей выполнения и граничных случаев.
3.5. Наставничество младших специалистов, проведение экспертизы программного кода, участие в проектировании функциональности, техническое лидерство проектов.
3.6. Выполнение иных поручений непосредственного руководителя в рамках своей компетенции.
3.6. Типовые задачи#
- Разработка высокопроизводительных модулей (2-4 недели)
- Пример: Параллельная обработка больших объемов данных с оптимизацией памяти
- Оптимизация производительности (1-2 недели)
- Пример: Снижение потребления памяти на 40% через оптимизацию структур данных
- Интеграция с C++ (1-2 недели)
- Пример: P/Invoke обертка над нативным API с marshaling
- Архитектурные улучшения (2-3 недели)
- Пример: Рефакторинг модуля с сохранением обратной совместимости
- Техлидство проектов (1-2 месяца)
- Пример: Ведение проекта по добавлению новой фичи от дизайна до релиза
3.7. Уровень самостоятельности#
- Полная самостоятельность во всех задачах своей области
- Предлагает варианты решений для сложных задач
- Проактивно выявляет и решает проблемы
- Задачи до 1-2 месяцев
4. Ответственность#
Сотрудник несет ответственность за:
- Качество сложного кода
- Производительность разработанных компонентов
- Покрытие кода тестами (80%+ для критичной логики)
- Архитектурные решения в рамках модулей
- Ownership за фичи и модули
- Качество менторинга младших
5. Критерии оценки#
- Технические навыки: Экспертное знание C#, понимание .NET, многопоточность, оптимизация
- Автономность: Полная самостоятельность, проактивность, инициатива
- Влияние: Активный менторинг, влияние на технические решения, quality gate для команды
- Бизнес-impact: Реализация важных фич с измеримым эффектом, участие в планировании
Оценка: Руководителем раз в 3-6 месяцев.
6. Карьерный рост#
Следующий шаг: Разработчик категории I (грейд 5, Middle II) через 6-12 месяцев
Требования:
- Экспертное знание C#, глубокое понимание .NET (GC, JIT)
- Уверенная работа с C++
- Глубокое понимание инженерных сетей (2-3 раздела)
- Сильное влияние на команду через менторство и техлидство
Версия: 1.0 Дата: 2025-01-24