Должностная инструкция: Разработчик категории 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