What Makes a Good Full-stack Developer
At the highest level, a true full-stack developer is someone who can build and deploy the entirety of an application. This person should be able to work on the front-end, backend, databases, systems, cloud and also be able to test their work. There are those who build an entire career programming in one language, usually small components of a bigger pie at large companies like Facebook, Google and Yahoo. Full-stack developers rather, are language agnostic. They’re not picky about working with Java, Rails, or Go, their primary focus is on solving problems and building robust solutions.
Language agnostic type programmers expose themselves to new technologies throughout their careers, so they can code with different points of view in mind. Why is this good for an early-stage startup you may ask? A single-minded developer will only apply technologies they are familiar with to your projects. Just because something worked for someone, doesn’t mean it will work for you. A good full-stack developer can take a problem, and based on experience, use the right technologies that are optimal to serving the needs of the end user. The correct technical decisions early on will save you thousands of dollars and hopefully lead to more profits in the long term.
If you’re growing a startup, you’re going to want one (or 10) of these folks on your team. If you’re on a tight budget, hire a senior full-stack developer first, and then build around him with contractors or junior specialists in areas you need help with. Below you’ll find a checklist of qualifications to look for in your next full-stack dev hire:
- A Computer science degree, or Graduated from a reputable coding bootcamp
- Fundamental programming and design principles
- Strong with multiple backend languages (i.e Rails, Java, Python), and at least 1 modern tech. (i.e Go, Elixir, Scala, Node)
- A keen eye for design — UI/UX
- Understands data and how to store it (i.e MySQL, mongoDB), also familiar with Big Data (i.e Hadoop, Spark, Cassandra)
- Has deployed to AWS in the past and understands how to automate things with AWS, Jenkins, Docker
- Familiar with producing responsive work that is applicable across multiple mobile platforms. Whether they’ve built native apps with Swift, or hybrid apps with ionic or react native.
- Comfortable frequently testing their work, using tools like selenium
It’s impossible to be an expert in everything, but it’s important to be knowledgeable of everything. A good full-stack developer should be able to have a grasp of everything mentioned above. As you source and interview developers, make sure to dive deep into all the topics mentioned, and make sure to screen for their history of learning new languages. A good place to start is reviewing their code on their personal websites or Github accounts. If they have nothing to show, there’s your first red flag. Good luck and happy hunting!