Why I Succeeded In The Interview But Lost The Job!
Tags: interview, javascript, react
Published: 2021-01-04 09:23:05

## What did encourage me to write this post:question:
Two weeks ago I applied for 3 companies. The job offers were aimed at junior Front-end developers. Well, all of them accepted my resume and two of them interviewed me. One of them never told the results and the last one offered me the job.

Yet I had to work for 3 experimental weeks and if they really liked the way I did my job, I would've been recruited.
So I accepted the deal and began to work there and then after spending a week on the job I got rejected. Certainly I was paid for the one week work but in the end, right now I'm sitting jobless in front of my laptop, trying to describe to you why I succeeded and then failed.

I've shared valuable advices with you in this post. 
But first of all I suppose you need to have some background of me.

### Who am I?
I am Ali and I'm a deaf. Deaf is the word that could describe me appropriately. Because it's not only a disability it's also a way of life.

I live in Tehran, Iran and I'm 21 years old. I'm still studying at the university. My education field is Industrial Safety and I'm currently studying at the Shahid Beheshti University of Tehran.

I think this short introduction is enough to let you have some basic knowledge of my condition. 
Now let's have a few words about how I entered the world of code.

#### How the journey began...
It wasn't a stormy night in the middle of the winter. The journey had actually began since my youth. I am 21 years old at the moment and the first time I wrote my first line of HTML, there was no sign of it's fifth version.

And then the HTML 5 and the CSS 3 were introduced. The excitement at the time was mainly about the HTML semantic tags and the CSS opacity and border-radius properties. Since then the languages have developed further more.

#### And then I got lost in the journey...
Yes, I had written HTML a very long time ago. And I was even learning PHP 5 and MySQL. But it was never serious learning. It was out of curiosity and self-pleasure. So I left the learning hobby very soon in order to continue my school studies.
 
But a day came, when nothing was like before. My left ear too, said goodbye to the hearing world to join my right one; which had gone deaf since my childhood.

#### Who said there were no stormy nights?
Having a severe deafness, up to 90% in both ears, I was left in the world of solitude. Talking, socializing, learning and any normal activity that you could name, became tremendously hard for me.

But for the next three years I was the top student in a normal high school. I found my way into the university and then, finally I returned to my old hobby. Programming.

#### What is Bootstrap? Where did React.js come from? Really, ES6?
Being absent for a long time, I knew nothing of the newest developments in the frontend world. It was like I had come out of a cave in which I had lived for a thousand years. 

Then I began to experiment with the new things and eventually I was on the road to become a front-end developer.

### Apply here, apply there, apply everywhere
Three months have passed since the first time I really applied for a job. Then I had applied for 3 companies but none of them even accepted me. Why? you may ask, and my answer would be that my resume sucked.

It was just a description of myself and the things I liked and how I was involved into programming. Aside that I had an open source sample project on Github which was deployed online. But the project was unfinished and it really had no great design. 

I had thought the code itself and the technologies that I had used in it would be enough. But it wasn't, so I didn't even get a call for an interview.

About two months passed, and I got my first interviews. How?

# How I Succeeded In The Interview.

## # Point 1: The resume, the resume, the resume.
I totally rewrote my resume. There were no descriptions of me. Just lists of what I had mastered and what I was currently learning and what I had had experience with. It went like this:
> * I know JavaScript since my youth. I'm mastered at:
HTML5, CSS3, JS ES6, jQuery, Bootstrap, React.js, Redux.js, ...
* I'm currently learning:
Advanced Node.js, Express.js, ...
* I have experience with:
Python, Web-Scraping, Phaser.js 3, ...

>Plus points:
* Clean code
* Functional Programming
* High self-education and self-reliability: Top high school student, despite hearing problems

So as you can see, instead of writing sentences, describing myself, I gave quick facts about my abilities and specialties. This way the reader can quickly match my abilities with the requirements of the job.

But the resume's description part wasn't the only difference. I also created more sample projects.

## # Point 2: Sample Projects, or Show Them What You Can Do.
The second time I sent my resumes, I had three main sample projects. Every three of them were big projects, but unfinished. But the point here isn't the project itself, or its deployment and demo.

What I did was to write proficient descriptions for every project in my Github account. In my resume I redirected the reviewer to the readme section of my repos and tried to attract their attention.

What my Readmes included were a list of descriptions of the technologies I had used and their purpose. 
Such a description is what actually every reviewer is looking for. No one is going to review every line of your code. 

The fact that you can explain the tools you have used in your project and their purpose, will give the reviewer a good idea of the fact that you generally understand those tools.

## # Point 3: The Interview, or Let The Stress Out
Because of my deafness and due to the Covid-19 spread I offered both of the interviewers to do the interview on a video call and type the questions at the same time.

Since I couldn't hear their voice, they would type their questions for me and I would give my replies by speech. 

