Hiring process at Primacy

Nick Darvey on 2021-05-02

❗ The summary of our hiring process on jobs should remain consistent with our documentation here.

Stage 1: Screening

This stage assesses an applicant's comprehension and communication skill.

We explicitly encourage bragging to grant modest individuals the social permission to be more forthcoming with their achievements.

Tasks

  1. Send message.

  2. Await response.

  3. Assess the application and determine an outcome: continue or stop.

  4. Update the outcome for this stage in the applications spreadsheet.

  5. Notify the applicant of the outcome.

Message

We want to hear about something you've been making in the last year or so that demonstrates what you do well. Send us a short note telling us what it is and why this is the work that demonstrates your skills best. You have our permission to boast, and you ought to.

https://forms.office.com/r/HiJXBCtUmu

Assessment

  1. Are they in a supported country?
  2. Is the note clear, compelling, and demonstrative of the product, design, or technical expertise we need?

(Do not spend too much time gauging skill level, This will be done in later stages.)

Outcome notification templates

Continue: See message in Stage 2: Written Assessment.

Stop

Hi [Preferred Name],

Thank you for your application but we don't think we'd be a great fit for you right now. We don't share individual feedback but we were assessing:

  • Communication: We're looking for a very high standard of communication because we work asynchronously and remote.
  • Expertise: We're not at a size where we're able to mentor early career contributors so we're looking for significant experience.

Kind regards,

[Team Member's Name]

Stage 2: Written assessment

This stage assesses a candidate's language, analysis, design, and professional skills.

Tasks

  1. Send message.

  2. Await response.

  3. Create a folder for the candidate in the People document library.

  4. Create a new blank document and copy their submission into it, naming it 'Written Assessment Submission'.

  5. Create a new document using the template 'Written Assessment Score', naming it 'Written Assessment Score'.

  6. Assess submission by scoring against the rubric.

    If the overall score is > 1.2, the outcome is continue, otherwise the outcome is stop.

  7. Update the outcome for this stage in the applications spreadsheet.

  8. Notify the candidate of the outcome.

Message

Hi [Preferred Name],

I'm [Team Member's Name], [Role] at Primacy. Thanks for applying, we’d like to learn more about the work you have described so there's two things we'd like from you next:

1. See the work you described

Seeing the work will help us understand what you do.

You could share the app in the App Store, the code on GitHub, mock-ups on Behance, a video walkthrough of the work, or something similar. If you can't share the work itself, share sketches and descriptions of what it is.

2. Hear you describe your work in detail

Answering the following questions will help us understand how you do it.

Answer in a manner that would be understood by an early-career audience in your speciality. (i.e. Assume some knowledge of user interface design or software development, but not expert knowledge.) Answers can be as short as one sentence or as long as a paragraph.

