Why you weren’t hired!

Warning! Strong language, whole idea was to be heard!

Should it even be in your resume?

In the past three years, I am taken a lot of interviews. I realized that most of the developers who weren’t hired were not because they were less talented – but because our expectations from their resume didn’t match the level of knowledge they had. For instance, they will write “GO” and “GIT” in their resume but in an interview, I am told, they have worked on just a REST API and CAPP (Commit, Add, Pull and Push) in Go and Git respectively.

The Desire to be Hired!

They want to impress the interviewer and hence, they end up adding a lot of stuff. See, for me, I want knowledge! and I am sure it is for every interviewer. When I receive a resume, my expectations are set and I am generally very eager to speak to candidates. I am all excited and dreaming of the good happy ending to have a guy who knows what we are looking for. The desire here is to hire – I really want to hire you, but these high expectations are shattered into pieces right at the beginning of the interview when you just described what you have built. It is like saying I know Maths once you have learned how to divide! or English when you can barely form a word!

The Company Cup VS The World Cup

We have lived in technical problems – we have faced probably more fire than you might have seen in Game of Thrones. We have once paralyzed by the choice of our tech-stack. We have faced the wrath of hits. We have seen our database dying which wouldn’t revive after continuous CPR. This is World! And it Sucks! Now you come along and is full of confidence just because you are better than five developers in your company. You are forgetting that there is a world out there and it requires more than a REST API and CAPP!

The Reality Check!

After a couple of questions which is probably the toughest one – I have seen some candidates are still confident about a tech. After fifteen minutes, I am told that the interview is ‘tough’. Now you have forgotten the fact that you rated yourself 8-9 in MySQL and PHP. As long as it is PHP I think an interview is fine – It isn’t tough. Perhaps you don’t know your level. Ah ha – Your level was computed with a limited dataset – Your Current Company.

“I hate you” – you just said it

Unfortunately the tech can be quantified. It can be measured! There are multiple right answers but one is the best solution? No – only best solution is the only solution. We can measure the memory and cpu usage of your codes. We can measure number of queries you ran – fuck queries, we can even judge on your typing speed. Interview is a mirror! I can tell you where you stand but can you take it? Most of the interviewee couldn’t. As soon as I tell you “You are wrong” and You argued, it is over. It isn’t that we have a really nasty culture out here. But we know that sooner you are told you are wrong, sooner you can fix your codes! If you are arguing, we are loosing probably a couple of customers every minute! So attitude is a key. You are not hired probably because you live more than you should in denial! We can’t afford that.


So, please write what you really know in the resume. Ensure that level you are telling is measured with a bigger dataset. If you have attitude problem, I think there isn’t much you can do. Stay in your current company – consider yourself lucky!

Laravel Alternative in Node – AdonisJS

AdonisJS can be said to be a complete transformation of a Laravel framework in PHP to Node. Consider it in this way – it is a Laravel re-written in Node.

We have used Laravel extensively to create various Shopify Application. The fundamental problem with Laravel is database connections which goes out of hand when you use multiple databases. If you come to node and write some stuff which isn’t AdonisJS, then you will fall under the trap of callbacks and promises. So we needed something which is not only in node – but a lot like Laravel.

AdonisJS has a Query Builder, ORM (LUCID), Scheduler and of course, it is MVC. Adonis follows almost same naming conventions of Laravel – if that be a Controller, Route or anything. The API is so consistent, you can guess it. If you are coming from Laravel directly, you already know! Give it a try and watch screencasts.

AdonisJS an alternative to Laravel

The Stateless Development Machine

Are you spending 2-3 hours and sometimes a day getting your new laptop ready for the development? I used to do it with ansible and be happy about it. With Docker, it has now become easier. I have following in my .zshr and it works pretty great.

The .zshrc aliases

alias npm='docker run -ti --rm -v $(pwd):/src:rw -e "PUID=$UID" -e "PGID=$GID" mkenney/npm:latest npm'
alias gulp='docker run -ti --rm -v $(pwd):/src:rw -e "PUID=$UID" -e "PGID=$GID" mkenney/npm:latest gulp'
alias node='docker run -ti --rm -v $(pwd):/src:rw -e "PUID=$UID" -e "PGID=$GID" mkenney/npm:latest node'
alias bower='docker run -ti --rm -v $(pwd):/src:rw -e "PUID=$UID" -e "PGID=$GID" mkenney/npm:latest bower'
alias bundle='docker run -ti --rm -v $(pwd):/src:rw -e "PUID=$UID" -e "PGID=$GID" rails:latest bundle'
alias composer='docker run -ti --rm -v $(pwd):/app:rw -e "PUID=$UID" -e "PGID=$GID" composer:latest composer'
alias go='docker run -ti --rm  -w /usr/src/myapp -v $(pwd):/usr/src/myapp:rw -e "PUID=$UID" -e "PGID=$GID" golang:latest go'
alias nghttp='docker run --rm -it dajobe/nghttpx nghttp'
function dbash() {
    docker exec -it $1 /bin/bash
alias dbash=dbash


Obviously, the list can go on but understanding here is to keep your system in a stateless mode. Simply by having dotfiles backup, you can move your system with no trouble. Now days everything is in Git already!