July 31, 2022
17 min read
First, let us go through the basics real quick.
It is easy to associate JS with the Java programming language by mistake, given the name similarity. These languages are not historically or syntactically related. The name conundrum is recognized as a marketing move. So, if you intend to hire JS developers, make sure you type in the right search query, without an extra space. No such specialty as a “Java script programmer” exists.
Nonetheless, it is often favored in cross-platform mobile development, including hybrid apps. To be specific, React.JS and Ionic are the top two cross-platform mobile development frameworks that absolutely dominate the niche (competing with Flutter and Xamarin).
✅ JS is lousy by nature. It has easy syntax and does not require compilation.
✅ On the hand, tons of user-created libraries make it extremely diverse, not unlike Python.
✅ JS community rapidly develops is several direction at once. A handful of powerful corporation-backed open-source frameworks are JS-based and are in a state of perpetual evolution.
❌ No strict declaration of variable types in convenient but leads to subtle dangers in code: these concern security and performance.
❌ Client-side execution opens up opportunities for security breaches.
❌ Different browsers might interpret JS differently, introducing even more design and security challenges.
JS developers work on the user-facing frontend part, the backend, or both.
Overburdening a web application with client-side code will slow it down and cause lag, which is why most of the computation should be carried out on a server, no matter if it is a cloud-hosted or local one.
Before we jump to the minimum general proficiencies and qualities that every JS dev must possess and technical interview questions, let us decide on the preferable engagement model.
Thus the general tendency is, outsource whenever possible, insource when strictly necessary.
The in-house cooperation model fits those business owners who enjoy handpicking and nourishing employees. It goes without saying that an in-house team requires office space. Even in the time of lockdown, professional teams were reluctant to leave their cutting-edge office hardware and sacrifice productive eye-to-eye cooperation for the coziness of work from home.
The necessary social support packages must be in place: sick leaves, paid vacation, insurance, education, and recreation bonuses. Otherwise, a talented individual might just accept a counteroffer and join a competitor company across the street.
On the bright side, insourcing gives a unique opportunity to retain and promote talent, to train personnel on the spot, and build highly technological facilities or expert communities, especially in rare research-heavy niches.
For that reason, you’d notice large companies resort to a compromise: they outsource development to their own teams and offices in offshore countries. Japanese GlobalLogic outsourcing to Ukraine is one such example.
The budgets vary but so do the time restrictions. One can stretch out development for five years, investing tiny portions of time and money into it, and still nail it. The same job could be handled by a professional offshore team in about a month, which gives an ultimate speed-to-market advantage, but for a substantially larger price.
Nearshore and offshore development outsourcing will invariably imply a more or less inconvenient time difference, cultural gap, or, more importantly, the coding style and methodology.
The top reason to hire JS developers via nearshore or offshore software development companies is the price attractiveness. The top-2 reason is overall flexibility and organization of remote teams: the scale up and down at product owner’s will, easy to start working with and as easy to cease cooperation. Finally, one might highly value the vast experience in a certain niche of a given company and hire JS developers solely for that reason. The competition on the global IT market is so intense that indeed only the best service providers survive.
Look around specialized IT service outsourcing platforms (e.g., Clutch).
Clients are after the lowest possible prices, looking to strike balance between expenditures and the end result.
Of course, we pick up high-level tasks as well, which is proved by the case history.
Soft skills are recognized as important as hard skills.
How does high emotional intelligence and just “being sweet” improve performance? It is not obvious at first. But think of it this way: talkativeness facilitates the flow of information and transparency of work processes, while good humor boosts creativity and certainly makes a workplace more comfortable. Comfort is directly related to performance, and performance can be measured. In fact, it has been measured many times before, giving rise to the conclusion that soft skills matter a great deal.
A candidate who admits that they are unable to solve a given task is more valuable than an overconfident one who picks a task and fails to accomplish it in time.
One could also explicitly ask a candidate to recall a situation that demonstrates how they apply the said soft skills.
A candidate might be asked to solve a logical puzzle or an impossible task so that they showcase their thinking capabilities. They might be even asked a philosophical question merely so that an interviewer could see how they argue their point and structure their speech.
Hard Skills are gained through education and training; they are related to specific tools and are never inherent to a person.
A Human Resource manager usually addresses the soft skills, and when they find a candidate JS developer fit, the latter may proceed to the next stage, the technical interview that deals exactly with concrete JS tools.
Those who are passionate and enthusiastic about a certain language, will surely know its history, the variety of available libraries, the related testing and debugging tools, the products developed with it, the behavior difference across various browsers, and so on.
Of course, they will also demonstrate how they apply theory to practice. Technical interview tasks vary in scope. It could be a problem from a competitive programmer’s handbook or a request to build a login form with SQL integration. It could be a massive task, comparable in scope to a milestone of a real project.
Team Leaders want to see the coding conventions their potential future teammates use. How fast they code, if they are able to learn on the go, if they ask the right questions when noticing inconsistencies in tasks, do they reach out for help when stuck, etc.
Of course, every developer has their own interviewing style. They have their personal set of the professional aspects that they deem important, and there is no single right way to perform technical interviews.
Besides, different projects have drastically different scopes, tools, and complexity levels.
The following is merely an example list of questions that could be used to evaluate an in-house or remote JavScript developer before hiring them.
- What is negative Infinity?
- What would be the result of 3+2+”7″?
- What is the use of Void (0)?
- What is event bubbling?
- What is the difference between Attributes and Property?
- What is the difference between Call & Apply?
The company, in turn, seeks to protect itself from reputational damage, property damage, information leaks, and so on. The process is mutually beneficial because if the company has organized workspace in such a way that a newcomer employee cannot cause massive irreversible damage then there is no chance the said employee will be accused of such.
Have you heard of the story of a Junior who accidentally deleted a production database on their first day? It is so unbelievable it could be a good joke. Alas, it is not, and the interesting fact is that the programming community put about half of the blame on the Chief Technical Officer of the said company.
The CTO has allowed this situation, which speaks badly of their ability as a highest-ranking manager.
Situations like this (and the less dramatic ones) must obviously be avoided at all costs.
First impressions matter. Not only to avoid a possible disaster but create the most comfortable conditions for a new employee and alleviate the stress of entering a collective of complete strangers. Where do we start?
A welcoming gift, as a sign of good faith, would be nice. It does not necessarily have to be a mainstream branded mug or a hoodie.
Perhaps a friendly handshake of a CEO and a personal introduction to the company values, mission, and the spirit in general?
Point out a person they can address with ANY question. It could be their Team Lead who also plays the role of a mentor/life coach.
By the way, make it clear which means of communication are used and when. Is it appropriate to write to someone during the off hours or weekends concerning the job-related issues?
Define their working schedule, the tasks for the first week, and the person who would assign more tasks in future.
On the technical side of things, agree on the tech stack and the coding conventions. For one last time, make sure that the knowledge of certain libraries, or certain documentation formats, or target browsers, is present, etc.
If there is a funny onboarding brochure laying around somewhere, handle it to them. A PDF will do as well.
The work equipment. Could include a personal encrypted laptop, for example.
Company account credentials and access the necessary software via that account.
Apply maximum effort to make the paperwork painless.
From that point, gradually increase the complexity and importance of tasks, make sure they make friends (if they want to), and always have a buddy Team Lead to watch their back.
Let custom software development outsourcing companies do the job for you, or delegate the task to a professional in-house HR manager. Otherwise, look at freelancing websites, programming community forums, or even code repositories directly, to find developers via relevant portfolio cases.
Onshore, nearshore or offshore developers all ask for different wages for their services, so, depending on their country of residence, it could be anywhere from $500 to $10,000 or more per month.
The whole procedure boils down to assessing their soft skills (communication, compassion, compliance, openness, etc) and specific hard skills required for the job at hand (database management, payment system integration, etc). Besides, professional developers are able to learn the necessary task-related skills on the go.