About the design:

  1. What was the original problem or opportunity that inspired this work? (And any background material we might need to understand the problem space.)
  2. What is your solution's approach? (Summarize how your solution solves the problem.)
  3. How is your solution used? (If this is an app, briefly describe on the user's journey or workflow; if this is a library or tool, describe the interfaces, examples of use, and developer workflow if applicable.)
  4. What constraints did you have for the design?
  5. What system quality attributes were you designing for and why?
  6. What alternate solution/s did you consider?

About the implementation:

  1. Describe what you built. (If your focus is technical design, summarize the technical design of your solution. If your focus is visual design, summarize the user experience design of your solution. You can use text and diagrams.)
  2. What's a compromise or trade-off you had to make?
  3. If you had more time (say 20%) to develop it, how would you spend it?
  4. If you had less time (say 20%) to develop it, what would you have done differently?
  5. If you had a larger team to help you, what would we be seeing instead?
  6. What would change about the delivery if you were to work on something similar? (Delivery, as in the way you went from problem, to solution, to the solution being used by your user.)
  7. How did you, or might you, get feedback to assess how well your solution addresses the problem for the user?

Thanks again for applying, we're looking forward to hearing back from you. If you have any further questions from us, please feel free to ask at any point.

Kind regards,

[Team Member's Name]

Assessment

See the rubric in our Written Assessment Score template.

Outcome notification templates

Continue: See message in Stage 3: Work Trial.

Stop

Hi [Preferred Name],

We reviewed your submission, thank you for sharing it with us. Unfortunately, we don't think there's a great fit at the moment. We don't share individual feedback but we were assessing language, analysis, and design skills.

We lean toward cautious with our hiring. An ill-fitting hire is disruptive for everyone involved so we rather reject someone by mistake than hire someone by mistake.

Kind regards,

[Team Member's Name]

Stage 3: Work Trial

This stage assesses a trial team member's teamwork and product, technical, or design skills.

Tasks

  1. Select a potential commencement date.

    Selection depends upon upcoming work as we need to choose tasks that will make for a smooth onboarding but try between one and three weeks away.

  2. Send info message.

  3. Collect all the information requested under 'next steps' of the message.

  4. Create a Work Trial Agreement.

    1. Create a new document using the Work Trial Agreement template in the candidate's folder in the People document library.

    2. Update the COMMENCEMENT DATE and TERMINATION DATE using the collected information.

    3. Update the DAILY RATE using the formula Calculated Salary ÷ 52 ÷ 5, where the Calculated Salary uses the formula defined on our jobs page with the inputs of level and region from the collected information.

    4. Share this document with the trial team member, giving them edit permissions.

  5. Send agreement message.

  6. Create a new onboarding issue.

    Save the issue and then generate the initial tasks using '1-Click Child-Links' (under the 'more' button on the issue).

  7. Complete the issue's tasks prefixed with 'Prior:'. (See 'Azure DevOps task templates').

Info Message

Hi [Preferred Name],

Thank you for taking the time to respond to our questions. We'd like to try working with you to determine mutual compatibility.

The work is paid and we aim for about 60 hours total, spread across two to eight weeks. We can have work ready for you to start [Commencement Date]. This is very flexible so we can work within your availability. (You can start later if needed, and you could work full-time for a week or two hours every other Thursday — whatever works for you.)

We're hoping to use this time to get to know what it's like to work with you and let you experience what it's like to work with us. We won't be throwing obscure programming challenges at you, you'll be working on regular tasks as part of the team. (Though we'll be trying to order the work to make for a smooth onboarding experience.)

Next steps

  1. Please reply with your:
    1. availability for working with us,
    2. self-evaluated level,
    3. residential address,
    4. preference for permanent full-time employment or fixed-term contract work, and
    5. questions for us (if any).
  2. We'll send you a work trial agreement with a daily rate and work period for you to review and sign.
  3. We'll invite you to remote.com as a contractor for the work trial.
  4. We'll invite you to Slack, our chat app.
  5. We'll invite you to Azure DevOps, our work item tracker and code repository and assign an onboarding work item to introduce you to Primacy and get you started with a first task. (You'll need a personal Microsoft account while you're on trial and working as a contractor, but you'll get a Primacy account once an employee.)
  6. Work, work, work.
  7. Near the end of the work period, we'll chat about:
    1. whether you and we want to continue, and
    2. our evaluation of level and calculated compensation.
  8. At the end of the work period, you'll invoice us for time worked.

We primarily communicate via text but are happy to accommodate video chats too. A chat can be arranged before you begin, and/or recurring. We're generally available between the hours of 00:00 and 11:00 on weekdays (UTC).

Note: We're using remote.com for both contractors and employees.

Kind regards,

[Team Member's Name]

Agreement message

Hi [Preferred Name],

Our next step is for you to review the work agreement for the trial. If you're content, you can sign by typing your name in the provided space.

[Link to Work Trial Agreement]

The following three steps will be:

  1. We'll invite you to remote.com as a contractor for the work trial. (You'll receive an email invitation.)
  2. We'll invite you to Slack, our chat app. (You'll receive another email invitation.)
  3. We'll invite you to Azure DevOps, our work item tracker and code repository and assign an onboarding work item to introduce you to Primacy and get you started with a first task. (You'll receive an invitation to our Azure organization and potentially one more to our Azure DevOps organization. You'll need to accept both, in that order. If you belong to many Azure AD directories, make sure to switch to primacy.co otherwise you won't be able to access our Azure DevOps.)

Kind regards,

[Team Member's Name]

Azure DevOps task templates

❗ These are included here for ease of reading but need to be manually updated in Azure DevOps if they're changed.

Automation would be delightful!

onboarding trial-team-member 00

Title: Prior: Create first work item(s)

Description:

Find and document first work item(s) appropriate for an easy introduction to the code base. Work items should be:
<ul>
  <li>Isolated — one part of the code base with no dependencies</li>
  <li>Understood — you should know precisely what would be involved in completing it.</li>
  <li>Progressive — gradually getting more complex, less guided.</li>
</ul>

onboarding trial-team-member 01

Title: Prior: Create first pull request

Description:

Create the first pull request for the trial team member to review adding their name to the team member list.
(/areas/team/README.md).

onboarding trial-team-member 02

Title: Prior: Invite to Azure AD

Description:

Invite the trial team member to <a href="https://admin.microsoft.com/#/GuestUsers">be a guest user</a> in Azure AD and
add them to `Trial Development Team Members` security group.<br />
This will send them an invitation email and grant them access to developer resources.

onboarding trial-team-member 03

Title: Prior: Invite to Azure DevOps

Description:

Invite them to <a href="https://dev.azure.com/primacydotco/_settings/users">be a Azure DevOps user</a> with 'basic'
access and add them as a contributor to the Primacy team.<br />
(There is an automated rule in Azure DevOps to do this but it never seems to work.)

onboarding trial-team-member 04

Title: Invite to remote.com

Description:

Invite the trial team member to
<a href="https://employ.remote.com/dashboard/people/new/contractor">be a contractor on remote.com</a>.

onboarding trial-team-member 05

Title: Invite to Slack

Description:

Invite the trial team member to
<a href="https://try-primacydotco.slack.com">be a member of our (trial) Slack workspace</a>.

onboarding trial-team-member 06

Title: Prior: Assign issue

Description:

Assign this issue, the first pull request (as a required reviewer), and the first work item to the trial team member.<br />(Don't
assign each task of the issue and work item as they'll get a notification for each assignment.) Assign initial work
items (from the first task). Ensure this issue is prioritized over the initial work items so it appears first for the
trial team member.

onboarding trial-team-member 07

Title: Learn a little about us

Description:

Endure one of those (very professional)
<a href="https://juafrbxe8v.sharepoint.com/:f:/s/people/Ep8pg498ZYJKs0KS7Owvp_ABC-2FpdTpfzbd13HM4kt-Ow?e=V57gAH"
  >corporate video introductions</a
>.<br />

onboarding trial-team-member 08

Title: Pin or bookmark this dashboard

Description:

Pin or bookmark
<a href="https://dev.azure.com/primacydotco/Primacy/_dashboards/dashboard/d0e7738d-4933-4128-a3f3-b302f415899d"
  >this dashboard</a
>
for easy access. It's your starting point for your work day-to-day.<br /><a
  href="https://dev.azure.com/primacydotco/Primacy/_dashboards/dashboard/d0e7738d-4933-4128-a3f3-b302f415899d"
  >Overview dashboard - Overview (azure.com)</a
>

onboarding trial-team-member 09

Title: Give us some feedback

Description:

We'd like to hear about how this process has been for you so far. Please respond to
<a
  href="https://forms.office.com/Pages/ResponsePage.aspx?id=PX4YyO9_g0aFbqmAhS5eLVUlb7fcXmtNn-n99qWgzPhUNklBNjNKMFIxWVFKMFJCUFJRQTNFSUUwQiQlQCN0PWcu"
  >this survey</a
>, your answers won't affect your trial.

onboarding trial-team-member 10

Title: Review how we communicate and how we work

Description:

Review
<a
  href="https://dev.azure.com/primacydotco/Primacy/_git/primacy?path=%2fareas%2fhandbook%2fpages%2fcommunication.md&version=GBmaster&_a=preview"
  >how we communicate</a
>,
<a
  href="https://dev.azure.com/primacydotco/Primacy/_git/primacy?path=/areas/handbook/pages/product-workflow.md&_a=preview"
  >how we work</a
>
and
<a
  href="https://dev.azure.com/primacydotco/Primacy/_git/primacy?path=/areas/handbook/pages/protection-practices.md&_a=preview"
  >how we stay protected</a
>.

onboarding trial-team-member 11

Title: Clone our repository

Description:

Clone <a href="https://dev.azure.com/primacydotco/Primacy/_git/primacy">our repo</a> to your computer. You can use
<a href="https://docs.microsoft.com/en-us/azure/devops/repos/git/clone?view=azure-devops&amp;tabs=command-line"
  >these steps</a
>
for guidance.

onboarding trial-team-member 12

Title: Install prerequisites for developing locally

Description:

Install the prerequisites for developing locally as defined in
<a href="https://dev.azure.com/primacydotco/Primacy/_git/primacy?anchor=developing-locally">the README</a>.
<br />
You will not have access to AWS resources during the trial so ignore the prerequisites for developing with AWS.

onboarding trial-team-member 13

Title: Review your first pull request

Description:

Use the dashboard to find the pull request that's assigned to you, review it, and approve if you... approve. (And no
this is not a trick, you can likely just approve, but make sure we have your preferred name correct, etc.)

onboarding trial-team-member 14

Title: Make your first pull request

Description:

Add your bio (just a line or two is fine) to
<a href="https://dev.azure.com/primacydotco/Primacy/_git/primacy?path=/areas/team/README.md">the team members list</a>
and open a pull request. You can leave the reviewer list empty and someone will review it when they see it. Mark the
pull request as auto-complete if you're happy for it to be merged once approved.

onboarding trial-team-member 15

Title: Begin on work items and pull requests assigned to you

Description:

<p>
  Check what's already assigned to you via
  <a href="https://dev.azure.com/primacydotco/Primacy/_dashboards/dashboard/d0e7738d-4933-4128-a3f3-b302f415899d"
    >the dashboard</a
  >, then start on the first (topmost) work item (or pull request, if any).
</p>
<p>
  We understand that you're starting with next-to-no context or domain knowledge so we're keeping your work focused on
  one small area for now and we'll slowly grow it. We've tried to prioritize the work so each step builds upon the last,
  increasing in complexity. However, we might not have got this right, so ask questions if you feel lost.
</p>

Assessment

We assess work, communication, and effectiveness as described by our levels.

Feedback

Start

See onboarding trial-team-member 07.

Middle

Message Trial team members should be given direct, general feedback (i.e. not related to specific work) and feedback should be collected near the middle of the trial.

  1. Send message.

    We're about halfway through the trial so it's a good time to check in.

    [Direct and general feedback.]

    We'd like to hear about your experience so far.

    1. How clearly defined was your work for this week? 1 (disorientating) to 5 (clear and concise).
    2. What's gone well so far?
    3. What hasn't gone well?
    4. Is there anything you want to try different next week? (Either with the way we work or the work itself.)
    5. Do you have any questions for us?
  2. Add their responses into the Mid-Trial Feedback form. (We send a message instead of linking to the form because it's personal and gives an opportunity for the conversation to continue beyond the specific questions. We collect the responses because we still want to track how we're doing in aggregate.)

End

Share a link to 'Trial Feedback' from Microsoft Forms.

Stage 4: Employment or not

Trial team members should be informed of the offer or rejection one business day before TERMINATION DATE from their Work Trial Agreement.

They have contributed a significant amount of their time and regardless of the outcome, they deserve well-considered, personalized feedback.

This can be done via a direct message on Slack or via a video call if they had requested them.

Offer tasks

  1. Calculate the salary (Calculated Salary) using the formula defined on our jobs page with the inputs of level and region from the collected information in Stage 3.

  2. Update the team member record under 'Actual Compensation' in the Budget spreadsheet.

  3. Send the offer message.

  4. Unless the trial team member demurs, send a message to hello@remote.com stating:

    [Trial Team Member's Full Name] ([Trial Team Member's Email Address]) has been on a work trial with us since [Commencement Date] and a contractor in remote.com. We have made an offer of employment and would like to onboard them as an employee however they will still need to invoice us for the trial as a contractor. Could you please start the onboarding them as an employee without removing them as a contractor?

    (This is not yet supported in the remote.com web app.)

  5. Once the employment agreement has been executed (i.e. when the team member is listed as an employee in remote.com), continue with team member onboarding.

Offer message

Hi [Preferred Name],

[Personalized feedback]

We'd like to offer you the role of Software Developer at level [Level]. We'll be sending you an employment agreement with all of the details formally via remote.com for your review and consideration but it will take one week to process. So as a summary, the gross salary for this level in your region is [Calculated Salary] with [Regional Benefits].

If you're considering accepting, would you be willing to continue under the terms of the Work Trial Agreement until the employment agreement is executed?

Rejection tasks

  1. Send the rejection message.

  2. After termination date, remove access from:

    • Azure AD
    • Slack

Rejection message

Be candid, platitudes are transparent. Keep it short. Feedback should be constructive, phrased positively, and predominately referring to the criteria of the level.

You can use this template or craft something entirely personal.

Hi [Preferred Name],

[Personalized feedback]

Keep in mind — it's a complex domain and we've only spent a brief time with you; and we're being overly cautious during hiring because we're still small and every team member is a large change to the team. This means you may not have been given the chance to demonstrate everything we were looking for and we might reject someone by mistake.

We still have one more day allocated for our trial if there's work you'd like to complete. We'll be removing access to our systems after [Termination Date].