Full stack developer

Full stack developer — это специалист «широкого профиля». Может разработать и браузерную часть (frontend), и серверную (бэкенд), и связать это все с базой данных. Такой разработчик разбирается во всех технологиях, нужных для проекта. Это требует много времени и опыта, так что full stack программистов относительно сложно найти. 


Заказать консультацию >

Такие разработчики незаменимы в стартапах, например, чтобы быстро создать и поддерживать MVP. Хотя их зарплата обычно достаточно высока, присутствие в штате грамотного фулстек-программиста снижает стоимость проекта в целом. Он может быстро разработать прототип, не тратит много времени на коммуникации внутри команды и может помогать остальным разработчикам. 


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


Обязанности Full Stack разработчиков

Обязанности full stack разработчика в значительной мере зависят и от его опыта, и от проекта, на котором он работает. Основные обязанности обычно выглядят так:

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

 

В стартапах обязанности можно описать кратко как «сделать все, что касается разработки». Это включает задачи как фронтэнд-, так и бекэнд-разработчика. 

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

 

Full Stack разработчики - основные скиллы

Перечень скиллов, необходимых Full stack разработчику, впечатляет:

  • Браузерная часть: язык JavaScript (ECMAScript 6), библиотека jQuery, фреймворки Angular, Vue, React;
  • Серверная часть: как минимум один «серверный» язык программирования, например, PHP, Ruby, Java или Python, платформы ASP.NET и Node.js. Фреймворки, например, Rails (на Ruby), Django (Python), Laravel (PHP); 
  • Базы данных: SQL, MongoDB и другие;
  • Системы контроля версий (из популярных  —  Git, SCCS, RCS, Mercurial, Bitbucket);
  • Best practices в области безопасности.

 

Есть определенные устоявшиеся связки технологий, так называемые стеки. Например, сертификация Microsoft Full Stack включает C#, SQL, HTML, CSS, JS, Patterns и AngularJS (дополнительно).

 

Другие примеры стеков используемых технологий:

  • LEMP: JavaScript - Linux - Nginx - MySQL - PHP
  • Django: JavaScript - Python - Django - MySQL
  • Ruby on Rails: JavaScript - Ruby - SQLite - Rails
  • MEAN: JavaScript - MongoDB - Express - AngularJS - Node.js

 

Плюсом будет, если full stack разработчик успевает следить за всеми важными тенденциями. Но при таком широком круге профессиональных интересов это весьма непросто.

Вопросы о рекрутинге Full Stack разработчиков

Мы собрали ответы на самые распространенные вопросы компаний в поиске фулстек-разработчиков. Если у вас остались вопросы, опытные рекрутеры INDIGO Tech Recruiters с радостью ответят на них.

1. Как найти хорошего full stack developer?

Хороший full stack разработчик всегда загружен. Найти его можно через LinkedIn или другие соцсети, никак не на сайтах вакансий. Из-за того, что на таких специалистов большой спрос, они обычно не ищут работу. Главный вопрос — как убедить подходящего кандидата вообще общаться с рекрутером, а тем более, сменить компанию. Один из вариантов — заинтересовать проектом и возможностью делегировать рутинные задачи (то есть не делать вcе самому, а передать часть работы frontend или backend разработчику).
Хотя Full stack developer может разработать архитектуру, фронт- и бэкенд-части приложения, он не всемогущ. Понадобятся как минимум еще дизайнер и QA. В принципе, full stack developer может справиться с тестированием сам, но тратить его время на это не стоит. Для создания MVP, в большинстве случаев, вышеупомянутой команды из трех специалистов будет достаточно. Но команда, в которой есть как full stack разработчик, так и специалисты в отдельных областях программирования, эффективнее. Особенно на крупных проектах.
Как правило, познания и опыт у full stack разработчика в каждой отдельно взятой области не так глубоки, как у узких специалистов. Но обычно этого достаточно для основной задачи — сформировать видение общей картины и спроектировать приложение. К тому же, все актуальнее становится модель Т-shaped разработчика, иными словами, профессионала с Т-образной экспертизой. Это специалист, который имеет глубокие познания в одной области, но разбирается во многих.
Full stack разработчик знает, как минимум, JavaScript и хотя бы один «серверный» язык программирования (или платформу Node.js), а также умеет работать с базами данных.