Максим, ну тут уже чисто индивидуально. Или распыляться на все сразу (что сейчас именуется full-stack) ради сиюминутной выгоды, или же развиваться в одном конкретном направлении, ради хороших проектов.
Максим, на апворке достаточно нормальной работы) Только, если у фрилансера на профиле мало часов или плохие отзывы, то логично, что ему она не достанется)
А когда у тебя на профиле 7000-10000 часов, то ситуация уже совсем другая
это одна из причин почему ищут фуллстеков. Фуллстек в состоянии взять фичу и сделать её полностью, а не "накидать кнопок и ждать бекенд" или "сделать апишку и отдать фронту".
Такое работает для небольших и средних проектов.
На больших проектах почти всегда разработчики поделены на команды.
Ждать тоже никого не нужно, на каждый спринт есть детальная спека для всех участников.
Front-end разработчик просто открывает, к примеру тот же Swagger, смотрит эндпоинты и пилит свою часть работы, просто мокая API. Потом, когда все готово и сливают на stage, просто убираются моки и все, можно тестировать.
ThunderCat, не совсем. bytenode генерирует байткод для V8, выполняя специфические преобразования. Самой логики приложения уже не видно, но все еще остаются видны строковые литералы. Еще особенность такого байткода в том, что он не переносится между разными версиями ноды и между разными платформами.
Также приложение будет крашиться даже в случае, если ноду запустить с разными флагами для V8 (не со всеми, но с большинством).
Ну и еще один плюс - такой код становится невозможно отладить при помощи встроенного отладчика.