Work sample test and structured interview for {role_name}

After shortlisting, assess candidates' skills with a work sample task, followed by an assessment and thorough evaluation.

How to structure the interview to assess skills and cultural fit for {role_name}

Work sample test (Home assignment)

Recruitment Bullet

Assess the candidate’s practical skills by assigning a real-world task similar to the work they would do if hired.

  • Title: Smart Contract Development Task
  • Objective: Assess the candidate’s ability to develop and deploy a smart contract on the Ethereum blockchain.
  • Requirements:
    • Develop a smart contract for a simple token with ERC-20 compliance.
    • Provide a test suite to ensure the contract functions as expected.
    • Deploy the contract to an Ethereum test network.
    • Document the development process and any assumptions made.
  • Time Frame: 48 hours

Questions based on home assignment : 

Recruitment Bullet

Once done with work sample test evaluate the candidate’s technical proficiency based on the work sample task.

Technical questions

Recruitment Bullet

Duration : 10 minutes/question

  • Question: Explain how the require function is used in Solidity. What are its primary purposes?
    • Expected Answer: The require function in Solidity is used to validate conditions in smart contracts. It checks if a condition is true and, if not, reverts the transaction and refunds the gas. It is commonly used for input validation and to ensure that certain conditions are met before executing further code.
    • Sample Answer: "The require function is used to enforce conditions in smart contracts. For example, it ensures that only the contract owner can execute certain functions or that input values meet specified criteria. If the condition is not met, it reverts the transaction."
  • Question: How does Solidity handle exceptions? Describe how you would use assert and revert.
    • Expected Answer: Solidity uses assert and revert to handle exceptions. assert is used to check for internal errors and invariants; it should only be used for conditions that should never be false. revert is used to handle errors in user input and can include an error message.
    • Sample Answer: "In Solidity, assert is used for checking invariants and critical conditions that should always be true, while revert is used to handle conditions based on user input or state changes. For example, revert can be used to revert a transaction if user input does not meet the required criteria."
  • Question: What are the differences between storage and memory in Solidity?
    • Expected Answer: Storage is used for storing state variables on the blockchain and is persistent between function calls and transactions. Memory is used for temporary data storage and is erased between (external) function calls. Memory is more gas-efficient than storage but does not persist.
    • Sample Answer: "In Solidity, storage refers to the blockchain's persistent storage, which retains data across transactions. Memory is temporary and used for variables only during function execution. For example, storage is used for state variables, while memory is used for local variables in a function."

Behavioral questions

Recruitment Bullet

Duration : 10 minutes/question

  • Question: Describe a time when you had to work with a difficult team member. How did you handle the situation?
    • Expected Answer: Look for examples of effective communication, conflict resolution, and teamwork. The candidate should demonstrate their ability to handle conflicts professionally and work towards a solution.
    • Sample Answer: "I once worked with a team member who was resistant to feedback. I approached them with a calm and open-minded attitude, focusing on understanding their perspective. I suggested a collaborative approach to address the issues and found that aligning our goals helped improve our working relationship."
  • Question: Tell me about a challenging project you worked on. What were the obstacles, and how did you overcome them?
    • Expected Answer: The candidate should describe a specific project, the challenges faced, and the strategies used to overcome them. This question assesses problem-solving skills and resilience.
    • Sample Answer: "In a previous project, we faced integration issues with an external API. I led a series of debugging sessions, communicated with the API provider for support, and documented our findings. We eventually implemented a workaround that allowed us to meet our deadlines."
  • Question: How do you stay updated with the latest developments in blockchain technology?
    • Expected Answer: The candidate should mention sources like industry blogs, conferences, online courses, and professional networks.
    • Sample Answer: "I stay updated by following industry blogs, participating in blockchain forums, and attending conferences like Devcon. I also take online courses to learn about new tools and techniques."

How to evaluate and compare candidates after interviews?

After interviews, it's important to evaluate and compare candidates based on a set of predefined criteria.Use scorecard to evaluate each candidate.

Recruitment Bullet

Sample scorecard based on pre-defined criteria. Here’s an example:

Criteria Rating (1-5) Comments
Technical Skills
Solidity Knowledge
Smart Contract Development
Problem-Solving Ability
Behavioral Fit
Teamwork and Collaboration
Adaptability and Learning
Communication Skills
Overall Impression

What criteria should be used to make the final hiring decision?

Final decisions should be based on the candidate's overall evaluation score, with a focus on important qualifications. Prioritize technical skills above everything else for a {role_name}, but do not forget about communication and cultural fit.

Recruitment Bullet

How to communicate the decision to candidates

Sample offer letter for {role_name}

[Your Company Letterhead]

[Date]

[Candidate Name]

[Candidate Address]

Dear [Candidate Name],

We are pleased to offer you the position of Blockchain Developer at [Company Name]. We were impressed with your skills and experience and believe you will be a valuable addition to our team.

Position: Blockchain Developer
Start Date: [Proposed Start Date]
Salary: [Salary Details]
Benefits: [Brief Overview of Benefits]

Please review the attached offer details and let us know if you have any questions. We look forward to your positive response and are excited about the prospect of you joining our team.

Sincerely,
[Your Name]
[Your Position]
[Company Name]

Sample rejection letter for {role_name}

[Your Company Letterhead]

[Date]

[Candidate Name]

[Candidate Address]

Dear [Candidate Name],

Thank you for taking the time to interview for the Blockchain Developer position at [Company Name]. We appreciate your interest in our company.

After careful consideration, we have decided to move forward with another candidate who more closely matches our needs at this time. We were impressed with your qualifications and encourage you to apply for future openings that align with your skills and experience.

We wish you the best in your job search and future endeavors.

Sincerely,
[Your Name]
[Your Position]
[Company Name]