The most important part about job interviews is preparation.
You should study the languages' and the libraries' references and have a good realization of their application. But...
Remember that in an interview you are actually compared to other appliers. 

So you don't have to answer every question correctly. But answer every one of them with confidence. And if you don't know an answer, just confess it. Don't give random answers, as it would cause negative attention. 

And remember that your interview also demonstrates how you can share knowledge and collaborate in a team. Therefore don't get stressful. 

Thus there is no magic way to succeed in an interview, but the picture you give of yourself can ultimately lead to success. This can be achieved through a confident resume and interview.

Yes, I managed to succeed in one of the interviews which was more generally about the core JS, CSS and HTML. 

I don't think my other interview was really very bad, but it was the kind of interview which required you to know every theoretical parts of React and Next.js or Node.js and etc. which I didn't really have a good grasp upon. I was never informed of the results.

Accepted but not recruited.

# How I Failed The Job
The seventh night, after I returned from work, I received a text message which went on like:
> Mr. Mobasheri, hello:
As was mentioned before in our skype chat, we always experiment our coworkers in an experimental duration. To be successful in our business we need an experienced and fast developer. But in the week that has passed we've concluded that we can't continue collaboration with you.
We wish you the best in the path you have chosen...

Well, there was nothing special I could do about it. But I thought it was my right to know why I was rejected. 

"What's wrong with my work?", I asked the senior programmer the next day, "I have done everything you required of me!"
"What's wrong with your work?" He typed this on the WhatsApp web app, open on the screen in front of him (because of my hearing issue), "Let me tell you."

And I thank him for his clean and direct reply. I never knew how much wrong I had gone the way.

## # Point 1: Clean Code, or You Don't Know JS
I was informed that writing messy code was my biggest issue. But wait. Hadn't I written in my resume that clean code was one of my plus points? So how comes that I couldn't follow its rules in my own code?

I had read the Clean Code book and have always tried to implement its rules in my programming. But it turns out that my problem was in React. 

* I didn't write clean React components. 
* I didn't use React's core abilities to shorten the code.
* I had even written a long useEffect to manage routing states for a part of the site which used step by step navigation, while I could have achieved this using JS Objects.

But it wasn't only about React. In fact clean code isn't all about component names and Pure Functions. It's also about using the programming language's own methods to reduce code. At which I was again defeated.

* There was a point at which I had to format Integers to prices. As an example: 25000 -> 25,000. Since the project was multilingual and both Persian and English formats of the price were required, I had chosen to write a complete function which would do the job. Using map and reduce and other array Methods, it consisted of 13 lines of code. But indeed I didn't need to use that. JavaScript has an in-built Method for Integers which is `toLocaleString()` and that does the job perfectly. The only thing I needed to do was to pass it the lang abbreviation (English: 'en', Persian: 'fa').

As simple as this I was rejected for not having a deep knowledge of everything about React and JS.

## # Point 2: Responsive Design Strategies, or Understanding Every Bit Of HTML 5 and CSS 3
God, I know responsive design! I know how to implement Flexbox. Even when during the interview I was asked how to create a Glassmorphic design, I replied that `backdrop-filter: blur` is the right way and it was totally right.

But the senior programmer told me that I had used strange ways to implement design in the Front-end.

* I had wrapped many elements inside a `div` tag. Instead I could use CSS properties directly on the elements themselves.
* I had used the percentage unit `%` over and over again. I was told that the percentage unit isn't very predictable. And also that I had written rules like `padding: 30%` for responsivity, which he said he had never seen before.

But why did this happen?

The senior programmer who was also my interviewer told me that I had had the best interview results and that nobody had answered the questions as thoroughly as me, but he wondered why I wasn't so good in action.

* I needed more experience and that was right.

But there was also another fact. He told me that the interview's questions were all the type of questions for which to be able to give a correct answer you had to have had some experience in the related matters. 

Well that's truly right. I was experienced enough to answer all those questions. But the interview questions mainly focused on the general matters. I'm a self-educated programmer. I have practiced everything by myself. So I might have solved the problems in ways which didn't look standard or clean.

* I have learnt the technologies widely, but not deeply. I can create a web app or a website from the scratch using the famous tools. But I'm not fast enough. That's because I haven't focused enough on the design patterns. I haven't learnt the languages and the libraries deep enough.

* And most importantly I need to practice every small aspect of the technologies and the languages used in the Front-end development. 

That's the goal I set for myself yesterday when I returned home from the office. 

Got paid but failed:(

# What To Expect In The Future?
I hope this post would be helpful for the readers.

But if you have really read through my long story, I would be glad to announce that I want to start publishing new series of articles on dev.to. 

My goal is to write about clean code in React.js and deep learning of JS, HTML, CSS, React.js and etc.

#### The Journey Has Just began.

Failed but not done :smirk: