How would you prefer your coding skills to be evaluated during an interview process? šŸ¤“

We are in the process of hiring several Dart developers for the Serverpod team. Itā€™s almost impossible to gauge an applicantā€™s coding skills by looking at someoneā€™s resume. In addition, we need very skilled developers as thousands of other developers will rely on their code. As a startup, we have limited resources to spend on coaching more junior developers.

If you were applying for a job, how would you like to have your coding skills assessed?

3 Likes

If it was me, I would like a coding challenge I can take away. Nothing too long - hours rather than days, but a challenge that reflects the type of work I may be doing and the opportunity to discuss my solution and reasoning with the interviewer.

Similarly, and/or an opportunity to take the interviewer through a side project. Taking the interviewer through a fully built and deployed project can cover a lot of skills.

Honestly, I never did any coding challenges when I hired someone in the past.
If the candidate has a github repository where I can get an impression of the way he works thatā€™s always good if they have done OSS work the better.

Additionally I want to be told about their previous projects and how they solved problems there.

As you are looking for experienced devs, I would look more on the former experience and how long they stayed on the previous projects and make sure his personality fits in the team and just agree on test period.

2 Likes

I believe no skills assessment in a one-hour interview will ever identify the right person. For me, the most valuable team members are those you genuinely enjoy working withā€”the ones youā€™d spend an entire night solving a bug or preparing for a release, the ones who raise their hand in a meeting and say, ā€˜I have an idea!ā€™, ā€˜How about this?ā€™, ā€˜How can I help?ā€™ etcā€¦ Nothing beats having motivated, pleasant individuals who work with you toward a common goal, rather than working for you just for a paycheck. Itā€™s no coincidence that the biggest companies, albums, games, or products were built by groups of friends in a ā€˜garage.ā€™ After all, who wants to hire a top-tier engineer who works in his corner, shares nothing, and quits after just a few months for a salary increase?

Iā€™d select a few candidates, order some pizzas, grab a few drinks, and have them join my team for a peer session or a hackathon weekend. This helps build trust while allowing you to assess their comportment, adherence to best practices, creativity, and endurance. Grade their average and hire if you feel like it.

5 Likes

The tricky thing with smaller, stand alone, coding tasks these days is that they are quite easy to do with AI. But, totally agree that the task shouldnā€™t take more than a couple of hours to complete. Definitely less than a day.

Many developers (even really good ones) havenā€™t worked with open source projects. So while this can be a great approach for some that have, for most there must be another way to assess their skill level. Time in previous jobs is definitely a factor, and also the kind of places they have worked at.

However, Iā€™ve done assessments with developers who, for instance, been lead dev at a bank and been there for several years. Yet, they miss the most basic of things when completing a work sample. So, just ā€œexperience on paperā€ is unfortunately not enough.

While this approach may work if you have a lot of time and are very small group. Itā€™s not really feasible on a larger scale or when hiring for (potentially) remote positions.

What you are saying about motivations is 100% true though. This is one of the most important aspects we look at when hiring, being passionate about the project and feeling that they want to build something great together. For a project like Serverpod, itā€™s very hard to be productive unless you are a very experienced developer. There are strict code reviews, you need high test coverage, the code needs to conform to standards, etc. So, while having the right mindset is super important, you cannot do without the skills and we need a way to assess them too. :slight_smile:

2 Likes

To be honest for the positions that you currently need to fill I would foremost try to check if some of the well known community members are interested of if they can recommend someone

3 Likes

Make a short list of the best candidates based on their resume, background, prior OSS projects.

Then hire each as a contractor to work on specific piece of work that you actually need done for a few days to a fortnight.

Then you can assess not only how well they completed the specific coding work, but how well they get on with the rest of your team, their work style, communication skills, etc.

Its a win-win situation, worst case you part ways and you have paid someone to perform some work that you needed done while they are not spending their valuable time completing pointless coding tests or wasting time in interviews answering stupid algo/strctures brain twisters.

3 Likes

After youā€™ve narrowed it down to a reasonable short list, pair programming for an hour or two. You get to see my skills in action, doing what youā€™ll be paying me to do. And we both get a feel of what itā€™ll be like to work with each other, and if itā€™ll be a good fit.

1 Like

Iā€™ve hired many people by trying different approaches over the years, but this is what helped me find the best people Iā€™ve ever worked with:

  1. If the candidate has open source projects, ask them to walk you through their repos. Let them explain what they did, why they did it, and what they were trying to achieve. Go through their code together and even check how they documented the project in the README. Also, see how they responded to the issues posted by their users. This gives you a clear picture of how well they communicate both in code and in words, which are BOTH important, especially for remote work. I usually plan about 45 mins for this step.

  2. Next, for senior developers, I ask THEM to convince me why I should hire them. I think a senior developer should not only have the skills but also know how to demonstrate them. I came up with this process once when I was the candidate myself. I thought the interview process was too bland, and was not letting me differentiate myself. So I said, ā€œLetā€™s meet and you let me try and convince you that you should hire meā€. I walked them through how I organize my code, how I make it testable, and how my approach helps achieve the companyā€™s goals. When Iā€™m hiring, I expect the same. They must be able to convince me they are a good hire. More than that, they must be able to make me feel VERY COMFORTABLE that I should hire them. I usually plan about 45 mins for this step, but can extend 15 more mins if the conversation is too good.

  3. If they pass the first two steps, I move straight to step 4. Unfortunately, it is true as you said that many developers, even really good ones, donā€™t have open source projects. If step 1 isnā€™t an option, I instead ask them to build a small program with tests in a live session while I watch. I give this about two hours. They donā€™t have to finish it, but by the end of the session, I usually know more than enough to decide. Unfortunately, with AI tools Iā€™m not sure how reliable this step still is. But note this is not to take home. I am watching all the time.

  4. Once theyā€™ve passed the interviews, I offer a short-term contract for 2 or 3 weeks (usually 2). Negotiate everything upfront: salary, equity, and terms, but make it clear this is a trial. At the end of the period, if theyā€™ve done well, the full contract goes into effect. If not, pay them for their time, thank them, and move on. Of course, this only works if theyā€™re not having to leave another job to join you.

8 Likes