Должностная инструкция: Разработчик категории I#
1. Общие положения#
Должность: Разработчик категории I Грейд: 5 (Middle II) Подчиненность: Руководитель отдела разработки / Тимлид команды
2. Квалификационные требования#
Источник истины: Полная матрица компетенций с маркерами критичности (
[Критичный],[Nice-to-have]) находится в competency-developers.md. Данный раздел содержит упрощённый список требований для должностной инструкции.
Образование: Высшее (IT-направления)
Опыт работы: Коммерческая разработка на C# от 3-4 лет
Технические навыки:
- Экспертное знание C#, глубокое понимание .NET (GC, память, JIT)
- Многопоточность и параллелизм (PLINQ, Parallel, ConcurrentCollections, race conditions)
- Продвинутое асинхронное программирование (ValueTask, IAsyncEnumerable, cancellation)
- Оптимизация производительности (профилирование, memory analysis, bottlenecks)
- Проектирование модулей с балансом расширяемости/производительности
- Уверенная работа с C++ для nanoCAD интеграции (P/Invoke, marshaling)
- [Nice-to-have] Глубокое понимание инженерных сетей (2-3 раздела)
- Знание различных подходов и их trade-offs
- TDD, интеграционные тесты, покрытие критичных путей
3. Должностные обязанности#
3.1. Разработка сложных высокопроизводительных программных модулей: проектирование и реализация критичных компонентов с применением параллельных алгоритмов обработки больших объемов данных, оптимизация на уровне памяти, интеграция с платформой проектирования через C++.
3.2. Проектирование архитектуры программных модулей и подсистем с балансом производительности, расширяемости и поддерживаемости, принятие архитектурных решений с долгосрочными последствиями.
3.3. Оптимизация производительности программного обеспечения: глубокая оптимизация критичных компонентов, профилирование выделения памяти, настройка работы сборщика мусора, решение проблем производительности на уровне продукта.
3.4. Обеспечение качества программного кода: проектирование архитектуры тестирования модулей, применение практик разработки через тестирование, написание интеграционных тестов, покрытие критичных путей выполнения.
3.5. Техническое лидерство: влияние на технические решения команды, активное наставничество специалистов категории II-III и младших разработчиков, проведение экспертизы программного кода, ведение проектов от идеи до релиза, проведение технических докладов и распространение знаний.
3.6. Выполнение иных поручений непосредственного руководителя в рамках своей компетенции.
3.6. Типовые задачи#
- Проектирование и реализация сложных модулей (1-2 месяца)
- Пример: Высокопроизводительный модуль расчета инженерных систем
- Оптимизация критичных участков (2-4 недели)
- Пример: Снижение потребления памяти на 50%, ускорение в 3 раза через оптимизацию алгоритмов и memory pooling
- Архитектурные улучшения (1-2 месяца)
- Пример: Рефакторинг подсистемы с улучшением архитектуры и сохранением совместимости
- Интеграция сложных компонентов (2-4 недели)
- Пример: Интеграция с внешней системой через C++ API
- Техлидство проектов (2-4 месяца)
- Пример: Техлид проекта по добавлению major фичи
3.7. Уровень самостоятельности#
- Полная автономность во всех задачах
- Самостоятельно определяет подход
- Ownership за целые подсистемы
- Проактивно улучшает продукт и процессы
4. Ответственность#
Сотрудник несет ответственность за:
- Качество и производительность критичных модулей
- Архитектурные решения подсистем
- Покрытие кода тестами (85%+ для критичного кода)
- Техническое здоровье своих подсистем
- Influence на технические стандарты команды
- Развитие Middle I и Junior разработчиков
- Успех проектов под техлидством
5. Критерии оценки#
- Технические навыки: Экспертиза в C#/.NET, глубокая оптимизация, архитектура сложных систем
- Автономность: Полная автономность, ownership за подсистемы, проактивные улучшения
- Влияние: Сильное влияние на команду, менторинг, формирование стандартов, техлидство
- Бизнес-impact: Реализация важных фич с измеримым эффектом, понимание бизнес-целей
Оценка: Руководителем раз в 6 месяцев.
6. Карьерный рост#
Следующий шаг: Старший разработчик категории III (грейд 6, Senior I) через 1-2 года
Требования:
- Экспертное владение C#, понимание CLR, memory model
- Глубокое понимание многопоточности (lock-free алгоритмы)
- Проектирование высокопроизводительных систем (cache-friendly code)
- Экспертное знание инженерных сетей (3+ раздела)
- Ownership за целые подсистемы
- Сильное влияние на команду
Версия: 1.0 Дата: 2025-01-24