I don't know how it works in other countries, but, in France, during interviews, it usual to have a technical test.
Sometimes you can do it from home, sometimes it's in live during the interview.
There is a lot of posts about the second one, so I won't speak about it. Let's focus on the "homework technical test".
I do code review on those for a while now, here is what I'm looking for.
My first concern is that the code works.
I don't really care if the developer (especially if he is a junior) cover all the scope. I mean, it's better, but I prefer having an unfinished user story than a bugged one.
We always have room for improvements, and, a lot of experienced developers don't have the cleanest code. I get it.
But, technical tests are like a resume, I except at least to understand easily what you have done.
If you are coding in PHP, I except PHPDoc for example,but also meaningful variable names, correct indentation and comments if needed.
If a scope is given, respect it. Don't over do.
You may think that's a bonus and the reviewer will see how implicated you are, but it send another message: You don't know how to respect the scope of a user story.
Usually a Git repository is provided, and we except you to commit your code.
It's alright if you don't master Git yet, but you have to be careful about some little things:
- Do little commits, with explicit title/messages
- Don't hesitate to provide a Read me, explaining how you proceed and what you tried to do
- We'll check your GitHub.
Not all companies does it, but I always stay available for the recruits (and I provide a way to get in touch).
That mean I except you to contact me if something is bothering you or if you are stuck.
Google is good, but we are looking for team player, and that's a good skill to be able to ask for help.
I love copying a piece of the provided code, and look for it on Google.
It's amazing how effective it is to disqualify a candidate.
You can search for technical solutions or tutorials on the net, that's what a developer do for a living, but don't just copy/past the code.
I am already sure that you know how to do that.
Write your own code
We know you have a life, maybe kids, surely a full time job. That's ok.
But don't take too much time to get back to the company, it send the wrong signal.
You can't do it within the week ? No problems, but explain it, I'm sure it will be all good !
Keep It Stupid Simple
You have been asked for an API implementation. It is simple, right ?
Let's your code reflect that.
If you have been asked for 2 endpoints, on Symfony, I don't want to see any Interfaces, or complex paradigms.
Just a controller, with as many object as requested and some tests.
That's all folks.
Not everybody know how to write unit or functional tests. But I always ask at least for unit tests.
Try to do it, even if you are not sure. It shows implication and learning capacities.
90% of the time, a technology will be imposed. Well, it's because it will certainly be the technology you will be working with if you join the team.
Recruiter ask for a Laravel implementation with Api Platform ? Don't use GraphQl !
If the company have public repository, take a look. You may find some tips on how things are done by the team.
It's always nice to see that the candidate will try to fit in (even if fresh ideas and mindset are always welcome)
If you cheat, people will notice. And it's like lying on your resume, you can be fire for that. And you will.
I hope this few advice will help you.
Please share you advice in the comment section, I'll edit this post to add all the good ideas !