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.
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.
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.
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.
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.
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.
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?
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'm currently learning: Advanced Node.js, Express.js, ...
- I have experience with: Python, Web-Scraping, Phaser.js 3, ...
- 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.
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.
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.
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.
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.
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.
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
divtag. 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:(
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.
Failed but not done 😏