The best way to apply for a position with GitLab is directly through our jobs page, where our open positions are advertised. If you do not see a job that aligns with your skillset, please keep your eye on the jobs page and check back in the future as we do add roles regularly. Please be advised that we do not retain unsolicited resumes on file, so you will need to apply directly to any position you are interested in now or in the future.
Click on the position title that interests you! Please also refer to the country hiring guidelines to see if we are able to hire in your location.
You will be redirected to the vacancy description and application form, where you will be asked to fill out basic personal information, provide your resume, LinkedIn, and/or cover letter, and answer any vacancy-specific application questions, as well as answer a voluntary Equal Employment Opportunity questionnaire. While the EEO questionnaire has US in its title, it's open to all applicants from around the world.
Once you have finished, click "Submit Application" at the bottom.
Should you reach out to any GitLabbers on LinkedIn instead of or in addition to applying to our jobs page, you'll receive the following reply: "Thank you for your interest in GitLab. We would much rather prefer you apply for the position you have in mind directly via our Jobs page. This will ensure the right GitLabber reviews your profile and replies back to you! Unfortunately at this time, I can not refer you for the position as we have not had a chance to work together. To ensure we stay inclusive, I can also not influence your application".
You will be redirected to the vacancy description and application form, where you will be asked to fill out basic personal information, provide your resume, LinkedIn, GitLab username, and/or cover letter, and answer any vacancy-specific application questions, as well as answer a voluntary Equal Employment Opportunity questionnaire. While the EEO questionnaire has US in its title, it's open to all applicants from around the world.
Once you have finished, click "Submit Application" at the bottom.
Typical Hiring Timeline
These steps may vary role-to-role, so please review the hiring process per vacancy.
Prior to interviewing, the recruiting team will utilize our Applicant Tracking System (ATS), Greenhouse, to identify the most qualified candidates for the vacancy. The hiring team will also source for candidates that may not be actively looking. There are many factors to consider when reviewing resumes. Some of those factors can be aided through technology within the ATS, others require human eyes to evaluate the qualifications. There are several posts that reveal suggestions for reviewing resumes that our team may utilize. Greenhouse, Zip Recruiter and The BalanceCareers are three examples.
The employment team does a first round of evaluations by reviewing candidate resumes. The employment team will also refer to the country hiring guidelines before moving candidates forward. Disqualified candidates will be sent a note informing them of the rejection. There are templates in Greenhouse to assist, but messages can be tailored as appropriate. Make sure the message is professional and respectful.
Pre-screening Questionnaire: Some candidates will be sent a pre-screening questionnaire by the employment team relating to the position to complete and return to the sender. The questionnaire and answers are kept within the candidate's Greenhouse profile.
Team members who review the pre-screening questionnaire answers should refer to the GitLab private project that holds guides on how to review each of the questionnaires. Candidates who receive an assessment are moved to the "Assessment" stage in Greenhouse by a member of the Recruiting team and sent the questionnaire. The recruiting team also chooses a member of the hiring team to review the responses once they are submitted.
When a candidate returns their assessment, the recruiting team member who sent the assessment and the hiring team member who was chosen to review it will receive a notification. Once a reviewer submits the feedback for the assessment in Greenhouse, the recruiting team will be notified.
Candidates that have satisfactory assessment results may be invited to a screening call. Disqualified candidates will be sent a note informing them of the rejection.
If the candidate qualifies for continued consideration, one of our recruiters will conduct a screening call using Zoom and scheduling it via Greenhouse.
A member of the employment team will move the candidate to the "Screening" stage in Greenhouse. They will reach out to the candidate to collect their availability and then send out calendar invitations to both the interviewer and candidate.
Our recruiters will do a screening call; depending on the outcome of the call, the recruiting team or manager may either reject a candidate or move the candidate to the team interview stages in Greenhouse.
The recruiter will wait 5 minutes for the candidate to show up to the appointed video call link, which is always shared with the candidate via email. If the candidate does not show up to the interview or reach out in advance to reschedule, the candidate will be classified as a "no show" and be disqualified.
The recruiter, hiring manager, or candidate can terminate the discussion early at any point during the interview if either party determines that it isn’t a fit. Be as transparent and honest as possible and provide feedback.
After the screening call, the recruiter will verify that the candidate is not on any known Denied Party List. If the candidate is on a list, the application process will end.
Behavioral interview: Some roles include a behavioral interview with a team peer or leader. Behavioral interviews may be conducted as panel interviews.
Further interviews: All interviewers will assess the candidate's values alignment by asking behavioral questions and scoring the values alignment as part of their feedback form in Greenhouse. Additional interviews would typically follow the reporting lines up to the CEO. For example the technical interview may be conducted by an individual contributor, with subsequent interviews being conducted by the manager, director, executive team member, and then potentially the CEO.
The candidate should be interviewed by at least one female GitLab team member. The GitLab team understands the importance of Inclusive interviewing, and we thrive to ensure our hiring team is well versed in every aspect of Diversity, Inclusion and Cultural competence. A positive and comfortable candidate experience is priority.
Interviewers will follow the same "no show" policy as the recruiters. If a candidate does not show up or reach out to the team, they will be disqualified.
All interviewers will complete interviewing training, which will be assigned to them from the recruiting team and can be found in the People Ops Training issue tracker.
References: The hiring manager or the hiring team will contact references for promising candidates. References will be collected towards the end of the interview stage for final candidates, and they must be checked before an offer is made.
Three references will be requested, but at least two references need to be completed, and at least one needs to be a past manager.
The recruiting team will move the candidate to the "Reference Call" stage in Greenhouse, and email the candidate to request their references' contact details.
After the reference checks are completed, the person performing the reference check will input a scorecard in Greenhouse with their findings.
Offer package: After reference calls are completed successfully, the recruiting team moves the candidate to the "Offer" stage and submits the offer package in Greenhouse for approval.
CEO interviews: The CEO may choose to interview candidates in a last round interview after reviewing the offer package. However, director level and above candidates will always interview with the CEO for at least 90 minutes prior to the offer package being created and submitted.
The recruiter, hiring manager, executive, or CEO should make an offer verbally during a call with the candidate, and it must always be quickly followed by a written offer email, prepared by the recruiting team, and an official contract as described in the section on preparing offers and contracts.
The recruiting team will, if applicable, add language to the contract that states that employment or engagement is contingent on a valid work permit or visa. A start date should factor in that the approval of a new work permit may take several weeks.
Note that, when scheduling a start date, People Ops requires at least 3 days notice from the receipt of an executed offer until the GitLabber's proposed first day.
The manager follows up to ensure that the offer is accepted and that the contract is signed.
Calls can last anywhere between 10 and 30 minutes, depending on the conversation.
Example questions include:
Why are you looking for a new position?
Why did you apply with GitLab?
What are you looking for in your next position?
Why did you join and leave your last three positions?
What is your experience with X? (for each of the skills listed in the position description)
STAR questions and simple technical or skills-related questions
What is your current location and do you have any plans to relocate? (relevant in context of compensation, country-hiring guidelines, and in case an offer would be made)
Do you require visa sponsorship or a work permit to work for GitLab?
What is the notice period you would need if you were hired?
What are your compensation expectations?
At the end of the screening call, the candidate should be told what the next steps would be and the timeline. An example message would be:
"We are still reviewing applications, but our goal is to let you know in 5 business days from today whether you've been selected for the next round or not. Please feel free to ping us if you haven't heard anything from us by then."
Moving Candidates Through The Process
In an effort to streamline the hiring process, improve the candidate experience, and hire talent faster, best practice is to coordinate interview times so that candidates can complete the process within 2 days. Just as if we were to interview candidates in-person at an office, we wouldn’t make them come back 3, 4, or even 5 times. The initial screening call and optional CEO interview are not considered to be part of the 2-day goal.
Those on the interview team should prioritize the interview in their schedules. If it means you have to miss an already scheduled or recurring meeting, please consider participating in the interview a priority and reviewing notes from the missed meeting agenda afterwards instead. Hiring an amazing team is critical for GitLab, and how we spend our time shows where our priorities are.
Maintain candidate confidentiality. All candidate names and details are kept confidential within the hiring team to avoid bias or the potential to jeopardize a candidate's current employment as well as to maintain data protection. The only people who should have access to details about candidates are Recruiting, People Ops, the hiring manager(s), approved interviewers or reviewers within that team, the executive of the department, the legal team, the CFO, and the CEO.
Exceptions to this rule include when an existing team member refers the candidate or when the candidate intentionally reaches out to someone at GitLab. Even then, the team member should know only their name, that they are interested in GitLab, and, if they are a referral, what stage they are in.
Do not include identifying personal details in your feedback notes for a candidate.
Anytime you want to discuss a current, past, or potential candidate, please do so privately (whether in a private Slack channel/message, email, or within Greenhouse). If you have access to it, you can also provide the direct Greenhouse link and avoid mentioning names or identifying details.
Emails from the candidate are synced on our ATS, and for that reason, the entire hiring team for that position has access to it. Remember to ensure any sensitive information is marked as secret/private in the candidate profile.
Remember to inform candidates about what stage they are in. For example, if in the hiring process for the particular position / team you've agreed that there will be four stages, be sure to inform the candidate of where they are in the process during each call / stage: "You are in stage X and will be moving to stage Y next." Some brief feedback from the previous stage can also be included to help the candidate gauge their progress. If there will be additional or fewer stages than expected, be sure to let the candidate know so they are aware of where they are in the process.
The process can differ from team to team and from position to position. If a candidate submits a resume to a particular open position and is being considered for another open position, send a short note to update the candidate and get their approval as well as to inform them that their process may be slightly different than previously expected or delayed. If the roles are on different teams, the candidate will ideally only move forward with one, depending on their interests and qualifications. If the candidate is being rejected for one or all of the positions they applied for, they will be notified of which vacancies they are being rejected for.
Recruiters will schedule the next person in the process. Someone on the recruiting team will move candidates forward to the next person in the hiring process if the candidate has received positive feedback.
Compensation is discussed at start and end but not in between. Compensation expectations are asked about during the screening call. If the expectations seem unworkable to the manager or recruiter (based on what had been approved by the compensation committee at the creation of the vacancy, then the recruiter can send a note to the candidate explaining that salary expectations are too far apart, but they should also ask how flexible the candidate is and if they would consider adjusting their expectations. If expectations are aligned, then the topic of compensation should not re-surface until an offer is discussed internally. Following this guideline avoids conflating technical and team interviews with contract discussions and keeps the process flowing smoothly.
If the manager has a question about compensation, please ping the People Ops Analyst for review. If the question needs to be escalated, the People Ops Analyst will add the Chief Culture Officer to the conversation.
An approval team authorizes all offers. The manager proposes a suggestion for an offer (including bonus structure if applicable, etc., using the global compensation framework) as a private comment in Greenhouse and informs the recruiting team on its details depending on what is applicable. The recruiting team will create an offer package to present to an approval chain consisting of the People Business Partner, executive of the division, and Chief Culture Officer for approval. Verbal offers should not be extended to the candidate until the offer is approved. The CEO may choose to interview the candidate, and any offers given before the CEO's approval are premature.
GitLab Executive Interview Scheduling Process
Recruiter moves candidate to Executive Stage in Greenhouse
Recruiter pings Executive Assistant for options in the Greenhouse note section (including any relevant details such as internal or high priority)
Executive Assistant will ping the Candidate Experience Specialist in the Greenhouse note section with approximately 3 interview options
Candidate Experience Specialist sends Candidate suggested times using the Candidate Availability for Executive Interviews template
Candidate Experience Specialist schedules after Candidate responds and sends out interview confirmation email in Greenhouse
Note: When scheduling CEO interviews the process may vary
Conducting a GitLab Interview
Interviewing is hard for both sides. In less than one hour, you both need to get to know each other and make a decision about whether or not you would want to work with this person. The following is an effort to provide a set of guidelines to make interviewing a bit less traumatizing for all involved parties
So you are about to interview folks for a job at GitLab? Please take a moment to carefully read this document on keeping it relevant and legal, including a self-test (please note this document is internal to GitLab while we edit it to make it fit for general audiences). Be aware of the kinds of questions you can and can't ask. For example, if there is a gap in employment history on a CV, you may ask the candidate what they did during that time to keep their skills current. You may not ask why they were absent from work as it may be related to a medical or family issue, which is protected information.
When discussing the interview process with candidates, it is encouraged to set the context for the interview by providing links to the handbook, explaining if the interview will be a behavioral or technical in nature, etc. GitLabbers should not, however, prep candidates for specific interview questions.
New internal interviewers will partake in interviewing training, which will be assigned by the recruiting team. As part of the training, team members will shadow an interviewer and be shadowed by one in order to make sure all GitLabbers are following our interviewing processes and creating an excellent candidate experience. The interviewer who will work with the team member should be aligned with either their timezone or the role they'll be helping interview for. Feel free to ping @gl-hiring in your training issue if you are not sure which interviewer to contact, or send a message in the #recruiting channel in Slack.
It is typically expected for new hires to focus on and complete their onboarding for at least two weeks before being part of an interview team for any vacancies. There may be extenuating circumstances where a team member needs to participate in interviewing sooner than this, but they should always complete the interviewing training and discuss the vacancy thoroughly with their manager and the recruiter prior to being on an interview team.
Before The Interview
Screening - writing a good resume is an art, and not many people master it. When you read a resume, look for evolution rather than buzzwords, and, if something sparks your curiosity, prepare to ask about it during the interview.
If the process before the interview is taking too long, reach out to the candidate, apologize, and explain what is going on. It is really frustrating to not hear anything from the other side just to have the conversations resume later as if nothing had happened. Show respect for the candidate's time.
During The Interview
As candidates move through the interviewing process, interviewers take notes within Greenhouse. As they move through the process, interviewers have the opportunity to review any specific notes previous interviewers have left for them, although the full feedback notes from previous interviewers are obscured from current ones in an effort to avoid creating bias. Hiring managers, executives, and people ops are able to see all feedback notes at any time.
There is an unbalanced power relationship during the interview, and interviewers should be mindful of this fact. The interviewer is in a powerful position: they will decide if the candidate will move forward or not. Be as friendly and approachable as you can. Be frank about what is going on, and set clear expectations: tell it like it is. This has the added value of getting people comfortable (over time) and allows you to get much better data.
Communication is really hard, so don't expect perfect answers. Every person is different, and they may say things differently than what you expect or how you might say them. Work on interpreting what they are trying to say rather than demanding them to explain it to you. Once you have an answer, validate your assumptions by explaining what you understood, and allow the candidate to correct your understanding of the story.
Don't go checking for perfect theoretical knowledge that the interviewee can google when needed during regular work or expect them to master over the course of a 30-minute conversation a problem that took you 2 months to dominate. Be fair.
Aim to know if, at the end of this interview, you want to work with this person.
Interview for soft skills. Really, do it! Pick some behavioral questions to get data on what the candidate has done before and how their behavior aligns with the company values. We are all going to be much happier if we naturally agree on how things should be. You will be asked to evaluate how the candidate's values align with our own in your feedback form, and asking behavioral questions is the best way to assess this.
Consider having more people interviewing with you since different people see and value different things. More data helps you make better decisions and is a better use of interview time for both the candidate and the company.
If a candidates demonstrates mastery in one area but continues to spend time in that area, gracefully redirect the conversation to another area that is still in question. You don't want to walk away from an interview and only know they're great in one dimension but still have open questions in other important dimensions. Check previous interviewer comments to see if they missed any areas that you should dig in to.
If there's a hint that a candidate might be avoiding a topic or aspect that is a requirement for the position, dig in. e.g. if someone talks high level about a technical problem, but you need them to understand and communicate technical details, make sure they can.
Always let the interviewee ask questions at the end, and be frank in your answers.
Considerations for interviews with technical applicants
Try to get a real sample of work, which we typically do for developers during a technical interview. Avoid puzzles or weird algorithm testing questions. Probing for data structures is fine as long as it is relevant to the job the person is going to do.
Be mindful of the background of the candidate. Someone who knows 10 languages already (and some languages in particular, Perl for example) may pick up Ruby in a second if given the right chance. Don't assume that someone with a Java background will not be capable of moving to a different stack. Note that individual positions may have stricter requirements; the Backend Engineer position requires Ruby experience, for example.
Consider including non-engineering GitLabbers in the interview to ask soft skills questions. Because technical people should be capable of talking to non-engineering people just fine, we should assess the candidate's ability to do so.
If a candidate re-applies after rejection
There may be situations where a candidate goes through the interview process but is not offered a position at GitLab, but we are interested in revisiting the candidate later on for either the same or different position, or a candidate reapplies later on and is a better fit at that time than they were earlier. If the recruiter for the role and the hiring manager are aligned that the previous rejection reason is not still applicable, the recruiting process may resume from where it previously was, with the addition of a few interviews at the discretion of the recruiter and hiring manager. If it has been more than 6 months or the interview process has significantly changed, it may be more prudent to restart the interview process entirely. Meanwhile, due to GDPR, we anonymize all personal candidate data 60 days after they are archived in Greenhouse. With the candidate's consent, it is possible to search for the anonymized candidate's previous profile by using filters/keywords to review the previous rejection reason and interview feedback and to un-anonymize the candidate in order to continue the hiring process.
Candidate Performance Evaluation
The goal of behavioral questions is to get the candidate to share data on past experiences. Previous behavior is considered the most effective indicator of how a person is going to act in the future. It is important to remember that skills and knowledge can be learned easier than habitual behaviors can be changed, especially when candidates are unaware of the impact of the undesired behaviors.
The questions are usually in the form of:
Can you tell me about a time when…?"
The kind of answer that we are looking for is to get a story that is structured following the Situation, Task, Action, and Result (STAR). Ask for an overview, an executive summary, of the case at hand. Try to avoid lengthy answers from the candidate at this stage.
Some things to pay attention to:
What the candidate chose to highlight in their response as important
Is it clearly explained? Is the story well told? If it is a technical story and you are a non-technical interviewer, are things being explained in a way that is easy to understand?
Is there a result or was the story left unfinished? Is it still going on?
Was the result measured in any way? How does the candidate validate the result matched the expectation? Was there an expectation set to begin with?
There is no right answer; what matters here is to listen to the candidate and gather data on how they are telling the story.
Once you have your notes, tell the candidate what you understood, repeat the story, and let them correct you as needed.
After gaining a high-level understanding of the case, we will want to dive deeper into the details. The objective of this step is to understand and detail the exact contributions a candidate has made to an effort which led to results. We will take a reverse approach to the STAR question structure presented earlier.
The key to analyzing each of the reverse-STAR steps is to ask What, Why, How, and Who at each step of the process. This will let the candidate paint a very clear picture of the situation, their ownership of the idea/solution, and their decision process in key pivotal moments. Reverse the order of the STAR structure, and drill up from results to the situation as a whole. Find the answer to the following questions:
What was the goal to achieve or the problem to overcome? What was the expectation? Was the goal defined from the get-go?
How was the result measured? Why was it measured that way?
What steps or process was followed to achieve the result? List them together with the candidate
Who else was working with the candidate? Was the candidate working alone?
What role did the candidate have in the team if they did not work alone on the project? Was the candidate in charge of specific tasks? Who decided on task assignments? What was their impression of the tasks? How were the tasks decided on?
For the tasks discussed above, understand if there were resources that helped the candidate and at what capacity. How were those chosen and why?
These questions can be quite unbalancing and can increase the stress during the interview. Again, be kind and help the candidate understand what you are looking for, and provide an example if one is needed when you notice the candidate is blocked.
It can also happen that the candidate does not have a story to share with you; that is okay. It's just another data point that should be added to the feedback (I failed to get data on …). Just move to the next question and be sure to have a few questions as a backup.
Always leave feedback; this will help everyone to understand what happened and how you came to your decision. In Greenhouse, you will use an "interview kit" when interviewing a candidate, which has text for feedback and scorecards for skills and values.
Strong Yes - Very likely to hire (meets most requirements, aligns with values)
Yes - Semi-inclined to Hire (may meet some requirements, has some yellow flags)
No - Not likely to hire (meets few requirements, has many yellow flags, may not align with values well)
Strong No - Would not hire (does not meet requirements, red flags, not aligned with values)
Please reach out to the recruiting team with any questions.
At any time during the hiring process the candidate can be rejected.
The candidate should always be notified if and when they've been rejected. The employment team is primarily responsible for declining the candidate, but the hiring manager should be prepared to let the candidate know why they were declined if they had progressed to the team or manager interviews. The hiring manager can also share this feedback with the recruiting team, who will relay it to the candidate.
We only provide feedback for candidates who have passed the first interview stage and met with the team or hiring manager. If the candidate asks for further feedback, only offer frank feedback. This is hard, but it is part of our company values.
All feedback should be constructive and said in a positive manner. Keep it short and sweet.
Feedback should always be applicable to the skill set and job requirements of the position the candidate applied and interviewed for.
If you feel uncomfortable providing feedback for whatever reason, reach out to the recruiting team for assistance.
Suggested feedback format: "The reason we don't think you're the best match for this position is __ . We are impressed with your skill in __ . That we decline you doesn't mean that you are not a good fit for this position. We receive over 1000 applications per month and have to decline almost all candidates. Both Facebook and Twitter rejected the founder of Whatsapp (https://www.adweek.com/digital/whatsapp-facebook-twitter-brian-acton/). We don't think we'll do any better and look forward to hearing from you after landing a better job or starting a successful company. Thanks for your interest in working at GitLab." This format can be used as a guideline to help candidates understand our decision, but should be personalized / customized to fit each situation. Personalization in communication with candidates is encouraged.
If people argue with the feedback that we provided:
Do not argue with or acknowledge the validity of the contents of the feedback.
Share their feedback with the people involved in the interviews and the decision.
Template text: "I've shared your feedback with the people involved in the interviews and the decision. We do not expect to revert the decision based on your feedback. In our hiring process we tend to error on being too cautious. We would rather reject someone by mistake than hire someone by mistake since a wrong hire is much more disruptive. Organizations can reject people with great potential (https://www.adweek.com/digital/whatsapp-facebook-twitter-brian-acton/) so please don't be discouraged from seeking a great job."
The employment team may send out an inquiry to candidates to gather feedback after they have exited the hiring process.
The recruiting team will review all feedback and use it to improve the hiring process.
We recorded a training on this subject:
Reference Check Process
Why Should Hiring Managers Check References
We recorded a training on this subject here:
In short, hiring managers check references:
To ensure we are hiring the right candidate.
To understand under what circumstances this candidate thrives vs. what circumstances frustrates them.
As the hiring manager, you will be the closest to the GitLabber and benefit most from learning about them.
To build your network.
As a hiring manager, you need to build a network for great talent. Each reference you talk to can be a part of that network.
To use the opportunity to spread the GitLab story. We could spark new customers and new GitLabbers.
All GitLab hiring managers should be making the best effort to complete and conduct the reference checks for their candidate.
When a candidate passes the initial screening and first rounds of interviews, but before they advance to meet with senior leadership, the recruiting team will reach out to the candidate to collect their references' details. The candidate will be asked to provide three references, at least one of which should be a former or current manager. At a minimum, two references should be completed. Once the recruiting team receives the references' details, they will inform the hiring manager, who should reach out and contact the references provided. If it is not possible to schedule a call via phone, a Hangouts or Zoom meeting can also be arranged if it's convenient. If that is not possible, an email can be sent with the following questions:
Can you briefly describe your working relationship with them?
What are they like to work with?
What can they improve upon?
What advice would you give their next hiring manager?
Would you rehire this person?
You can also elaborate further and ask follow up questions if the opportunity arises. The hiring team will be adding engineering questions into Greenhouse so that all engineering hiring managers have access to the same ones. Additionally, the hiring team will work with each function to identify any other specific questions hiring managers would like to add to Greenhouse for their team.
You should not ask any questions about the person's race, gender, sexual preference, disabilities or health, political affiliations, religion, or family (children). Example questions not to ask:
Who watches their children while they are at work?
What types of groups does the candidate belong to that are not work related?
All reference check feedback should be entered into Greenhouse using the Reference Checks scorecard. To add this information, go to the candidate's profile, make sure they are in the "Reference Checks" stage, and click "Collect Feedback".
It is the hiring manager's responsibility to do the reference checks, but the hiring team may also provide assistance and guidance. You can also refer to these guidelines.
Increasingly, organizations have a company policy that prevents their employees from providing references; instead, they are only able to verify employment, including dates of employment and title. Do not judge a candidate because his or her former employer has this policy: it does not mean the candidate was not successful. Instead, go back to the candidate to get the name and contact information for an alternative reference.
The recruiting team may also ask candidates if they've worked with anyone in the past who currently works at GitLab or knows someone at GitLab that we could talk to.
Concurrently with the reference checks, the recruiting team will begin a background check on the candidate. When the recruiting team initially requests the candidate's reference details, they will also begin the background check process and inform the candidate.
After the Interviews
If, at the completion of the interview process, both the candidate and the hiring team wish to move forward with the candidate's application, an offer will need to be prepared.