Full-stack development requires a broad skillset. The best candidates will demonstrate substantial experience within each of the several areas outlined below.
There are various differences between a web developer and a full-stack developer. A web developer tends to be specialized in either front-end or back-end development. A full-stack engineer instead will be proficient across the board, including any associated areas such as database design/management and DevOps.
The key to exceptional front-end engineering is a thorough understanding of user experience, and in turn, user interface implementation. The latter requires a comprehensive understanding of various front-end technologies, the core being HTML, CSS, and JavaScript. It is also beneficial for the engineer to be familiar with various frameworks and libraries, but the specific ones are down to personal preference. It’s a bonus to have an appreciation/understanding of product strategy.
Back-end engineering does not require an understanding of user experience, per se. However, it does demand an extensive knowledge of API principles. This does not necessarily have to be REST, but in most cases, this is the preferred paradigm. In addition to this, the candidate must excel in at least one back-end technology as well as database design and implementation. It is also important that the candidate holds more than just a basic understanding of managing relevant infrastructure.
Skills
- At least three years’ experience with:
- Writing HTML, CSS, and JavaScript. Being up on latest practices is a must, e.g., HTML5, CSS3, and ECMAScript 6 (minimum)
- A relevant back-end programming language {{ e.g., PHP, Python, Ruby or JavaScript }}
- Database design and management, including being up on the latest practices and associated versions
- Server management and deployment for the relevant environment
- Familiarity with a relevant and globally supported framework—both front-end and back-end, if necessary—{{ e.g., React, Vue, Laravel or Flask }}
- Ideally, familiarity with CSS preprocessors, bundlers, and associated languages/syntaxes/libraries {{ e.g., Sass, Less, and webpack }}
- Thorough understanding of user experience and possibly even product strategy
- Experience implementing testing platforms and unit tests
- Proficiency with Git {{ or another version control system as required }}
- Appreciation for clean and well documented code
- {{ Make sure to mention any other frameworks, libraries, or other technologies relevant to your project }}
- {{ List any education level or certification you may require }}