Where and how to find the best developers in 2020?
We think you will agree with us if we say that becoming the top company in your industry might be difficult without the right people on your side.
Well, it turns out that having the right team members can easily turn your project into a success and this is why in this article we are going to explain to you why you should deliberate on getting yourself an experienced programmer.
If you are not a tech-savvy individual who wants to jump on board with app development for your business, DevsData has an article about app development for startups that can help you get started on your venture.
That does not mean that you cannot identify the traits of a good programmer yourself. We lined up a list of qualities you should search for when reviewing your candidates and looking for programmers.
However, before we move on to the above-mentioned list, let us give you a couple of tips on where actually you can look for talented engineers.
A lot of talented programmers prefer to work remotely or to work as freelance programmers. According to research performed by the World Bank in 2020, highly-skilled professionals and freelance programmers do not tend to be tied to a particular location. Developers are becoming very mobile, prefer to telecommute and have more flexible full-time or part-time working hours (instead of standard 9 to 5 in the office). So, there is a growing number of highly skilled developers available outside of the country where your company is located.
Thus, in order to find this talent, you need to check the best sites and online platforms, or job boards for remote work. There are multiple best sites where you can post a job ad. Below is the list of platforms for hiring developers remotely. Such a list is a great starting point if you plan to hire remotely.
Ok, here we go and below are some of the best sites and job boards to find programmers:
What are the other ways to find programmers?
Developer meetups & conferences. This is the best solution for you if you are willing to hire an engineer near you for app development. Simply check if there are any regular meetups in your area and make sure to join them.
Moreover, you can join online developer forums or communities. We mostly recommend Reddit and Facebook groups and forums, where people willingly join the community and share their knowledge, as well as selected IT portals. This will help you get in touch with the developer your project requires or at least someone who can suggest software engineers for you.
Another great idea to find programmers that are highly skilled is spreading a word about it. Ask your friends, business partners, associates, employees who might be able to suggest you talented freelance programmers for long term cooperation.
Alternatively, you may reach out to professionals who have carried out multiple recruitment processes and can get the job done for you. It is especially advised when you’re looking for more engineers for certain projects to form a tech team. Besides, an IT recruitment agency may be beneficial if you have no technical background.
How to do it? You simply have to set requirements and wait until a recruitment agency introduces candidates who meet all of them. At DevsData, we always comprehensively test out the engineers to deliver only the high-performing individuals with very relevant skills to clients’ needs, ensuring a high-level of satisfaction. We will build a custom team for your tech startup.
Retail / E-commerce
Look, as one knows, recruitment is a time and money consuming process. Nevertheless, you may find it sometimes necessary to extend your tech team and in such a way let your business get on the higher level. At DevsData, we have gone through multiple recruitment cases and now advise our clients to ask yourself a few vital questions before contacting a professional recruitment agency. Finding an answer to these questions may save you piles of dollar bills. Here we go!
Employers face trade-offs on a daily basis, but the ones in business are particularly important, as they correlate directly with profits or losses of your firm. At the same time, by analyzing numbers, you can easily assess whether your decisions were correct and contributed to your company’s development, or they turned out to be rather not so good. Therefore, before hiring a developer (e.g. a freelance programmer) you should describe your budget. No need to explain that an experienced professional might be twice or more expensive than a mid or entry-level engineer.
Why does this matter? Taking the mentioned above into account, you should take a close look at your project and assess what type of programming skills you require from an IT professional (a.k.a freelance programmer that you are looking to hire). You would expect a different set of skills for mobile app development and different for web development. Individual coding languages are valued differently on the market, and thus, according to the data, a Golang developer, for instance, can earn up to 30% more compared to Python, Ruby or C# programmer.
That, combined with the popularity of certain languages, speed, and comfort of development, a number of people on the market well-versed in specific technologies, are important factors influencing the project budget, and more importantly – the cost of potential future maintenance.
Indeed, there are projects that definitely require an in-depth business understanding and comprehensive technical expertise from engineers. In such a case, we advise you to reach out to engineers from Asia and Eastern Europe. Salary surveys conducted across different countries prove that an experienced senior programmer may expect even 3 times lower salary in European countries, than in the US!
DevsData is in possession of a vast network of contractors, including ex-tech leads and ex-employees of corporations like Goldman Sachs, Morgan Stanley and unicorn startups, both in the EU and Asia.
Ask yourself a question: Why do I need an IT specialist? Some projects require a programmer to be well acquainted with the company’s operations. Taking software maintenance as an example, you sometimes may expect a developer to know a certain product or a program like the back of his hand. Only in such a case, he is able to ensure professional customer service and maintain a customer-oriented approach.
On the other hand, sometimes it is worth hiring independent freelance programmers for your project. They may bring a fresh look at the problem the programmers face and design out-of-the-box solutions that will substantively boost the efficiency of your program.
So.. what should you do?
Both options are fine, but they are different in a fundamental way. Hiring an in-house software engineer is a long term investment in the company. The person will learn over the years and grow together with your business. Hiring external consultants, on the other hand, will result in a much faster delivery of your product, arguably also with a better quality, and you can set higher expectations, yet the monthly cost is visibly large. And contracting consultants is usually viewed as a temporary thing – they deliver what is needed, and go away to work on different projects for other clients (might be worth discussing with them a potential maintenance package after the project is completed, or having them train your internal team).
Undoubtedly, the experience matters.
That is an obvious thing on the job market, particularly in the tech industry, not only while looking for programmers. An engineer with 10+ years of long term experience will definitely create effective software for your project, no matter if you need a mobile app or a Big Data solution.
On the other hand, your project type might not necessarily be complicated to the extent that you need to hire a senior-level developer. Take a close look at the technology you use and the complexity of your problem and consider hiring a mid or even a junior programmer, to save some cash!
On top of that, as if the things were not already complicated enough, we find that years of experience are often overemphasized. While looking for programmers, a smart, talented engineer with 5 or 6 years of relevant experience that is dynamic and up to date with recent standard could bring much more value to your long term project than someone with 15 years of experience, but unmotivated, or with the experience not relevant to needs, or simply put – a person with the years of work history on the resume, but lacking the necessary acumen or resourcefulness, or – a “brainpower”.
Of course, programming is all about technology, right?
The tech evolves and nowadays an increasing number of companies switch into remote work. Hiring remote freelance programmers has multiple benefits, such as:
Now let us move on to discussing the top 11 characteristics a reliable programmer should have. In order to find programmers, make sure to always check your potential engineer regarding the following traits, not only in the interview process. If he has them all (or almost all) then he is definitely a candidate worth hiring.
One quality you should look for in your initial stages is how they handle complex problems. While math sounds like a pretty simple step for most people, it is crucial to this job to possess high-level problem-solving skills. This kind of skill is especially evident with people who know how to crunch their numbers.
There are a lot of different options to train analytical skills. One of them is solving programming Katas. These are challenges in which users have to write specific algorithms in order to solve certain challenges. Every single problem can be solved in a lot of different ways and by comparing those solutions in terms of performance, memory efficiency, and overall correctness, it is possible to distinguish a beginner from an experienced programmer (or, at least we find it a good indicator).
Be aware, during the recruitment or interview process, it is got the goal to test their knowledge of algorithms or data structures – indeed more often than not that information is easily forgotten after graduation as it is not essential to day to day engineering work – yet what should be checked instead is how they handle hard problems, how do they think, how quickly can they come up with a solution, if they do mistakes along the way, do they spot them and correct quickly, or are the mistakes left in the final solution.
In a nutshell, we are a big believer that a good engineer is not a walking encyclopedia, yet a very sharp and dynamic person able to build a good solution, quickly, and even for complex problems.
Programmers do not work alone. They are often a part of a team wherein they collaborate to produce the products you need for your business. Rapid development would especially need constant communication within the team. It is a common practice for these teams to use Agile Development Frameworks such as Scrum Framework. To sum it up, Scrum involves daily meetings and collaboration within the team.
Here is where you should start breaking the image of a programmer as an anti-social typical nerd. That is, by no means, necessarily true. A programmer who lacks the ability to communicate clearly will hit a roadblock in these meetings. Even if he/she is really smart and has the years of experience, it could be that he miscommunicates or misunderstands the priorities set in a project resulting in suboptimal budget utilization.
So, what can you do?
Before the product is set to go live, teams have a meeting with the product owners. In these meetings, they are expected to present everything clearly and precisely with consideration for non-tech people. That is exactly why the best coders are also known to be amazing communicators.
In our view, these 2 traits – quick problem-solving skills and great communication/presentation skills – are distinguishing factors from an average software engineer (even with years of experience) and a high rate software consultant. And for the projects of bigger scale or importance, the latter is able to work directly with the board room, project shareholders or corporate directors, while the former – not necessarily.
Similar to other fields skills, experience and expertise speak for itself. Programming requires technical expertise that is not simply acquired through reading alone. While training someone is an option, it is best to hire someone who already knows their way around the field to keep a good development pace. Even better so, if the person has relevant experience to what you plan to build. If he/she already built something very similar, that is a strong positive indicator as that engineer will be able to deliver your solution faster, and with a higher quality.
Why does this matter? Good practice in terms of programming is writing what is so-called “clean code”. When software is being written by a team of programmers, they often work together on the same files and code. It is crucial to keep the code well described, and follow the latest (and ever-changing) best software practices in order to make maintenance easy, and fun.
Another trait of an experienced programmer is a diverse list of projects done in the past. It proves the experience a programmer has. Besides, it also shows what kinds of business environments she/he is familiar with. Experience related to our business is a competitive edge, too…
The Tech industry is especially expeditious when it comes to progression. You will need someone who can keep up and keep themselves competitive in this field of rapid change.
Ask your prospect about the latest article, or a tech book they have read on a particular subject. Learn if they had any recent programming news they are reading about recently. Simply put, hire someone who has the initiative to learn new things themselves. It is often closely correlated with genuine passion for technology. Someone truly interested in the subject will do the reading even during the spare time, or will contribute to open source projects, naturally gaining skills towards the very latest tech changes much faster than the other candidates.
In contrast to some other fields, programming is changing rapidly. Every year there are new frameworks and new solutions for businesses. The programmer up to date with them will be able to choose the fastest and most efficient technology for a given task, and avoid mistakes that the old options could entail what is especially important for bigger size enterprise projects, and for rapid-paced startups.
Ready to get started?
Finding the wrong code is often made as a topic of memes or jokes by programmers. Ironically, finding what is wrong within the code is no joke. Even experienced programmers sometimes run into this sort of trouble. Your ideal programmer should be able to efficiently narrow down their search to locate those bugs. However, simply locating the mistakes is not sufficient. It is not always a one-way fix when it comes to coding. The man for the job must have the brainpower to analyze and produce different ways to fix the bug.
This is especially crucial for projects of a bigger scale. An average engineer will be changing many things in order to check what is exactly the root cause of the issue, while an experienced technology consultant firstly spends the time to deeply analyze the system, associated project modules, connections between them, and will allocate the time to thinking what the true cause likely is, before applying any changes to the code base.
Why does this matter? Because it results in a well-thought-out, clean solution that works right after the first attempt versus a dozen untested changes that likely introduce yet another bug to the system.
As previously mentioned, programmers should not be running a one-man show. Being a team player is vital for a programmer along with strong communication skills. The best fit for the job will know how his role within a team and how he affects his colleagues. Check if your prospect can take criticism well. If not, then he might not be a good fit for the job. As the saying goes, there is no “I” in “team”. Your hire must be able to prioritize the teams’ achievements over his personal gain. And, with the tech landscape changing so fast, nobody can genuinely claim to know it all.
Programming is a grueling yet rewarding job. USA News stated that the median salary of a computer programmer is 84,280 USD, peaking at 109,120USD for the best-paid programmers in a year with naturally higher numbers in big technology hubs like San Francisco, New York, Austin and others. That sum is quite attractive which is why some programmers do what they do.
But would you want that kind of person in your team?
More often than not, people who entered the IT business purely for the money are not competent engineers. Ask your candidate when did they begin their interest in programming. This passion for code usually starts at an early age (like, 12), even as early as their teens for some. The same truth applies to other industries as well. People who love what they do are the best in what they do.
Another sign of real passion for programming are side-projects done after work. Some programmers contribute to open-source projects in order to help others, and to develop their skills. Some are taking part in conferences and meetups about programming or even in hackathons, 24 hours long programming competitions.
Problems are bound to arise when the ones developing your business systems are not even interested in what the business is about.
It is as simple as understanding the problem.
If your development team is merely coding away like robots, they will not be able to identify what goals they should be targeting to solve the problem at hand. The programmer, aware of a business, will not only write code to achieve the goal, but he will also suggest some ideas in order to improve the final product, and will be able to decide whether or not to take “engineering shortcuts” when developing a particular module resulting in much better budget utilization.
It is a good practice for any kind of business or industry to set deadlines and time frames. Your programmer should be able to respect and commit to that deadline. It is not unusual for programmers to have different paces when it comes to coding however, it should be imperative for them to reach their target dates. Each team member should display the ability to work under pressure especially during crucial periods such as software releases or demos or meetings with investors.
The original author of “The Perl Programming Languages”, Larry Wall, describes three interesting qualities you will find in a good programmer working full-time. These are impatience, hubris, and laziness. Now from a business perspective, this may seem like a hazard sign that you could sense from miles away.
Still, it is a fact that IT management specialists stated that if you want to find the best way to do something, ask a lazy person.
You must be wondering why. Because the chances are that one lazy employee in your office will find a way to do the job in the quickest and most efficient way. As hilarious as it may sound for some, laziness leads to creativity.
A good programmer will find a way to automate those tedious processes because they would think that it is mundane to do that manually. That creativity fueled by laziness leads to increased effectiveness that saves you a noteworthy amount of time and money as the engineer will be able to focus on tasks of a much higher value and bigger complexity.
The same is true as a general business practise, not only in technology. If your senior employees do tasks and assignments that someone junior could do (after a short training), as brutal as it might sound, you are genuinely misusing your hard-earned capital. That is called – underdelegation problem.
“There’s more than one way to do it” is the motto of Perl programming.
Programmers would be familiar with this and it is not new in the industry to find two or more ways to go about things. Being in a team would also trigger this notion. Being a team player is important and when presented a problem that has no obvious “best” choice, communication and collaboration would take its part. How would your applicant handle this disarray in practical situations? Is that person a follower or does he push through with his ideas? Or perhaps, will he consider listening to his team before amicably finding the right solution?
To continue the Perl motto which was extended, “There is more than one way to do it, but sometimes consistency is not a bad thing either.”
Among programmers, GitHub is one of the most popular tools and is a project hosting website. It is a platform that stores repositories with code. Looking at the programmer’s GitHub repository can show us what kind of projects she/he did in the past. It is also possible to check what are the preferred programming languages of the programmer and which of them have she/he used in the past.
Company operation needs versatile tech skills, and more often than not, it is hard to predict the exact skill set that will be necessary. And it is much easier for a company to assign a trusted person to a particular new software assignment, even if that person does not have experience in this very topic.
Now, it could be that it is not an optimal budget utilization, you will need to assess for yourself, and not every programmer, of course, will agree to do it – people have their preferences, some do not like certain languages or frameworks, yet a smart software consultant usually will be able, and willing, to tackle uncharged technology territories, and will often deliver a successful code change despite lack of previous experience, or lack of interest in particular technology framework/language.
During the journey to find programmers, selecting a perfect employee is practically impossible after all, everyone has their flaws. However, if you keep the above tips in mind while selecting a candidate, you would definitely do it right.
As employers, do not forget that you are not limited to onboard specialists. Employing a remote tech team can lead you to additional cost savings and efficiency boost. What is more, simple projects do not always require programmers working over a decade in the industry and hiring mid-developer lets you diminish operation costs, at the same time maintaining the performance at the same level.
Quite self-explanatory, right?
In the end, if you want to cut down on the development cost, without risking the low project quality, you might consider hiring freelancers or software agencies from e.g. Central Europe. Those specialists are also very talented, worked for well-known tech companies, and are not any worse than US or Western European engineers.
If you’re looking for programmers or need help with the recruitment process, you shall contact a professional headhunter. At DevsData, we do not only design software solutions but also specialize in IT recruitment.
If you are in need of IT programmers, take a look at our recruitment case study, which describes an exemplary, international recruitment process which we had conducted for one of our clients. We are ready to carry out a whole recruitment process or contact you with one of our contractors.
DevsData – a premium technology partner
DevsData is a boutique software and recruitment agency. Get your software project done by Google-level engineers or scale up an in-house tech team with developers with experience relevant to your industry.
Free consultation with a software expert
“DevsData LLC is truly exceptional – their backend developers are some of the best I’ve ever worked with.”
MENTOR AT YC,
“I interviewed about a dozen different firms. DevsData LLC is truly exceptional – their backend developers are some of the best I’ve ever worked with. I’ve worked with a lot of very well-qualified developers, locally in San Francisco, and remotely, so that is not a compliment I offer lightly. Their depth of knowledge and their ability to get things done quickly."
CEO OF ORANGE CHARGER LLC;
MENTOR AT YCOMBINATOR