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