Проект: Промышленность — разработка высокопроизводительного расчётного ядра для оптимизации железнодорожных процессов.
Требования:
- Уверенное знание C# / .NET
- Хорошее понимание структур данных и алгоритмов
- Понимание асимптотической сложности и умение оценивать стоимость алгоритмических решений
- Понимание работы памяти в .NET: GC, аллокации, value/reference types
- Уверенное владение многопоточностью и синхронизацией
- Опыт профилирования и оптимизации CPU/memory
- Умение разбираться в сложном существующем коде и предметной области
- Способность самостоятельно проектировать решение, а не только реализовывать готовое ТЗ
Будет плюсом:
- Графовые алгоритмы: Dijkstra, A*, поиск путей
- Эвристический поиск, Beam Search, Best-First Search, Branch & Bound
- Задачи scheduling / routing / optimization / simulation
- Span<T>, stackalloc, unsafe, unmanaged memory
- Object/memory pooling, понимание cache locality и false sharing
- SIMD / hardware intrinsics
- Опыт CPU-bound многопоточных вычислений
- C/C++ на уровне чтения и анализа существующего кода
Задачи:
- Разработка и развитие высокопроизводительного расчётного ядра для оптимизации движения локомотивов и составов по графу путей
- Планирование ресурсов, разрешение конфликтов и поиск оптимальных вариантов
- Развитие модели состояния и алгоритмов solver-а, реализация генерации и отсечения вариантов
- Работа с графом железнодорожных путей, оптимизация использования памяти и производительности расчёта
- Распараллеливание поиска и перенос необходимой бизнес-логики из существующего C++ решения
Условия: удалённая работа, фулл тайм.