Проект: Промышленность — разработка высокопроизводительного расчётного ядра для оптимизации железнодорожных процессов.

Требования:

  • Уверенное знание 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++ решения

Условия: удалённая работа, фулл тайм.