This is indeed the era of “digital” when all businesses are giving a lot of importance on their “online presence”. The growth of startups in the E-commerce and Fintech reinforces the belief that great problems can be made simpler with the use of technology. With this paradigm shift, the development team of an organization is not only restricted to their laptops, but they are required to understand the business model and user behavior as well( Say hello to Analytics!).

Coming to Front-end development, well the first thing which determines the credibility of a website is the design and user interface and the front-end team indeed plays a crucial role in that. But, sadly, many struggles to set the parameters on which they should evaluate their next hire, which is, by the way, the most important part. To help with this, we decided to interview our top expert Mayank Varshney who has been in the front-end domain for the last ten years. In a candid interview with AirCTO, Mayank discusses his passion for coding and sheds some light on the strategies and techniques to make the interview more productive.

Early days in programming

Mayank, hailing from an urban city in U.P took a keen interest in programming early in his 12th standard itself. He started building websites using HTML and felt that the local businesses should have their own online digital presence in place. Mind it, it was a pre-Amazon (India), Flipkart time when people had very little knowledge about the internet. He even had to build free websites for some traders to make them aware. This brief stint was followed by a degree in CSE, post which he joined a startup and has been in the front-end domain ever since.

How does a portfolio of an ideal frontend dev should look like?

“Nowadays, most companies look for more of a full-stack position; there are some points which should be considered while shortlisting a candidate:

  1. His basics should be strong, he should be good at Javascript and should also have good knowledge of HTML, CSS and web services.
  2. He should be well familiar with the HTTP request lifecycle, like what happens when you hit a particular domain, where does the request goes and how the server responds to it. Many people do not know what happens in the background when they hit a particular domain, the understanding should be pretty clear.
  3. Due to the evolution in user experience, there are certain additions to the technologies as well. For example, now, we need a CSS preprocessor with CSS; with HTML we need HTML5 skillset as well; along with javascript, one needs to know ECMAScript 6 etc.
  4. Nowadays, web developers have to implement web analytics, so one should know about it. Also, Adobe provides data type management, knowledge of which is a plus.
  5. In recent times, there are a lot of new frameworks like MVC frameworks. He should know and must have worked on any one of the MVC frameworks. For ex, If he knows Angular, he can learn Backbone and React.
    8.There is a concept of design pattern in Javascript, example MVC. If a candidate knows more than one design patterns, he can be considered as good. Also, he should also possess good debugging skills.

How do you determine if a candidate can write a responsive web design?

“Firstly, he should be well aware of the Grid-based layout. Now, let's start with CSS. We have to ask, - Do you know mobile first approach? Here, we have to start the design from mobile first and then go the desktop version as it is harder to design in that way. If he answers that, come to the framework and asked if he has used any. if he hasn’t, then ask, Do you know media queries? If they don’t know media queries, it means they don’t know about responsive layouts.
To determine if a candidate is tech savvy, ask him about CSS3 and how it differs from CSS2. This shows if the candidate is interested in learning about the new technologies and versions.”

Earlier you mentioned, Javascript is very important. What are the questions you ask in javascript?

“ Firstly I check for the basics, irrespective of experience. A typical example of questions which you can ask in order:

  1. What is Closure? This is a concept of core javascript. Another concept is Hoisting. This is a basic thing which represents how our variables got declared in javascript.
    2.How will you achieve inheritance in Javascript? This tests, if the candidate knows how we can use the OOPS concept in JavaScript.
  2. What Prototype inheritance and Classical inheritance? Ask them about the core concepts before moving to a particular framework like Angular or React.”

What is the typical flow of interview that you follow?

“I prefer a very structured process, I always carry a copy and a pen.I write all the skills on the copy that I have as not only the questions but also the order of the questions matter. I sort the skills first in this order:

  1. Javascript - Since, it is the basic, if a candidate is poor in it, we have to reduce the no of questions.
  2. Jquery
  3. MVC frameworks
    4.HTML, CSS, Bootstrap etc

What is the importance of code quality? Also, how important is clean code?

Nowadays, it’s pretty easy to gain knowledge by reading blogs, isn’t it? You would even get stuffs like top 10 javascript questions. A coding test in the background certifies that a candidate can apply the code for that particular skillset.
So, for all the topics, ask him to write one code for each. If he performs badly, it means that maybe he has gained some knowledge by going through websites but hasn’t implemented any. In these cases, if the guy is junior with good theoretical knowledge, we can consider them as we can spend some time on freshers but we definitely cannot do that for a 2+ year candidates.

Now, coming to your question, I would like to talk about clean code.

What is clean code?

1.Easily accessible to others (straightforward, clear intent, good abstractions, no surprises, good names) – this is absolutely the most mentioned point
2.Is made for the real-world, i.e. has a clear error-handling strategy.
3.The author clearly cares for the software and other developers (which implies both readability and maintainability)
4. Is minimal (does one thing, has minimal dependencies)

And there is a book on Clean code which I recommend every developer to read.

Okay, how would you evaluate a 2+ year candidate then?

“A 2-5 year of candidate must have a very good knowledge in core areas of Javascript.You can learn to write clean code by having a knowledge of design patterns. Once you start learning design pattern that helps to write a clean code which helps in the separation of concern. What is separation of concern you ask? So there are three layers, the business logic, the presentation and the controller.

Earlier in the view layer we used to have the business layer coupled, which made it very hard to maintain and read the code when the presentation logic is mixed with the business logic. In order to fix this problem, we use MVC which helps to separate the presentation logic from the business logic so that everyone can understand clearly.”

Do you evaluate the candidate on what he has mentioned in his resume?

“I do not emphasize on resume. For example, I am in an Investbank Bank, and I have not seen candidates coming from Investment Banking only. What matters is his current skills, whether he has problem-solving skills.Domain is something that can be learnt in a few months. The best way is to give them a kind of problem statement and ask them to solve it. I will state one hypothetical problem:

Hypothetical Problem

You have built a project in Angular today. Five years from now, suppose, Google stops supporting Angular and there is no more development on Angular. Millions of customers are using your project. Now you don’t have option to work on angular, you have no community, no support no new libraries. What will you do now?

Key - The candidates have to come up with approach of transition of an entire enterprise level project.

Frontend is evolving very fast, where do you see it in the next 5 years? How can recruiters keep at par?

“After introduction of open source model and the emergence of AI, chatbots etc, this is something that is not going to stop in the near future and the candidate has to adapt to the new technologies.

Recruiters have to put themselves in the shoes of the developer, they have to sit with the developers, have to understand what is going on in the market. They need to read some blogs on web development, and keep themselves updated.”

Good skillsets that company may look for while hiring for front-end?

“I have already mentioned the important skills in an earlier question. Also, the skills vary depending on the company and project, but on the top of my head, Unit-testing should be a criteria. One should know how to write proper unit test cases. Also, knowledge of TDD(test driven dev), BDD(business driven dev), build automation tools like grunt, gulp or webpack should be emphasized on.”

Tech-interviews are really a cumbersome job, isn’t it? Don’t worry, we have got it for you. Next week, we will publish the interview with one of ur top Data-Science experts. Till then, keep learning, keep experimenting :-)