Jim Collins, a famous speaker, author, and consultant once said: “People are not your most important asset. The right people are”. This statement particularly applies to custom software development: the agencies need the best specialists to build fast, scalable, and reliable solutions that will bring the highest value to their customers.
However, the question arises: how recruiters can find and hire software developers with the greatest skills? What makes rockstar programmers different from ordinary specialists?
In this article, Codica’s Co-Founder and Business Partner Natalya Klymenko shows our best hiring practices that allow us to hire the people who would fit our software development team best. She shares her 12 years’ recruitment and HR management experience and explains what it means to be our perfect colleague.
The 6 steps of our hiring process
Codica's history goes back to 2015. At that time, an enthusiastic team of web application developers gathered in a cozy office at the center of Kharkiv. Since then, we have come a long way from a tiny outsourcing team of committed individuals to a well-functioning company. The staff has grown from five to thirty professionals, and we are not going to stop there.
The important aspect of our company’s development is recruiting young specialists. We encourage gifted but inexperienced people to join our team. Rookies in the field of custom software development are offered internship programs. Thus, we help them grow into competent professionals and loyal employees.
The photo below was taken at the celebration of Codica’s birthday last year. We are proud to have such a committed team of professionals. Each employee is an important part of our success and progress.
It can be a tough call to find a perfect candidate that will match our company and vice versa. That’s why our recruiting process consists of 6 stages.
Step 1. Writing a detailed and accurate job description
At this stage, we summarise responsibilities, qualifications, and requirements for a specific role. Also, we describe the project our future employees will be working on, its challenges and opportunities. Special attention is paid to candidates’ hard and soft skills. We specify them to make sure that an applicant will both perform the job duties successfully and be a great fit for our team.
Step 2. Active search for candidates
Every time we have a job opening, first of all, we turn to our network of contacts. It includes personal details of applicants who had sent us their resumes in the past or had had an interview with us, but for some reason did not get the job offer.
Another way of finding the right specialists is by listing our vacancies on job search websites. Also, we don’t neglect the power of social media. We believe that the more targeted you are the better, so we combine all available channels to quickly fill the positions.
However, there are recruitment strategies that we consider inappropriate. These are aggressive headhunting and draining human resources from other companies.
Step 3. Screening
The screening takes place when we already have relevant resumes. We start considering them thoroughly. If we get a chance to talk with an applicant on the phone, we always use this opportunity. Personal contact allows us to define whether a candidate is interested in the specific software development field and our company or not.
Step 4. Test task (if necessary)
Usually, when we need to fill an entry-level position, we ask to do a test assignment at home. This approach helps us understand how candidates think. In addition, we can look at approaches they use to complete a certain task. However, we may skip this stage if the required assignments can be performed at our office.
Step 5. Interview
Bearing in mind the importance of immediate feedback, we usually hold single-stage interviews.
As a rule, our interview is divided into two parts. The first one is a short conversation with the HR manager. Then we proceed to the technical interview with our experts in custom software development.
We try to give our feedback on the same day or the next one. The main idea is to understand a candidate’s personality and qualification as quickly as possible and not keep them waiting.
Step 6. Job offer
This is the most exciting part of the recruitment process, and it means that our expectations meet with the expectations of our candidates. It is a precious moment when an applicant falls in love with our company and vice versa.
You may also like: Agile at Codica: How We Deliver Great Web Products
Our principles for hiring software developers
You’re looking for people who are
- Smart, and
- Get things done.
That’s it. That’s all you’re looking for.
- Joel Spolsky
What qualities we are looking for
We will not discuss the importance of technical skills - it’s a topic for a separate article. Let’s rather focus on personal qualities crucial for our team.
Quick learning ability
Being a fast learner is a strong suit for good developers. They should be able to grasp the information really quickly to perform well and show high results.
Technologies quickly become outdated. It means that web app developers often have to learn new programming languages, frameworks, libraries and tools. A good web application developer knows how to learn, but the best ones mastered the skill of self-learning.
At the same time, it is not enough to use a specific list of programming languages, libraries, and frameworks. Coders should know what tools are suitable for solving a particular task. Learning means developing both yourself and your company.
Our greatest achievement is a close-knit team of highly skilled developers. They specialize in Ruby, JavaScript, Rails, React, and Vue.js - core technologies for our custom software development company. However, our team’s knowledge is not limited to one programming language or framework.
Further reading: GoodFirms Lists Codica as a Top Software Development Company
Analytical mindset
Analytical skills encompass the ability to collect and process information, solve problems and make the right decisions. This is a paramount quality for a custom software developer.
The best developers analyze a situation and facts thoroughly. This comprehensive approach helps them avoid making hasty decisions and make a proper choice of tools and solutions for a particular case.
Also, a brilliant web app developer can walk a fine line between keeping an eye on a broad picture and staying focused on the smallest details.
A good sense of humor
There exists an opinion that programmers are boring people, that they live in their own world and can speak only about gadgets. Believe us, that is not true. We can say for sure that developers can throw the most vibrant parties, prepare the most amazing gifts, and tell the funniest jokes.
Our developers are not just sitting at their desk all day coding. They communicate with their colleagues, tell an interesting story, make a funny joke or comment. Our guys keep up with the latest technology trends and willingly share them with coworkers over a cup of coffee.
Team player
Brilliant programmers not just master quickly new technologies and approaches. They willingly share their ideas, thoughts, and precious knowledge with the team members who are stuck at some task and need help from more experienced colleagues.
Also, developers are constantly collaborating with different departments and specialists: designers, project managers, marketers. They should have strong communication skills to make this cooperation successful and beneficial for the company.
This is a hardly completed list of traits that make brilliant developers. We can also mention involvement, curiosity, initiative, and commitment. However, we decided to focus on the qualities that are crucial for our company.
We're happy to say that Codica was recently named among top custom software developers, which means that our hiring approach works. Over the years we have managed to gather a great team of highly qualified programmers, who deliver outstanding web products.
What aspects don’t matter to us when we hire software developers
Education
We live in a fast-changing world, any new knowledge becomes outdated in no time. Education hardly keeps up with an evolving and dynamic environment. This is a global challenge and applies in particular to information technology.
In the past, people were getting an education once for all. Today learning is a never-ending process. We have courses, books, articles in technical blogs, video tutorials, and online lectures. All this education content opens up new opportunities, and, after all, it makes our life more exciting.
Besides, many technologies have enthusiastic communities. Their members constantly create guides, manuals, lessons, and other educational materials.
We had a lot of interviews with applicants who had no education at all, or whose education was not industry-specific. The lack of qualification didn’t prevent them from solving their tasks successfully.
People from different backgrounds can become brilliant programmers. For this reason, we value willingness to learn more than the actual degree. As for Codica, the majority of our team has industry-specific education. At the same time, our colleagues without a tech degree show great performance as well.
Previous experience
It goes without saying that experience is important and needed. However, sometimes it seems overrated.
There are many guys who fail to progress beyond juniors. They can switch between teams, projects, or custom software development companies, but their task-solving approach remains the same.
Also, some developers who position themselves as seniors cannot solve the easiest tasks.
At the same time, there were cases when we had hired programmers with little experience. Six months later, they could manage the most complicated projects.
Thing is that the mere experience is useless without constant practice. You need to broaden your horizons, learn, make mistakes and conduct an error analysis.
That’s why problem-solving skills are more important for us than the long work experience.
Passion
At first sight, it seems that obsession with work helps complete tasks better. In reality, emotional involvement often leads to quick burnout and loss of interest. There comes a time in developers’ life when all they want to do is to quit their job and never look back. This is why it is important to have other pastimes apart from work.
Our developers live a full life and have a lot of diverse hobbies that help them find inspiration and show great results in their work.
For example, Eugene, our Ruby on Rails Developer (left), is a fan of mountain climbing.
Final thoughts
It is not an easy task to hire software developers with the greatest skills. There’s no silver bullet that will fit all companies. Sometimes, it takes a lot of time to find the best hiring approaches, and learn to see the true applicants’ potential at first sight.
At Codica we understand that:
- Quality is more important than quantity;
- Developers can show their best qualities and skills only working on real projects;
- Sometimes, even the most gifted specialists can be not successful in a particular company, if they're not fit.
Our colleagues can have different age and work experience, and they can come to the custom software development domain from other industries and fields. The main feature of "our" people is that they should know how to solve problems and have the ability to think ahead.
At Codica, we have been engaged in custom software development for many years. If you have an idea of building a profitable marketplace, scalable SaaS platform or turning your website into a Progressive Web App, we are happy to help you. Let’s get in touch to bring your project into reality.