JavaScript engineers, stop ruining your own interviews
--
This may sounds like a cliche but many people tend to ruin their chances while getting interviewed and they should blame theirselves 100%. I have participated into tens of interviews during the last years and i can confirm this. To be honest i am not an interviews expert, an HR manager or whatever. On the contrary i am also a developer like all these candidates.
The thing is that i see some repeating patterns that i would like to share with you because sooner or later you will get interviewed or you will interview someone for a position.
Should they invest in me?
Every hiring is a 2-ways investment. The company invests in you and you invest most hours of your daily routine in this company. If you want to get hired by a company answer first this question to yourself. Why you are the right person they should invest in? If you don’t know the answer then most probably they won’t find one too.
Don’t attend interviews if you don’t give a damn about the real job
This seems super-obvious but it is a really common one. Before applying for a job ask yourself if you should invest in this company or not. People tend to apply for jobs while they are not totally interested in the real job description.
Many times i have interviewed a guy for a Frontend position and he / she told me he / she wants to be a full-stack engineer or that he loves nodeJS and down the road i realised he / she hates CSS. This is totally ok but it is a huge alarming sign that this candidate will be frustrated after some months for not dealing with backend engineering at all and he / she may start seeking for a new position right? Don’t waste both sides time.
Know your stuff and focus on the fundamental technologies
We live in an era where frameworks and libraries shine so we tend to forget about the real technologies under the hood. Frontend situation is probably the best example because of all this craziness around it right now. Remember that all these exist in order to help us use JavaScript without having to deal with a bunch of crap that we should know in order to build even a Hello World
Minimum Viable Product (mvp). We all know that vanilla JavaScript can become painful.
Obviously every now and then a better solution appears that solves even more problems but the language under the hood will be there for good. I can give you some names like BackboneJS, AngularJS etc You remember these right? Now we have ReactJS, VueJS, Angular and so on. No-one knows what the future will bring but if we have good understanding of the basic principles then we can adapt fast to everything new and scale up our applications.
That said, if you are taking an interview about ReactJS, be sure you can answer basic stuff about JavaScript. I can ensure you that 5 out of 10 candidates do not know what kind of scopes exist in JS, what are primitives and non-primitives, which of them are immutable and what is hoisting.
Sorry but if you have been writing ReactJS for 2–3 years and you consider yourself mid-level Frontend engineer then you are probably mistaken. If you miss really basic stuff then you are a Junior JavaScript engineer and this is all that matters. Frameworks and libraries come and go but the technology under the hood will always be there.
Do not ask more questions than the ones you get asked
A typical example of ignorance is when the candidate gets a question and comes back by asking sth different to manipulate the whole thing without answering of course. There are 2 reasons someone is doing this and both make him look really weak.
The most obvious is that he / she cannot really answer. This trick may work for some occasions but it is a trick and it is a ringing bell that the candidate tries to be smart. It is ok to miss sth but trying to be smart is a huge minus.
Maybe he / she wants to show off. This is another minus for the candidate’s personality. At least answer first the question you were given and then you can add some extra points in a couple of sentences briefly.
Do not question the people that run the interview about their knowledge
Believe it or not, this is another funny case that happens every now and then. There are cases where the candidate tries really hard to show off and persuade the interviewers that some tech decisions they have made are wrong and he / she has the solution hidden in his / her pocket willing to share asap. Come on people!!
So maybe the interviewer will say that the company is using Redux for a couple of reasons. Obviously, this is clearly mentioned in the job description. Trying to prove throughout the interview that MobX is better or GraphQL rocks so Redux should die, is really silly. Are you serious? Even if you have a point, this is totally ridiculous. Why have you applied for this job anyway?
Do not speak more than you really have to
Having an opinion about everything will probably harm you in real life and in your interviews of course. People who tend to speak endlessly most of the times prove their huge ego.
No-one thinks highly of people with huge ego. Especially if you have really short experience (< 3 years) then this endless talking will end up with a big NOPE.
Better stay humble and listen to other people. Listening is a virtue and talking when you really have to answer, is another one.
Use your own opinion and not others
There are cases where the candidate will answer by saying I have been told to do this...
Really? I mean, don’t you have your own opinion? This proves some lack of understanding to be honest. After all, you are getting interviewed so all that matters is your own beliefs.
Become familiar with JavaScript ecosystem
A decent JavaScript developer cannot miss technologies like ESLint, Prettier, StyleLint, Webpack, Babel, TypeScript, PostCSS, CSS Modules, BEM, CSS-in-JS etc
If you really want to make a living out of JS then it is probably awkward if you don’t use the available code quality tools in order to provide more accurate and less error-prone code. These tools are really important and make you look really professional.
It is ok if you aren’t super-proficient with technologies like CSS Modules or TypeScript but it is really important if you know what these are and what we gain by using them. This proves your awareness and your steady improvement and progress. Everyone knows how fast things go in frontend world so it is totally ok if you haven’t mastered yet all these stuff but it is a huge virtue if you have a studying pattern and care a lot about new technologies and your self-improvement.
Stop finding excuses about CSS
I know we all hate CSS but i see even more and more frontend engineers who tend to ignore this weakness of theirs. They prefer copying stuff from Bootstrap etc and they think they are covered by doing so. Some candidates also tend to preach against CSS in order to defend their ignorance.
Guys this is a weakness and it is not ok. Styling is a huge part of frontend work no matter if you like it or not. Every serious company has some branding etc Nothing works without styling. Also do not forget that now we can have so many nice interactions and animations with pure CSS in our components. Do not ignore this part, it is a mistake.
Conclusion
Companies search for people they can invest in and candidates should also think that way so this can be a successful marriage. If you are not sure about the job description then you are probably wasting other people’s time apart from your own.
It is ok to say i am not aware of sth than trying to manipulate the discussion or even show off and prove your ego. Showing respect to the people on the other side of the table reflects your personality. Don’t forget, it is easier to teach a newbie how to code than turn a bad personality into a good asset and valuable team-player. Cheers!!
If you found this interesting, you can follow me on Twitter at @fakiolinho. Check out some of my other articles below: