1. Работа с кодом и архитектура
- Проектирование архитектуры программных модулей и систем.
- Написание чистого, поддерживаемого кода с использованием современных стандартов языка C++.
- Выбор оптимальных структур данных, алгоритмов и паттернов проектирования для решения конкретных задач.
- Ручное управление памятью (включая работу с «умными» указателями) и распределение ресурсов.
2. Тестирование и отладка
- Написание модульных тестов (Unit-тестов) для проверки работоспособности отдельных компонентов.
- Поиск, локализация и исправление ошибок (дебаг) в собственном и чужом коде.
- Проведение профилирования: устранение утечек памяти, решение проблем многопоточности (гонки данных, deadlock'и).
3. Оптимизация и интеграция
- Анализ узких мест в приложении и его аппаратная оптимизация (работа с памятью, процессором и кэшем).
- Разработка API и интеграция созданных модулей с другими системами и базами данных.
- Работа с библиотеками, сетевыми протоколами (TCP/IP, UDP) и стандартами взаимодействия.