There’s no big difference whether you are looking for a full-stack developer or a front-end expert that has some designing skills or a Node.js developer for the front-end part. You will find a lot of useful information in this article together with practical tips.
Define your goals
I think this is too obvious to write about, but I will do this. Think about what you want to come up with at the end. It will be the final destination for the new project. You probably have some ideas for the future web app, make them specific for developers and for the users. You shouldn’t define all the details, but describing the app and its components with as many details as you can think of will make the life of the coders easier.And you will spend less time trying to describe your views and expectations to other people.
Let’s take one typical example. You may say that you want to see a blue bar. Or you can add more details saying that you want a blue-colored menu bar on the right top side of the window that drops down after you tap on the icon. If you consider something to be too obvious to explain, it doesn’t mean that another person will read your thoughts and guess everything the right way.
A front-end developer
Do you have a back-end programmer? If you have one person in this position, there’s no strong need for one person to be responsible for this part of the project. A front-end developer can cope with a simple contact form for the website. The major goal of this person will be to make everything look and work the right way. It’ essential to be aware of JQuery library for a front-end developer and it’s the minimal level of knowledge.
If you need a more complicated project where you will have an interactive interface, you will need a more experienced developer. You will probably need to use one framework for the project, but it’s not so important to find a person with a solid experience in using this very framework. The developer should be aware what kind of problems this framework can solve and have a basic understanding of the same thing regarding other frameworks. If some candidates are good at Angular, they will not have any problems with taking something from Ember or React.
A back-end developer
Here we have the same case. If you have someone who’s responsible for the front-end part of the project, you will need a Node.js developer for the back-end part. Get ready not to see some obvious achievements of a candidate as most of the back-end work is no visible. It’s good if a person knows other languages that are used for the server-side part of the project. And you are lucky to find someone with experience in Node.js.
The responsibility of a back-end developer comprises everything that happens on the server. A developer should have knowledge about the databases such as SQL or MongoDB. These two are the most common ones. The databases will unite information with the front part of the project. You can expect this person to write APIs, pick up the right database for the project. But you shouldn’t expect anything related to the way a new project will look like.
A full-stack developer
This position is the most valuable out of the three variants. It’s good when there’s someone who goes with the project from the very beginning to the finish. If you have some specific tasks regarding database architecture or some design issues, it’s better to take several experts for each part of the process separately.
The key to success: communication!
One of the things that can spoil the workflow is not an inexperienced developer, but problems with communication. It’s a great myth that an average developer can listen to your story about how the project should behave or look like, take this information and develop a perfect app, test it and attract billions of people to start using it right away. There are no developers that can do it. You give a specific task and you get exactly what you have asked to do. And nothing more.
The reason for this is that transferring all your ideas to someone else’s mind should be via communication and not via your expectation that someone else will get exactly as you see it. Your task will be to use all possible channels of communication to predict all the details.
And one more thing to consider here is finding the right candidate for the position that can perceive your ideas the right way and translate them into real images of the future project. And this should be done quickly enough, so the project deadlines are all met.
There are a lot of tests to check the skills of the developer, but I rarely see the tests for communication skills. One of the ways to check them is asking to repeat the instructions. Some may think this is a childish test, but I should say it’s working great.
Another approach to testing skills is asking specific questions like how an object model acts out or any other thing that can show understanding of the topic. It’s not enough to repeat the words from a guide or a book, it’s good to be able to talk about some things or ideas.
There’s one thing that may stubborn you like a lack of experience in programming. In this case, prepare the questions in advance or ask about what you have ever heard about and you don’t really get the idea of. If you have no ideas at all, ask about the trends in programming. If you see that you easily understand what another person is talking about, you won’t have problems with communication when working on the project.
Evaluating technical skills
There’s no need to expect a link to personal websites or huge portfolios. You will probably get a few links that will give you an understanding what kind of projects this person has coped with before. You will evaluate the projects and define whether there’s sense to spend time on a meeting with this very person.
If you have a chance to take a look at a demo version of the product or even at a live one, that will be just perfect. Click or tap everywhere you can and analyze your overall impression. And ask what kind of features this very candidate has implemented personally.
If a project was developed with the help of the framework that you want to use for your project, you can ask whether a developer started from scratch or used someone else’s code. If the candidates have released the products or some specific features that are important for your future project, they will probably implement the same for yours. Keep an eye on how many details a person can talk about.
It’s a place where you should be if your project is something more than a simple website. Take a look at the repositories where the candidates have posted their projects. If it’s your first time on Github, you feel it’s too complicated to understand the file structure. Take a look at the latest things that they have posted and send a request at the bottom of the profile page.
If you see solid contributions, you are lucky to have these people in your team. You can discuss the projects during a personal meeting. If a candidate doesn’t have an account on Github, it’s good to ask about the reason for this. A candidate can have accounts on other sites like bitbucket or similar ones.
What really matters
If a candidate for a new position is good at a language and has some general experience in the past, don’t rush to reject. If you see that this very person has strong communication skills, understands the problems you want to solve and knows what tools and features can solve it, you can give a try. Having experience in using other languages or frameworks will let the candidate cope with your tasks as well. Good luck!
Why do you need software engineering company instead of in-house developers? Because it gives you a chance to implement your best ideas with our expertise and move your business to the higher level. Working with outsourcing software development company enables you to do what you are best at and make sure that outsourced project will be delivered as smooth as possible. Codemotion guarantees 101% result, achieved by close collaboration, “same boat” approach and our Ninja style of performance. If you are looking for the in-time launch of your project, just let us know.