Поделюсь опытом с Yota. Не пойму, что это было.
Собеседовался на вакансию программист-исследователь в отдел быстрого прототипирования.
Само собеседование получилось несколько сокращенным, у интервьюера были другие дела, в конце был такой вопрос:
Предположим нужен такой TCP/IP прокси-сервер, который будет перенаправлять соединение на другой сервер/порт.
Как бы вы его делали? Привел банальный вариант с созданием потоков для каждого конекта.
А если требуется большая производительность в десятки тысяч одновременных конектов?
Предложил вариант с неблокиующим опросом сокетов по принципу клеточного автомата.
В итоге получил это в качестве тестового задания.
На вопросы о том, по каким критериям будет оцениваться выполнение, ответили все на ваше усмотрение.
Исходя из того, что вакансия на быстрое прототипирование, а сама задача довольно объемная, и вылизывание кода может занять пару недель,
сделал 2 варианта:
1-й за 8ч, полная каша, лишь бы работало,
proxy-for-yota1.cpp
во 2-м произвел небольшую архитектурную оптимизацию еще за столько же.
proxy-for-yota2.zip
В итоге, после более чем недельного молчания получаю отписку:
В настоящий момент мы не можем предложить Вам вакансию
Инженера по тестированию, открытую в нашей компании.