Каким должен быть бэкенд-веб-разработчик

Эдуард Гурский, Technical Lead в команде Internal Development

Какими знаниями и навыками должен обладать бэкенд-веб-разработчик?

Бэкенд-веб-разработчик – это, по сути, человек, разрабатывающий серверную логику и осознающий, в каком контексте она будет исполняться – в контексте веб-приложений. Если бэкенд-веб-приложения реализуются на языке Java, а в большинстве случаев это так, то, по сути, к такому специалисту применимы все те же требования по знаниям и навыкам, что и к обычному Java-разработчику: знание языка, понимание работы и устройства основных библиотечных компонент Java SDK и т.д. Однако еще добавляются опыт работы с различными веб-фреймворками (упрощающими реализацию dependency injection, mvc и т.д.), умение оценивать и улучшать производительность приложения, его масштабируемость. Необходимо учитывать и понимать, насколько быстро пользователь приложения получит результат выполнения серверного кода, а также насколько безопасно и рационально ту или иную серверную функциональность делать доступной через браузер пользователя.

Почти любое веб-приложение использует какое-то хранилище данных. Поэтому человек, занимающийся разработкой серверной логики, должен иметь навыки работы с базами данных, а также опыт использования механизмов ORM.

Часто бэкенд-веб-приложение требует интеграции со сторонними сервисами или экспорт своей функциональности в виде внешнего API. Разработчик должен понимать, как реализуются такие задачи, какие протоколы и механизмы используются для этого.

Несмотря на то что такой человек в основном занимается разработкой серверной логики приложения, возникает необходимость отладки или прототипирования с использованием клиентской части приложения. Отсюда вытекает необходимость понимания работы стека протоколов TCP/IP, HTTP, принципов взаимодействия браузера с веб-приложением, базовые знания о верстке, CSS-стилях, JavaScript-возможностях.

Каков инструментарий бэкенд-веб-разработчика?

Обычно это IDE для разработки. Также временами требуется использовать профилировщик для решения задач производительности, чрезмерного потребления ресурсов и др. В нашей команде мы используем IntelliJ IDEA.

Каковы требования компании к уровню образования потенциальных сотрудников?

Мы не предъявляем никаких формальных требований к уровню образования кандидатов. Важнее опыт, понимание и интеллект, ну и, конечно, мотивация человека.

Какие требования предъявляются к опыту работы?

Любой опыт разработки production веб-приложений, конечно, является плюсом. Знания и навыки, описанные выше, не могут присутствовать у специалиста при отсутствии соответствующего опыта. На собеседованиях мы обычно интересуемся деталями участия в различных проектах, указанных в резюме, чтобы оценить опыт, который мог приобрести кандидат, реализуя такие задачи. Специалист, пробовавший различные подходы и технологии для решения схожих задач при разработке веб-приложений, умеющий анализировать плюсы и минусы каждого подхода, является весьма интересным кандидатом.

Есть ли особые требования, которые обусловлены спецификой деятельности компании?

Приветствуется опыт разработки приложений с использованием продуктов JetBrains. Мы все в компании стараемся пользоваться своими продуктами, потому что они удобные и потому что мы хотим сделать их еще удобнее!

Также в последнее время мы практикуем разработку веб-приложений на языке Kotlin. Это дает ряд существенных преимуществ, а также делает процесс написания кода на нем более приятным занятием. Приветствуется желание кандидата изучать новые языки и новые подходы реализации веб-приложений.

Полная версия интервью опубликована на портале Системный администратор.