Добавлю к предыдущему коментатору.
Все выше сказанное правильно но "начинать искать работу" ты можешь и сейчас. Тебе в любом случае прийдется пройти с десяток собеседований и стиль тоже будет шанс наработать работая в команде. Мидлом тебя сразу никто не возьмет.
Иван Шумов, Всегда можно считать в одном цикле, прогресс отдавать в другом, с гарантированым временем отдачи. Хотя я не претендую, в PHP ни бумбум, я на ноде делал.
Ну зачем сразу вебсокет, прогресс отлично работает на https://ru.m.wikipedia.org/wiki/Chunked_transfer_e...
Там есть особенности реализации, потому что при сильно большой паузе между чанками соединение отваливается, но вполне реализуемо.
https://wesbos.com/arrow-function-no-no
Пара примеров где они лишние.
Кроме того если дальше твою функцию могут использовать с bind, стрелочная функция поломает всю малину.