How to Hire the Right Developer
Finding a good developer can be really hard, and finding the right developer is close to impossible unless you know what you are looking for. The purpose of this article is to help you find a developer that meets your needs.
I will distribute this article in 2 parts:
- First I will go over what differentiates one developer from the other and explain what the different types are.
- Then I will give you a list of questions that you have to ask yourself and the developer in order to identify what type of developer is the person you are interviewing.
First I would like you to understand that developing is easy, anyone can learn it. What differentiates good developers from bad developers is the ability to learn and learn fast. Usually that drive to learn comes from passion. All of the great developer feel like superman when coding. They feel like whenever they talk about code they are talking about the solution to all the world problems. Passion is the big difference between a good developer and a bad developer.
A few things before we start, if you find a developer that doesn’t like learning don’t even interview him, learning is the description of this job. Usually good developers like working with new languages and they have probably worked with a variety of programing languages.
Please keep in mind that coding exams usually don’t root out bad developers because coding questions usually ask specific questions and current ability. Good developers can learn fast and what they knew when you hired them won’t be even close to what they know two months later.
Really important: NEVER, and when is say never I mean it, avoid hiring a developer by the language they don’t know. Good developers can pickup any language very easily. This is so important that I will repeat it in italic.
Never hire a developer by the language they know. Good developers can pickup any language very easily.
Types of Developers
Type A Developer
A type A developer is the kind of developer who is a leader. This person is generally not the best coder out there but he has the ability to become one of the best. What differentiates him from all the others is both his ability to learn, as well as his ambition. He probably wants to be an entrepreneur, CEO, or CTO. This type of developer probably taught himself to code and has experience building entire systems by himself. He is easily identifiable if he has leadership skills. They are rare because they have a growth personality, and because they want to grow their skills and manage their own team. They are constantly looking to work hard and advance their careers.
You want to hire a type A developer if you are looking for CTO or a person take your product from idea to reality. This person wont feel at ease at a job where he is not independent, he has to feel in charge of the product. The reason you want to hire a developer of type A is because you want someone who has the patience to work both with designers and developers. Usually this person should be your first hire. He has the ability to lead and take action to make your product a reality.
WARNING: Type A developers get bored really quickly they are constantly looking for the next big thing, and they thrive in environments where they are constantly engaged to build harder and bigger things. The biggest look out for this developer is that if you don’t give him founding shares or at a minimum an extremely competitive salary then he is probably already looking for something else.
Type B Developers
Type B developers are really good developers, they probably have or will have skills to be the best. They have been coding since a very young age, and they have a secret but noticeable passion for code. They thrive in challenging environments, but their aspiration is to become a developer and do what they love as long as they can. What differentiates him from all the others is his “Nerdiness”. He is what you expect a true developer to look like. This person is probably the guy who has weird operating systems and truly knows what he is doing. When you look at his computers he has about 20 windows open at a time. For this person his job is coding and his hobby is coding. This developer is a 10x developer.
The reason you want to hire him is if you are looking for talent, you are looking to improve your platform. You want to take your existing platform to a whole new level. This person has the potential to be a leader, but gets constantly annoyed with management. Make sure that this person is not your first hire, because he has no skills with UI. He loves code and that is what he does. If you find a developer of this type don’t let him go because he has real talent and he is probably an amazing coder.
WARNING: Watch out by fakers or wannabes, there are some people who pretend to know what they are doing and they look like type B.
Type C Developers
This developer is the person who learned how to code in college, he is a good developer but there is nothing special about him. He knows how to code because he learned in school. They sometimes can be pretty good but they will probably never grow to be a great developer. This developer is usually the person who is a software developer and will become a product manager eventually because it is the next logical step. This is the type of developer who specializes in one single type of development. He has never a build a project from scratch and he only codes on the job.
You want to hire this developer if you want to fill a position, or if you are looking to grow your team. This person can be a great addition because he is very social, but keep in mind that his goal is to become a product manager or go a different route.
WARNING: There is no warning here. If you find one, good, if not, that is fine too.
Type D Developers:
This type of developer is a pain in the neck. He only learned how to code to pay the bills. He became a software developer because it is a secure and high paying job and he is just doing it because of what the market has to offer. They are poor coders, who don’t like learning and they stay with the same programing language they learned in school or their first job (usually PHP).
By all means if you find a developer that is a type D, avoid him at all costs. They have a fixed mindset, they don’t like to grow and learn. They usually have a side job or a hobby that takes half of their time and they are never concentrated at work. Any good developer understands and knows that coding is his life.
Questions you should ask any developer before hiring him
- The first thing you have to check it is if the developer tweets or blogs, any type A or B will usually have a blog or he is constantly tweeting about code, new trends in development, or even jokes that only developers understand. This shows you he has passion.
- The second thing you have to check it is the person’s Github. Type B developers and sometimes type A have participated in open source projects. Even better if the person has created their own open source project and has a lot of stars. This is a good indicator he is a type B developer.
- Check their LinkedIn. Type A developers usually have their LinkedIn profile very updated in case someone is looking for a developer.
- If questions 1 and 3 are true that means that that person has a tendency to be type A.
- Ask him about his weaknesses and strengths. If he has a good answer he is probably a type A developer.
- Ask the developer is he has ever built a project by himself from start to finish. Did he do the database schema by himself? (You are looking for a yes). Did he build the front end (Another Yes), did he build the back end (It has to be Yes). If this answers are all yes then you are looking at a type A or B.
- Where and when did he learn how to code? If he learned before college or at a young age he is definitely type A or B. If his answer is at college you are probably looking at a type C or B.
- Next you have to find out if the person likes learning. And don’t ask him, do you like learning? Because most people will say yes. If you feel he is not a learning advocate you are looking at type D.
- Asking what his hobbies are. Good developers have hobbies related to software development. Example (Machine learning, neural networks, computer imaging, etc).
- Why did he choose this career? Check if he started coding just to pay his bills. (Type D)
- How many languages has he worked with, good developers have worked with a variety of languages (A, B, C).
- Is he a leader? (Type A)
- When and why was the last time he learned a new language. The answer has to be within 2 years. Good Developers stay up to date.
- English, whatever country you are hiring the developer from he has to know English. If he doesn’t know English don’t even bother. Most documentation is written in English, so if you find a developer that doesn’t know english don’t even bother.