Мы ищем опытного инженера-разработчика для проектирования и реализации терминального сервера на базе Linux, который должен заменить текущую инфраструктуру, построенную на Windows Server 2008.
Сейчас пользователи удалённо подключаются к серверу и работают в индивидуальных терминальных сессиях. Внутри сервера запускаются:
• Windows-приложения;
• веб-браузеры;
• приложения, опубликованные через RemoteApp;
• собственная программная оболочка на C#, заменяющая стандартный рабочий стол Windows.
При подключении пользователь попадает в специализированный интерфейс (без доступа к обычному рабочему столу), выбирает нужный автомобильный каталог и запускает соответствующее приложение.
Цель проекта — разработать аналогичную терминальную платформу на базе Linux, сохранив существующую логику работы, пользовательский интерфейс и возможность одновременной работы множества клиентов.
Основные задачи
1. Проектирование архитектуры
- Анализ текущей инфраструктуры Windows Terminal Server.
- Изучение используемых приложений, способов их запуска и зависимостей.
- Разработка архитектуры многопользовательского терминального сервера на базе Linux.
- Подбор технологий для удалённого подключения, управления сессиями и публикации приложений.
2. Совместимость и запуск приложений
- Исследование возможностей запуска существующих Windows-приложений в Linux.
- Работа с Wine, CrossOver и другими технологиями совместимости.
- Определение стратегии: какие приложения можно запускать нативно, а для каких нужна альтернативная архитектура.
- Обеспечение запуска браузеров и приложений в отдельных пользовательских сессиях.
- Сохранение сценариев запуска, аналогичных RemoteApp.
3. Разработка пользовательской оболочки
- Изучение существующей оболочки на C#.
- Перенос оболочки на Linux либо разработка аналогичного решения.
- Реализация интерфейса выбора автомобильного каталога.
- Настройка автоматического запуска оболочки после подключения пользователя.
- Организация запуска выбранных приложений из оболочки.
- Ограничение доступа пользователя к системному окружению согласно текущей логике работы.
4. Многопользовательская работа
- Обеспечение одновременной работы большого количества пользователей.
- Реализация изоляции пользовательских сессий.
- Управление процессами и ресурсами пользователей.
- Обеспечение стабильной работы приложений при длительных подключениях и переподключениях.
- Продумывание управления пользовательскими профилями, файлами и настройками.
5. Внедрение и оптимизация
- Разработка и развёртывание рабочего прототипа.
- Проведение нагрузочного тестирования.
- Оптимизация потребления оперативной памяти и процессорных ресурсов.
- Обеспечение отказоустойчивости, безопасности и удобства администрирования.
- Подготовка технической документации и инструкций по эксплуатации.
Требования к кандидату
- Сильные знания Linux на уровне системного инженера / разработчика инфраструктурных решений.
- Опыт разработки и настройки многопользовательских Linux-систем.
- Практический опыт построения терминальных серверов, VDI или аналогичных решений.
- Понимание принципов работы RDP, удалённых рабочих столов, публикации отдельных приложений и управления пользовательскими сессиями.
- Практический опыт работы с Wine, CrossOver или другими технологиями запуска Windows-приложений в Linux.
- Уверенные знания C# и .NET.
- Опыт разработки или переноса приложений с Windows на Linux.
- Опыт работы с виртуализацией (KVM/QEMU, Proxmox или аналоги).
- Знание сетевых технологий и принципов разграничения доступа.
- Навыки автоматизации администрирования Linux.
Обязательное требование: активное владение AI-инструментами для разработки (AI-assisted coding)
Необходимо уверенно использовать современные инструменты (Cursor, Claude Code, GitHub Copilot, ChatGPT и другие) для:
- проектирования архитектуры;
- написания и рефакторинга кода;
- анализа существующих приложений;
- поиска и устранения ошибок;
- разработки и тестирования программных компонентов.
Важно не просто уметь пользоваться нейросетями, а эффективно применять их в реальной разработке: понимать полученный код, проверять его корректность и нести ответственность за результат.
Будет преимуществом
- Опыт построения терминальных серверов на Linux.
- Опыт миграции инфраструктуры с Windows Server на Linux.
- Опыт работы с Windows Remote Desktop Services, RemoteApp, Citrix или аналогичными системами.
- Опыт настройки Active Directory, LDAP и централизованной авторизации.
- Опыт разработки графических приложений под Linux.
- Знание Avalonia UI и других кроссплатформенных технологий для C#.
- Опыт оптимизации серверов с большим количеством одновременных пользовательских сессий.
Ожидаемый результат
Нам нужен не просто специалист, который установит Linux и настроит удалённый доступ. Результатом работы должна стать полноценная терминальная платформа, в которой:
- Пользователь может удалённо подключиться к серверу.
- Для каждого пользователя создаётся отдельная рабочая сессия.
- После подключения автоматически запускается наша программная оболочка.
- Пользователь выбирает необходимый автомобильный каталог.
- Запускаются соответствующие приложения и браузеры.
- Несколько пользователей могут одновременно работать независимо друг от друга.
- Система стабильно работает под нагрузкой и не требует постоянного ручного вмешательства администратора.
Работа предполагает самостоятельное техническое проектирование, выбор оптимальных технологий, разработку прототипа и последующее внедрение готового решения.