[{"data":1,"prerenderedAt":1514},["ShallowReactive",2],{"/blog/the-trouble-with-technical-interviews":3,"navigation-en-us":727,"banner-en-us":1155,"footer-en-us":1165,"blog-post-authors-en-us-Sara Kassabian":1410,"blog-related-posts-en-us-the-trouble-with-technical-interviews":1424,"blog-promotions-en-us":1450,"next-steps-en-us":1504},{"id":4,"title":5,"authors":6,"body":8,"category":705,"date":706,"description":707,"extension":708,"externalUrl":709,"faq":709,"featured":710,"heroImage":711,"meta":712,"navigation":713,"path":714,"seo":715,"slug":720,"stem":721,"tags":722,"template":725,"updatedDate":709,"__hash__":726},"blogPosts/en-us/blog/the-trouble-with-technical-interviews.md","The trouble with technical interviews? They aren't like the job you're interviewing for",[7],"Sara Kassabian",{"type":9,"value":10,"toc":673},"minimark",[11,22,27,30,34,37,40,44,47,54,57,60,73,76,79,83,92,96,99,102,106,109,112,151,156,189,193,196,199,225,229,232,235,238,241,245,248,251,254,257,260,272,275,279,282,285,289,292,295,298,306,310,313,316,319,323,368,372,375,378,381,404,408,417,425,428,432,443,457,460,464,467,470,473,476,482,485,489,493,496,505,511,514,527,530,534,542,548,551,558,564,567,574,582,585,589,592,595,598,601,604,607,611,614,646,652,660],[12,13,14,15,21],"p",{},"Interviewing for an engineering job in the tech world can mean ",[16,17,20],"a",{"href":18,"rel":19},"https://stackify.com/devops-interview-questions/",[],"you’ll be asked all sorts of questions",". Sometimes, the job interview questions can be pretty straightforward: “Tell me about a time that you have implemented an effective monitoring solution for a production system.” Other times, the questions are impossible to answer and designed to spark your creativity: “How many windows are in New York City?” After passing the initial interview, the applicant or candidate graduates to the next tier of interviewing: The often-dreaded technical interview.",[23,24,26],"h2",{"id":25},"what-is-a-technical-interview","What is a technical interview?",[12,28,29],{},"A technical interview is one that is conducted to gauge a candidate’s skill level for positions in the information technology, engineering, and science fields. It may also determine how much a candidate knows in more niche areas of a company, such as marketing, sales, and HR.",[23,31,33],{"id":32},"how-to-prepare-for-a-technical-interviews","How to prepare for a technical Interviews",[12,35,36],{},"Prospective engineers often face a challenge when it comes to preparing for the technical interview, largely because there is no playbook for how companies set them up technical. It’s unclear whether to prepare by memorizing many different topics, or focusing on specific projects. Is it better to practice with a computer or a peer engineer? There are an overwhelming number of resources available online, but with little clarity as to what the standard is for a technical interview and little guidance from the company on what to expect, most of the time engineers start technical interviews in the dark.",[12,38,39],{},"Inconsistencies in the technical interview process isn’t just a job candidate problem. In fact, many companies struggle to set up a technical interview process that is effective, equitable, and allows the hiring manager to compare candidates. The problem with technical interviewing compounds when a company is experiencing rapid growth.",[23,41,43],{"id":42},"what-are-the-challenges-of-conducting-technical-interviews-at-a-growing-company","What are the challenges of conducting technical interviews at a growing company",[12,45,46],{},"\"Imagine you had a hiring target of doubling your team size and all your interviews are conducted remotely. Welcome to GitLab,\" says Clement Ho, frontend engineering manager on the Monitor: Health team at GitLab.",[12,48,49],{},[50,51],"img",{"alt":52,"src":53},"Hiring chart shows GitLab more than doubled the number of hires from around 400 in 2019 to roughly 1300 by end of 2020","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398274/blog/Content%20Images/fei_hiringchart.jpg",[12,55,56],{},"GitLab more than doubled the number of hires from around 400 in 2019 to roughly 1300 by end of 2020.",[12,58,59],{},"We identifed three core challenges with orchestrating technical interviews as GitLab grows.",[61,62,63,67,70],"ol",{},[64,65,66],"li",{},"We didn't have enough interviewers for the pipeline of candidates.",[64,68,69],{},"Our technical interviewing process was inconsistent and even a little biased.",[64,71,72],{},"It was difficult to measure whether or not we were raising the bar.",[12,74,75],{},"\"And by raising the bar, I mean making sure each candidate that joins the team makes the team better,\" says Clement.",[12,77,78],{},"These problems are by no means unique to GitLab. Any engineering company that is scaling rapidly will encounter some growing pains when it comes to hiring, and many will end up falling back on some of the typical models for conducting technical interviews.",[23,80,82],{"id":81},"the-typical-technical-interview-methods","The typical technical interview methods",[12,84,85,86,91],{},"During his talk, ",[16,87,90],{"href":88,"rel":89},"https://www.youtube.com/watch?v=jSbCt8b_4ug",[],"\"Using GitLab to Power our Frontend Technical Interviews\" at GitLab Commit San Francisco",", Clement explained the four different techniques that are often employed in technical interviews. Each method comes with advantages and disadvantages from the perspective of the hiring manager.",[23,93,95],{"id":94},"what-are-good-technical-interview-questions","What are good technical interview questions",[12,97,98],{},"A good technical interview needs to be about more than practical skills – it’s about the whole package.A candidate should possess the ideal coding skills but also be a team and culture fit and be able to discuss developer topics efficiently. A technical interview should include both situational interview questions and a skills assessment to discern a candidate’s potential.",[12,100,101],{},"The types of questions to ask can concern a candidate’s technical abilities and background, their career journey so far, and queries specific to the team or company.",[23,103,105],{"id":104},"types-of-questions-asked-during-a-technical-interview-and-their-purpose","Types of questions asked during a technical interview and their purpose",[12,107,108],{},"Even though employers have already reviewed your resume and cover letter, they will want you to flesh that out during the interview to learn more about how you attained those skills. In order to assess your level of experience, they will likely also ask you to provide concrete examples from prior jobs.\nMake sure you are prepared—do your research on the company and the type of questions you may be potentially asked. This will help build your confidence level and reduce any nervousness you might feel. It’s also an opportunity for you to set yourself apart from other candidates by showcasing your knowledge and additional skills you can bring to the job.\nIt is important to be honest about your skill set because that is something employers value. You may find the company will be willing to hire someone who is transparent about the areas where they need to improve and where they’d like to gain more skills.",[12,110,111],{},"Examples of common questions to expect in a technical interview:",[113,114,115,118,121,124,127,130,133,136,139,142,145,148],"ul",{},[64,116,117],{},"What coding languages are you most familiar with?",[64,119,120],{},"What is your experience with Kubernetes with a specific example?",[64,122,123],{},"What’s the purpose of continuous integration in an automated build?",[64,125,126],{},"How have your previous technical roles prepared you for this job?",[64,128,129],{},"Tell me about a time when you received an unexpected assignment: how did you react, and what did the experience teach you?",[64,131,132],{},"Please provide more details about your educational background and how it prepared you for this position.",[64,134,135],{},"How did you go about teaching yourself a necessary technical skill while you were working on a project?",[64,137,138],{},"What are your strengths, and where do you think you need to improve your skills?",[64,140,141],{},"Do you have any technical certifications?",[64,143,144],{},"Please detail the work you did on the project you are most proud of.",[64,146,147],{},"What are your favorite and least favorite tech tools, and why?",[64,149,150],{},"What are the pros/cons of working in an agile environment?",[152,153,155],"h3",{"id":154},"sample-technical-interview-questions-and-answers","Sample technical interview questions and answers",[113,157,158,165,171,177,183],{},[64,159,160,164],{},[161,162,163],"strong",{},"How do you stay current with your technical knowledge and skills?"," It’s a good idea to list online content you use to educate yourself, as well as tutorials and conferences you have attended to gain more knowledge. Perhaps you have also worked closely with vendors or attended sessions to learn about new product features.",[64,166,167,170],{},[161,168,169],{},"How do you troubleshoot technical problems?"," Discuss the steps you take when you are answering a question. This will give employers a sense of how you problem-solve, and it provides a good overview of how well you understand the relevant concepts. Even if you don’t answer a question correctly, it will show the interviewer your process and reasoning, which are also important. You can mention resources you use, such as GitLab and Stack Exchange, as well as the developer community and any publications you read for advice.",[64,172,173,176],{},[161,174,175],{},"What is your level of experience with the software programs mentioned on your resume?"," Describe how many years you have used the tools, your impressions of them, and bring up the companies you used them at, with specific examples.",[64,178,179,182],{},[161,180,181],{},"What programming language are you most proficient in?"," You should discuss how you have become proficient in this language and why it is the one you are most comfortable using. You can also cite other languages you are familiar with.",[64,184,185,188],{},[161,186,187],{},"Describe a time you made an error and how you resolved it."," Don’t use an example of an egregious error since that may put you in a negative light. Be sure to emphasize that you took responsibility and acted with integrity, and did whatever it took to resolve the issue.",[23,190,192],{"id":191},"what-are-some-soft-skills-and-coding-skills-to-highlight-in-a-technical-interview","What are some soft skills and coding skills to highlight in a technical interview",[12,194,195],{},"A technical interview assesses your technical expertise, coding skills, and ability to fit into a team. However, soft skills are just as important and often aid in the development of more technical skills – particularly in a team setting.",[12,197,198],{},"As the technical interview progresses, be prepared to tackle some questions about soft skills like:",[113,200,201,207,213,219],{},[64,202,203,206],{},[161,204,205],{},"Communication skills:"," How does the candidate contribute to group discussions, confront problems, or give and receive feedback?",[64,208,209,212],{},[161,210,211],{},"Organizational skills:"," What are the ways in which the candidate provides visibility into their work processes and their methods of staying on task?",[64,214,215,218],{},[161,216,217],{},"Collaboration skills:"," Are they interested in helping their teammates? What do they think are the keys to successfully navigating a team project? How have they collaborated on past projects?",[64,220,221,224],{},[161,222,223],{},"Creative problem solving:"," How do they work through a problem in a project? Do they use both analytical and creative thinking to come up with solutions?",[152,226,228],{"id":227},"how-to-prepare-for-verbal-technical-questions","How to prepare for verbal technical questions",[12,230,231],{},"There are countless articles online that try to prepare job candidates for a verbal technical interview, but whether this method truly effective for evaluating the technical competency of a software engineer is debatable.",[12,233,234],{},"In the typical scenario, the interviewer asks the candidate to describe a technical concept and tries to measure their fluency in said concept based on the quality of the conversation.",[12,236,237],{},"The advantage of this method is that the interviewer can understand how the candidate communicates, which is of particular importance when the engineering team is all-remote, as is the case at GitLab. The drawback? Being a good communicator does not necessarily mean the candidate knows how to code effectively.",[12,239,240],{},"\"So I've interviewed candidates that could talk the talk, but they couldn't really write the code,” says Clement. \"And that's not a great situation for an engineer to join GitLab.\" Clement’s team has moved away from using verbal technical questions as a method for evaluating candidates.",[152,242,244],{"id":243},"live-coding-exercises","Live coding exercises",[12,246,247],{},"One of the more popular methods for evaluating engineers is through live coding. While it allows the evaluator to see how engineering candidates answer data structure questions, it also has its disadvantages.",[12,249,250],{},"A key advantage of live coding data structures is that it offers a fairly consistent measurement and evaluation.",[12,252,253],{},"\"I can talk to another manager or another interviewer and be able to communicate, 'Hey, this person wasn't able to do a linked list, they got stuck here. They weren't able to understand a runtime efficiency here.' So it's pretty consistent,\" says Clement.",[12,255,256],{},"But the ability to create data structures is not always the best indicator of ability. Oftentimes engineers with a very traditional background or recent graduates will shine here, but someone who is more senior and able to do a lot of great things, but is perhaps not as brushed up on data structures, may struggle.",[12,258,259],{},"Live coding interviews probably aren’t going anywhere fast, but the pitfalls of this method are well documented by engineers and hiring managers. Brennan Moore, a product engineer in New York City, explains why he does not conduct live coding interviews when evaluating a prospective candidate:",[261,262,263],"blockquote",{},[12,264,265,266,271],{},"\"Much like the SAT when applying for college, live coding is a structured test. I didn’t go to a school that trained me to do live coding, and so will probably fail the test. As I’ve experienced it, live coding isn’t the meritocratic space that it pretends to be. Live coding interviews weed out the people who are good at live coding interviews,\" says Brennan in his ",[16,267,270],{"href":268,"rel":269},"https://www.zamiang.com/post/why-i-don-t-do-live-coding-interviews",[],"blog post",".",[12,273,274],{},"At GitLab, we found that live coding exercises don't accurately represent engineering capability. Oftentimes, a recent computer science graduate will outperform a more senior candidate with a lot of valuable experience. In summary, live coding exercises will often disadvantage more senior candidates, people who are nervous in high-pressure situations (read: everyone), and advantages more junior engineers or people who have practiced live coding.",[152,276,278],{"id":277},"digital-prompt","Digital prompt",[12,280,281],{},"A third common method for evaluating candidates is to ask the engineer to code a UI using an online editor while on screen share with the evaluator.",[12,283,284],{},"The advantage of this method is that it allows the evaluator to observe how a candidate builds. The drawbacks here are similar to those with live coding. First, the engineer is under pressure to build while the evaluator watches on, making it a nerve-wracking situation. The other drawbacks come from an evaluation perspective: It is challenging to measure the effectiveness of this method and it is hard to compare between candidates.",[152,286,288],{"id":287},"take-home-project","Take-home project",[12,290,291],{},"Any engineer (or writer, for that matter) can tell you, the supplemental take-home project is a very common ask when going through an interview process. The advantage here for us is that this assignment closely mimics the reality of building environments while working remotely at GitLab.",[12,293,294],{},"But this task comes with major drawbacks, mainly that it disadvantages candidates who may not have the time or capacity to complete the project.",[12,296,297],{},"\"... imagine a scenario where you're a single parent and you have kids; you may not have as much opportunity to take dedicated time, a couple of hours after work to really focus on a take-home project compared to someone from a more privileged background,\" says Clement. \"They might be able to dedicate and output something better.\"",[12,299,300,305],{},[16,301,304],{"href":302,"rel":303},"https://handbook.gitlab.com/handbook/company/culture/inclusion/",[],"Diversity and inclusion is a core value"," for GitLab, and anything that disadvantages candidates from underrepresented groups is not inclusive, and therefore suboptimal for evaluating candidates based on their engineering abilities.",[23,307,309],{"id":308},"what-are-they-looking-for-during-a-technical-interview","What are they looking for during a technical interview?",[12,311,312],{},"Companies want candidates who can discuss the industry in the context of the job they are applying for. Be prepared to discuss examples of your work. Many will want to hear about soft skills, too—your ability to communicate and collaborate and work with others to problem-solve issues.",[12,314,315],{},"They will also want to see how passionate and enthusiastic you are and whether you have the self-motivation to not only do the job but take the initiative to do more than what you’re tasked with.",[12,317,318],{},"Also, interviewers will want to see whether candidates have the desire to increase their technical knowledge.",[23,320,322],{"id":321},"what-are-some-online-preparation-tools-and-resources-for-technical-interviews","What are some online preparation tools and resources for technical interviews",[113,324,325,334,343,351,359],{},[64,326,327,328,333],{},"Indeed offers a career guide to ",[16,329,332],{"href":330,"rel":331},"https://www.indeed.com/career-advice/interviewing/what-is-a-technical-interview",[],"help prepare for"," a technical interview.",[64,335,336,337,342],{},"Interview Kickstart has several ",[16,338,341],{"href":339,"rel":340},"https://learn.interviewkickstart.com/",[],"webinars"," to help prepare engineers for interviews.",[64,344,345,346,271],{},"Udemy offers a course in ",[16,347,350],{"href":348,"rel":349},"https://www.udemy.com/course/technical-interview-skills/?utm_source=bing&utm_medium=udemyads&utm_campaign=BG-DSA_Webindex_la.EN_cc.BE&utm_content=deal4584&utm_term=_._ag_1222657343651662_._ad__._kw_udemy_._de_c_._dm__._pl__._ti_dat-2328215871879260%3Aloc-190_._li_103429_._pd__._&matchtype=b&msclkid=9f5132d9c84c17b02f7951a4f46279d6",[],"Technical Interview Skills",[64,352,353,358],{},[16,354,357],{"href":355,"rel":356},"https://www.codecademy.com/learn/technical-interview-practice-python?utm_id=t_kwd-79027793284383:loc-190:ag_1264438993811076:cp_370314525:n_o:d_c&msclkid=550de1275d811b2cfc0f82592b6d9626&utm_source=bing&utm_medium=cpc&utm_campaign=US%20Language%3A%20Pro%20-%20Broad&utm_term=%2Btechnical%20%2Binterview%20%2Bprep&utm_content=technical%20interview%20practice",[],"Codecademy"," also offers a course called - Technical Interview Practice with Python.",[64,360,361,362,367],{},"Here are some more general ",[16,363,366],{"href":364,"rel":365},"https://www.roberthalf.com/blog/job-interview-tips/interview-tips-to-help-you-land-the-job-you-want",[],"interview tips"," that are applicable to all candidates.",[23,369,371],{"id":370},"meaningful-questions-to-ask-the-interviewer","Meaningful questions to ask the interviewer",[12,373,374],{},"Candidates will also be given a chance to ask questions they might have to learn more about the company. This is a great opportunity to gain more insight into how the company operates, what its philosophy is, and its vision for the long term.",[12,376,377],{},"It’s also a good way to glean how the company views its IT team. If you don’t ask questions, that could give the impression you are unprepared or not terribly interested in the job.",[12,379,380],{},"Questions to ask can include:",[113,382,383,386,389,392,395,398,401],{},[64,384,385],{},"What does a typical day looks like in this role?",[64,387,388],{},"Are there opportunities for training and further advancement?",[64,390,391],{},"What software development methodology do you use?",[64,393,394],{},"What are your code review practices?",[64,396,397],{},"Do you have on-call rotations? If so, how long is one rotation?",[64,399,400],{},"What are the responsibilities of the person on call?",[64,402,403],{},"Please provide more details about the team I will be working with, such as how many people are there, what their roles are, what the hierarchy is, and what areas of improvement you would like to see on the team.",[23,405,407],{"id":406},"the-new-way","The new way",[12,409,410,411,416],{},"While each method for conducting a technical interview comes with advantages, there are also numerous disadvantages when it comes to conducting an effective and measurable evaluation and creating an equitable interview process. Under the guidance of Clement, the ",[16,412,415],{"href":413,"rel":414},"https://handbook.gitlab.com/handbook/engineering/monitoring/",[],"Monitor:Health team"," decided to interview frontend engineers in an entirely new way using GitLab.",[12,418,419,420,424],{},"Now let's take a deep dive into the nuts and bolts of reinventing the technical interview for frontend engineers at GitLab. Just wondering about the key takeaways? ",[16,421,423],{"href":422},"#why-this-new-model-for-technical-interviews-is-better","Skip ahead",". As we continue to iterate on a more effective and measurable technical interview process, we hope this inspires other engineering organizations to rethink theirs and share learnings with us.",[12,426,427],{},"Our first step: Standardize the interview process.",[152,429,431],{"id":430},"fixing-an-mr-on-a-test-project","Fixing an MR on a test project",[12,433,434,435,439,440,442],{},"The team standardized the interview process by creating an open source test project, called ",[436,437,438],"code",{},"project-seeder",", which seeds projects to different candidates using a GitLab Bot. Candidates are assigned a merge request to troubleshoot in the project created for the technical interview. The ",[436,441,438],{}," is powered by the GitLab Bot so the interviewer doesn't have to worry about API keys, and works in four steps:",[61,444,445,448,451,454],{},[64,446,447],{},"Exports the template project",[64,449,450],{},"Imports template project",[64,452,453],{},"Adds users with expiration",[64,455,456],{},"Triggers pipeline for candidate to review MR",[12,458,459],{},"The candidate is sent an email with a link to the MR the candidate is assigned to fix as part of the technical interview.",[152,461,463],{"id":462},"standardize-the-evaluation-rubric","Standardize the evaluation rubric",[12,465,466],{},"The team also created a standardized rubric for how the candidate's performance on a technical interview is evaluated.",[12,468,469],{},"\"We don't want to be in a situation where unconscious bias or bias of one candidate over another plays a part because of our preconceived notions,\" says Clement.",[12,471,472],{},"Creating a rubric that looks at multiple categories allows the evaluator to look at the performance of the candidate from a more holistic perspective, as opposed to looking at a candidate's performance on one technology.",[12,474,475],{},"The team created a Periscope dashboard to create a feedback loop between the candidates and evaluators to identify opportunities for improvement in the technical interviewing process.",[12,477,478],{},[50,479],{"alt":480,"src":481},"Frontend team used Periscrope to collect feedback from candidates who participate in technical interviews","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398276/blog/Content%20Images/fei_periscopedashboard.jpg",[12,483,484],{},"The frontend engineering team used Periscope to collect feedback from candidates who participate in technical interviews.",[23,486,488],{"id":487},"demoing-the-technical-interview","Demoing the technical interview",[152,490,492],{"id":491},"inside-the-technical-interview-project","Inside the technical interview project",[12,494,495],{},"Clement created a sample project to demonstrate how we use GitLab to power our technical interviews.",[12,497,498,499,504],{},"In the ",[16,500,503],{"href":501,"rel":502},"https://gitlab.com/gl-commit-example",[],"gl-commit-example"," group, there is a subgroup with all the interview projects we are seeding to the imaginary candidates, a template, and a project seeder.",[12,506,507],{},[50,508],{"alt":509,"src":510},"A screenshot of the sample project shows the interview project's subgroup, template, and project seeder application","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398275/blog/Content%20Images/fei_interviewproject.jpg",[12,512,513],{},"The interview project's subgroup, template, and project seeder application lives inside the sample project for the technical interview.",[12,515,516,521,522,271],{},[16,517,520],{"href":518,"rel":519},"https://gitlab.com/gl-commit-example/template",[],"Inside the template",", there are GitLab pages and the ",[16,523,526],{"href":524,"rel":525},"https://gitlab.com/gl-commit-example/template/-/merge_requests/1",[],"interview test merge request",[12,528,529],{},"The assignment here is pretty simple. The candidate needs to update the website to say \"Hello GitLab Commit SF,\" but in order to accomplish this, the candidate will need to fix the failing pipeline.",[152,531,533],{"id":532},"powering-project-seeder","Powering project-seeder",[12,535,536,537,271],{},"We use variables from GitLab CI to configure the ",[16,538,541],{"href":539,"rel":540},"https://gitlab.com/gl-commit-example/project-seeder",[],"project-seeder application",[12,543,544],{},[50,545],{"alt":546,"src":547},"Screenshot of the project for the project-seeder application","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398276/blog/Content%20Images/fei_projseederapp.jpg",[12,549,550],{},"Inside the project-seeder application which seeds the interview projects to job candidates.",[12,552,553,554,557],{},"\"I'm creating ",[436,555,556],{},"new-project-example-two",", and I'm adding this bot user that I created and the expiration, so I can just easily run this pipeline and it'll seed this project,\" says Clement.",[12,559,560],{},[50,561],{"alt":562,"src":563},"We use variables from the GitLab CI to configure the project-seeder applications","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398277/blog/Content%20Images/fei_variables.png",[12,565,566],{},"The next step is to run the setup pipeline, which will create the project, import the project, export the project, and share it with the job candidate.",[12,568,569,573],{},[50,570],{"alt":571,"src":572},"A look inside the pipeline that will create the test project","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398275/blog/Content%20Images/fei_insidethepipeline.png","\nA look inside the pipeline that will create the test project.",[12,575,576,577,271],{},"Looking inside example-one, we can see there is a project and ",[16,578,581],{"href":579,"rel":580},"https://gitlab.com/gl-commit-example/interview-projects/example-1/-/merge_requests/1",[],"broken MR",[12,583,584],{},"\"And an example for a candidate – they would probably look at the CI and see, 'Oh there's a failing test. Let's see what that's about. Oh, it looks like it's checking for \"hello world\". So since we changed the message earlier, we can just change this and get this test passing and then pass this interview,'\" says Clement.",[23,586,588],{"id":587},"why-this-new-model-for-technical-interviews-is-better","Why this new model for technical interviews is better",[12,590,591],{},"The new model surpasses the old model because we created realistic scenarios that reflect what it's like to actually work for GitLab, and we established a more consistent method of measurement.",[12,593,594],{},"\"So we're able to get better candidates overall. Candidates that pass through this technical interview, we're sure that they're going to be successful at GitLab,\" says Clement.",[12,596,597],{},"By designing our technical interviews this way, we can ensure that the interview project matches our actual product architecture at GitLab, which in this case is Ruby on Rails for Vue JS.",[12,599,600],{},"We also struggled in the past with finding a good way to check that the candidate knows how to use Git, and can navigate pipelines and testing. By using GitLab for interviews, we're able to confirm a candidate's competency with Git implicitly by evaluating their performance on the technical interviews.",[12,602,603],{},"We wanted to mirror the actual experience of troubleshooting a broken MR while working at GitLab, so we allow our candidates to use the internet during their technical interview. This allows the evaluator to see how the candidate solves problems and see their resourcefulness.",[12,605,606],{},"\"If you're already using GitLab for your tooling, you're just exposing them to what it's like to work at GitLab; it's a more accurate representation,\" says Clement. \"And you can also make sure you're measuring testing proficiency and you make sure they understand how that works before they join your company.\"",[23,608,610],{"id":609},"four-key-takeaways-from-our-technical-interview-update","Four key takeaways from our technical interview update",[12,612,613],{},"Whether or not a company uses GitLab, there are a few key lessons that we learned by iterating on how we conduct technical interviews for engineers.",[61,615,616,622,634,640],{},[64,617,618,621],{},[161,619,620],{},"Make technical interviews as much like real work as possible",": Nine times out of ten, an engineering manager isn't going to sit back and watch an engineer break a sweat in a live coding exercise, any more than they will watch on as an engineer builds in UI. Create realistic scenarios based on the actual work and evaluate based on the candidate's performance.",[64,623,624,627,628,633],{},[161,625,626],{},"Make any technical interview process \"open-book\"",": Engineering doesn't involve much rote memorization. Instead, allow the engineering candidate to use the internet (and in our case, the ",[16,629,632],{"href":630,"rel":631},"https://handbook.gitlab.com/handbook/",[],"GitLab Handbook",") to look up their questions. It's better to see how a candidate applies their knowledge and troubleshoots the inevitable problems that may arise. This change will likely improve your candidate experience too.",[64,635,636,639],{},[161,637,638],{},"Standardize your rubric",": However the technical interview is done, make sure that the rubric is as objective as possible and that the candidate is evaluated based on various criteria, not on their familiarity with a particular technology. A strong rubric means a stronger, more valid method for evaluating candidate performance.",[64,641,642,645],{},[161,643,644],{},"Create an inclusive process",": Think critically about how the technical interviewing process and evaluation is structured so a diverse group of candidates can be recruited and evaluated based on their merits. When in doubt, ask a diversity, inclusion and belonging expert or turn to your human resources team for advice. Still coming up empty? Hire a diversity consultant; it will be worth it.",[12,647,648,651],{},[161,649,650],{},"Interviewing at GitLab?"," We encourage you to use the resources GitLab creates during your technical interview. We don't publish our evaluation criteria publicly, but we do have the Periscope dashboard which can provide some insight.",[12,653,654,655,659],{},"Watch Clement's talk from ",[16,656,658],{"href":88,"rel":657},[],"GitLab Commit San Francisco"," to learn more about how we used GitLab to power our technical interviewing process.",[661,662,665,666],"figure",{"className":663},[664],"video_container","\n  ",[667,668,672],"iframe",{"src":669,"frameBorder":670,"allowFullScreen":671},"https://www.youtube-nocookie.com/embed/jSbCt8b_4ug","0","true"," ",{"title":674,"searchDepth":675,"depth":675,"links":676},"",2,[677,678,679,680,681,682,686,692,693,694,695,699,703,704],{"id":25,"depth":675,"text":26},{"id":32,"depth":675,"text":33},{"id":42,"depth":675,"text":43},{"id":81,"depth":675,"text":82},{"id":94,"depth":675,"text":95},{"id":104,"depth":675,"text":105,"children":683},[684],{"id":154,"depth":685,"text":155},3,{"id":191,"depth":675,"text":192,"children":687},[688,689,690,691],{"id":227,"depth":685,"text":228},{"id":243,"depth":685,"text":244},{"id":277,"depth":685,"text":278},{"id":287,"depth":685,"text":288},{"id":308,"depth":675,"text":309},{"id":321,"depth":675,"text":322},{"id":370,"depth":675,"text":371},{"id":406,"depth":675,"text":407,"children":696},[697,698],{"id":430,"depth":685,"text":431},{"id":462,"depth":685,"text":463},{"id":487,"depth":675,"text":488,"children":700},[701,702],{"id":491,"depth":685,"text":492},{"id":532,"depth":685,"text":533},{"id":587,"depth":675,"text":588},{"id":609,"depth":675,"text":610},"engineering","2020-03-19","Forget the coding exercise. Here's how to create realistic scenarios for engineering candidates in technical interviews.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681148/Blog/Hero%20Images/nycbrooklyn.jpg",{},true,"/en-us/blog/the-trouble-with-technical-interviews",{"title":716,"description":707,"ogTitle":716,"ogDescription":707,"noIndex":710,"ogImage":711,"ogUrl":717,"ogSiteName":718,"ogType":719,"canonicalUrls":717},"The main problem with technical interviews","https://about.gitlab.com/blog/the-trouble-with-technical-interviews","https://about.gitlab.com","article","the-trouble-with-technical-interviews","en-us/blog/the-trouble-with-technical-interviews",[723,724],"frontend","inside GitLab","BlogPost","pDdutU9nEK0Yl1QmTxPzF0zPi0rp9_sE-zluA3Cfa8c",{"logo":728,"freeTrial":733,"sales":738,"login":743,"items":748,"search":1075,"minimal":1106,"duo":1125,"switchNav":1134,"pricingDeployment":1145},{"config":729},{"href":730,"dataGaName":731,"dataGaLocation":732},"/","gitlab logo","header",{"text":734,"config":735},"Get free trial",{"href":736,"dataGaName":737,"dataGaLocation":732},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":739,"config":740},"Request a demo",{"href":741,"dataGaName":742,"dataGaLocation":732},"/sales/?contact-topic=request-demo","sales",{"text":744,"config":745},"Sign in",{"href":746,"dataGaName":747,"dataGaLocation":732},"https://gitlab.com/users/sign_in/","sign in",[749,778,878,883,997,1053],{"text":750,"config":751,"menu":753},"Platform",{"dataNavLevelOne":752},"platform",{"type":754,"columns":755},"cards",[756,762,770],{"title":750,"description":757,"link":758},"The intelligent orchestration platform for DevSecOps",{"text":759,"config":760},"Explore our Platform",{"href":761,"dataGaName":752,"dataGaLocation":732},"/platform/",{"title":763,"description":764,"link":765},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":766,"config":767},"Meet GitLab Duo",{"href":768,"dataGaName":769,"dataGaLocation":732},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":771,"description":772,"link":773},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":774,"config":775},"Learn more",{"href":776,"dataGaName":777,"dataGaLocation":732},"/why-gitlab/","why gitlab",{"text":779,"left":713,"config":780,"menu":782},"Product",{"dataNavLevelOne":781},"solutions",{"type":783,"link":784,"columns":788,"feature":857},"lists",{"text":785,"config":786},"View all Solutions",{"href":787,"dataGaName":781,"dataGaLocation":732},"/solutions/",[789,813,836],{"title":790,"description":791,"link":792,"items":797},"Automation","CI/CD and automation to accelerate deployment",{"config":793},{"icon":794,"href":795,"dataGaName":796,"dataGaLocation":732},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[798,802,805,809],{"text":799,"config":800},"CI/CD",{"href":801,"dataGaLocation":732,"dataGaName":799},"/solutions/continuous-integration/",{"text":763,"config":803},{"href":768,"dataGaLocation":732,"dataGaName":804},"gitlab duo agent platform - product menu",{"text":806,"config":807},"Source Code Management",{"href":808,"dataGaLocation":732,"dataGaName":806},"/solutions/source-code-management/",{"text":810,"config":811},"Automated Software Delivery",{"href":795,"dataGaLocation":732,"dataGaName":812},"Automated software delivery",{"title":814,"description":815,"link":816,"items":821},"Security","Deliver code faster without compromising security",{"config":817},{"href":818,"dataGaName":819,"dataGaLocation":732,"icon":820},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[822,826,831],{"text":823,"config":824},"Application Security Testing",{"href":818,"dataGaName":825,"dataGaLocation":732},"Application security testing",{"text":827,"config":828},"Software Supply Chain Security",{"href":829,"dataGaLocation":732,"dataGaName":830},"/solutions/supply-chain/","Software supply chain security",{"text":832,"config":833},"Software Compliance",{"href":834,"dataGaName":835,"dataGaLocation":732},"/solutions/software-compliance/","software compliance",{"title":837,"link":838,"items":843},"Measurement",{"config":839},{"icon":840,"href":841,"dataGaName":842,"dataGaLocation":732},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[844,848,852],{"text":845,"config":846},"Visibility & Measurement",{"href":841,"dataGaLocation":732,"dataGaName":847},"Visibility and Measurement",{"text":849,"config":850},"Value Stream Management",{"href":851,"dataGaLocation":732,"dataGaName":849},"/solutions/value-stream-management/",{"text":853,"config":854},"Analytics & Insights",{"href":855,"dataGaLocation":732,"dataGaName":856},"/solutions/analytics-and-insights/","Analytics and insights",{"title":858,"type":783,"items":859},"GitLab for",[860,866,872],{"text":861,"config":862},"Enterprise",{"icon":863,"href":864,"dataGaLocation":732,"dataGaName":865},"Building","/enterprise/","enterprise",{"text":867,"config":868},"Small Business",{"icon":869,"href":870,"dataGaLocation":732,"dataGaName":871},"Work","/small-business/","small business",{"text":873,"config":874},"Public Sector",{"icon":875,"href":876,"dataGaLocation":732,"dataGaName":877},"Organization","/solutions/public-sector/","public sector",{"text":879,"config":880},"Pricing",{"href":881,"dataGaName":882,"dataGaLocation":732,"dataNavLevelOne":882},"/pricing/","pricing",{"text":884,"config":885,"menu":887},"Resources",{"dataNavLevelOne":886},"resources",{"type":783,"link":888,"columns":892,"feature":986},{"text":889,"config":890},"View all resources",{"href":891,"dataGaName":886,"dataGaLocation":732},"/resources/",[893,926,953],{"title":894,"items":895},"Getting started",[896,901,906,911,916,921],{"text":897,"config":898},"Install",{"href":899,"dataGaName":900,"dataGaLocation":732},"/install/","install",{"text":902,"config":903},"Quick start guides",{"href":904,"dataGaName":905,"dataGaLocation":732},"/get-started/","quick setup checklists",{"text":907,"config":908},"Learn",{"href":909,"dataGaLocation":732,"dataGaName":910},"https://university.gitlab.com/","learn",{"text":912,"config":913},"Product documentation",{"href":914,"dataGaName":915,"dataGaLocation":732},"https://docs.gitlab.com/","product documentation",{"text":917,"config":918},"Best practice videos",{"href":919,"dataGaName":920,"dataGaLocation":732},"/getting-started-videos/","best practice videos",{"text":922,"config":923},"Integrations",{"href":924,"dataGaName":925,"dataGaLocation":732},"/integrations/","integrations",{"title":927,"items":928},"Discover",[929,934,939,944,948],{"text":930,"config":931},"Customer success stories",{"href":932,"dataGaName":933,"dataGaLocation":732},"/customers/","customer success stories",{"text":935,"config":936},"Blog",{"href":937,"dataGaName":938,"dataGaLocation":732},"/blog/","blog",{"text":940,"config":941},"Demo Hub",{"href":942,"dataGaName":943,"dataGaLocation":732},"/demo-hub/","demo hub",{"text":945,"config":946},"The Source",{"href":947,"dataGaName":938,"dataGaLocation":732},"/the-source/",{"text":949,"config":950},"Remote",{"href":951,"dataGaName":952,"dataGaLocation":732},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":954,"items":955},"Connect",[956,961,966,971,976,981],{"text":957,"config":958},"GitLab Services",{"href":959,"dataGaName":960,"dataGaLocation":732},"/services/","services",{"text":962,"config":963},"Contribute",{"href":964,"dataGaName":965,"dataGaLocation":732},"https://contributors.gitlab.com","contribute",{"text":967,"config":968},"Community",{"href":969,"dataGaName":970,"dataGaLocation":732},"/community/","community",{"text":972,"config":973},"Forum",{"href":974,"dataGaName":975,"dataGaLocation":732},"https://forum.gitlab.com/","forum",{"text":977,"config":978},"Events",{"href":979,"dataGaName":980,"dataGaLocation":732},"/events/","events",{"text":982,"config":983},"Partners",{"href":984,"dataGaName":985,"dataGaLocation":732},"/partners/","partners",{"config":987,"title":990,"text":991,"link":992},{"background":988,"textColor":989},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":993,"config":994},"Read the latest",{"href":995,"dataGaName":996,"dataGaLocation":732},"/whats-new/","whats new",{"text":998,"config":999,"menu":1001},"Company",{"dataNavLevelOne":1000},"company",{"type":783,"columns":1002},[1003],{"items":1004},[1005,1010,1016,1018,1023,1028,1033,1038,1043,1048],{"text":1006,"config":1007},"About",{"href":1008,"dataGaName":1009,"dataGaLocation":732},"/company/","about",{"text":1011,"config":1012,"footerGa":1015},"Jobs",{"href":1013,"dataGaName":1014,"dataGaLocation":732},"/jobs/","jobs",{"dataGaName":1014},{"text":977,"config":1017},{"href":979,"dataGaName":980,"dataGaLocation":732},{"text":1019,"config":1020},"Leadership",{"href":1021,"dataGaName":1022,"dataGaLocation":732},"/company/team/e-group/","leadership",{"text":1024,"config":1025},"Handbook",{"href":1026,"dataGaName":1027,"dataGaLocation":732},"https://handbook.gitlab.com/","handbook",{"text":1029,"config":1030},"Investor relations",{"href":1031,"dataGaName":1032,"dataGaLocation":732},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1034,"config":1035},"Trust Center",{"href":1036,"dataGaName":1037,"dataGaLocation":732},"/security/","trust center",{"text":1039,"config":1040},"AI Transparency Center",{"href":1041,"dataGaName":1042,"dataGaLocation":732},"/ai-transparency-center/","ai transparency center",{"text":1044,"config":1045},"Newsletter",{"href":1046,"dataGaName":1047,"dataGaLocation":732},"/company/contact/#contact-forms","newsletter",{"text":1049,"config":1050},"Press",{"href":1051,"dataGaName":1052,"dataGaLocation":732},"/press/","press",{"text":1054,"config":1055,"menu":1056},"Contact us",{"dataNavLevelOne":1000},{"type":783,"columns":1057},[1058],{"items":1059},[1060,1065,1070],{"text":1061,"config":1062},"Talk to sales",{"href":1063,"dataGaName":1064,"dataGaLocation":732},"/sales/","talk to sales",{"text":1066,"config":1067},"Support portal",{"href":1068,"dataGaName":1069,"dataGaLocation":732},"https://support.gitlab.com/hc/en-us","support portal",{"text":1071,"config":1072},"Customer portal",{"href":1073,"dataGaName":1074,"dataGaLocation":732},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1076,"login":1077,"suggestions":1084},"Close",{"text":1078,"link":1079},"To search repositories and projects, login to",{"text":1080,"config":1081},"gitlab.com",{"href":746,"dataGaName":1082,"dataGaLocation":1083},"search login","search",{"text":1085,"default":1086},"Suggestions",[1087,1089,1093,1095,1099,1103],{"text":763,"config":1088},{"href":768,"dataGaName":763,"dataGaLocation":1083},{"text":1090,"config":1091},"Code Suggestions (AI)",{"href":1092,"dataGaName":1090,"dataGaLocation":1083},"/solutions/code-suggestions/",{"text":799,"config":1094},{"href":801,"dataGaName":799,"dataGaLocation":1083},{"text":1096,"config":1097},"GitLab on AWS",{"href":1098,"dataGaName":1096,"dataGaLocation":1083},"/partners/technology-partners/aws/",{"text":1100,"config":1101},"GitLab on Google Cloud",{"href":1102,"dataGaName":1100,"dataGaLocation":1083},"/partners/technology-partners/google-cloud-platform/",{"text":1104,"config":1105},"Why GitLab?",{"href":776,"dataGaName":1104,"dataGaLocation":1083},{"freeTrial":1107,"mobileIcon":1112,"desktopIcon":1117,"secondaryButton":1120},{"text":1108,"config":1109},"Start free trial",{"href":1110,"dataGaName":737,"dataGaLocation":1111},"https://gitlab.com/-/trials/new/","nav",{"altText":1113,"config":1114},"Gitlab Icon",{"src":1115,"dataGaName":1116,"dataGaLocation":1111},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1113,"config":1118},{"src":1119,"dataGaName":1116,"dataGaLocation":1111},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1121,"config":1122},"Get Started",{"href":1123,"dataGaName":1124,"dataGaLocation":1111},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":1126,"mobileIcon":1130,"desktopIcon":1132},{"text":1127,"config":1128},"Learn more about GitLab Duo",{"href":768,"dataGaName":1129,"dataGaLocation":1111},"gitlab duo",{"altText":1113,"config":1131},{"src":1115,"dataGaName":1116,"dataGaLocation":1111},{"altText":1113,"config":1133},{"src":1119,"dataGaName":1116,"dataGaLocation":1111},{"button":1135,"mobileIcon":1140,"desktopIcon":1142},{"text":1136,"config":1137},"/switch",{"href":1138,"dataGaName":1139,"dataGaLocation":1111},"#contact","switch",{"altText":1113,"config":1141},{"src":1115,"dataGaName":1116,"dataGaLocation":1111},{"altText":1113,"config":1143},{"src":1144,"dataGaName":1116,"dataGaLocation":1111},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1146,"mobileIcon":1151,"desktopIcon":1153},{"text":1147,"config":1148},"Back to pricing",{"href":881,"dataGaName":1149,"dataGaLocation":1111,"icon":1150},"back to pricing","GoBack",{"altText":1113,"config":1152},{"src":1115,"dataGaName":1116,"dataGaLocation":1111},{"altText":1113,"config":1154},{"src":1119,"dataGaName":1116,"dataGaLocation":1111},{"title":1156,"titleMobile":1157,"button":1158,"config":1163},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":774,"config":1159},{"href":1160,"dataGaName":1161,"dataGaLocation":1162},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":1164,"disabled":710},"release",{"data":1166},{"text":1167,"source":1168,"edit":1174,"contribute":1179,"config":1184,"items":1189,"minimal":1399},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":1169,"config":1170},"View page source",{"href":1171,"dataGaName":1172,"dataGaLocation":1173},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1175,"config":1176},"Edit this page",{"href":1177,"dataGaName":1178,"dataGaLocation":1173},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1180,"config":1181},"Please contribute",{"href":1182,"dataGaName":1183,"dataGaLocation":1173},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1185,"facebook":1186,"youtube":1187,"linkedin":1188},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1190,1237,1291,1335,1367],{"title":879,"links":1191,"subMenu":1206},[1192,1196,1201],{"text":1193,"config":1194},"View plans",{"href":881,"dataGaName":1195,"dataGaLocation":1173},"view plans",{"text":1197,"config":1198},"Why Premium?",{"href":1199,"dataGaName":1200,"dataGaLocation":1173},"/pricing/premium/","why premium",{"text":1202,"config":1203},"Why Ultimate?",{"href":1204,"dataGaName":1205,"dataGaLocation":1173},"/pricing/ultimate/","why ultimate",[1207],{"title":1208,"links":1209},"Contact Us",[1210,1213,1215,1217,1222,1227,1232],{"text":1211,"config":1212},"Contact sales",{"href":1063,"dataGaName":742,"dataGaLocation":1173},{"text":1066,"config":1214},{"href":1068,"dataGaName":1069,"dataGaLocation":1173},{"text":1071,"config":1216},{"href":1073,"dataGaName":1074,"dataGaLocation":1173},{"text":1218,"config":1219},"Status",{"href":1220,"dataGaName":1221,"dataGaLocation":1173},"https://status.gitlab.com/","status",{"text":1223,"config":1224},"Terms of use",{"href":1225,"dataGaName":1226,"dataGaLocation":1173},"/terms/","terms of use",{"text":1228,"config":1229},"Privacy statement",{"href":1230,"dataGaName":1231,"dataGaLocation":1173},"/privacy/","privacy statement",{"text":1233,"config":1234},"Cookie preferences",{"dataGaName":1235,"dataGaLocation":1173,"id":1236,"isOneTrustButton":713},"cookie preferences","ot-sdk-btn",{"title":779,"links":1238,"subMenu":1247},[1239,1243],{"text":1240,"config":1241},"DevSecOps platform",{"href":761,"dataGaName":1242,"dataGaLocation":1173},"devsecops platform",{"text":1244,"config":1245},"AI-Assisted Development",{"href":768,"dataGaName":1246,"dataGaLocation":1173},"ai-assisted development",[1248],{"title":1249,"links":1250},"Topics",[1251,1256,1261,1266,1271,1276,1281,1286],{"text":1252,"config":1253},"CICD",{"href":1254,"dataGaName":1255,"dataGaLocation":1173},"/topics/ci-cd/","cicd",{"text":1257,"config":1258},"GitOps",{"href":1259,"dataGaName":1260,"dataGaLocation":1173},"/topics/gitops/","gitops",{"text":1262,"config":1263},"DevOps",{"href":1264,"dataGaName":1265,"dataGaLocation":1173},"/topics/devops/","devops",{"text":1267,"config":1268},"Version Control",{"href":1269,"dataGaName":1270,"dataGaLocation":1173},"/topics/version-control/","version control",{"text":1272,"config":1273},"DevSecOps",{"href":1274,"dataGaName":1275,"dataGaLocation":1173},"/topics/devsecops/","devsecops",{"text":1277,"config":1278},"Cloud Native",{"href":1279,"dataGaName":1280,"dataGaLocation":1173},"/topics/cloud-native/","cloud native",{"text":1282,"config":1283},"AI for Coding",{"href":1284,"dataGaName":1285,"dataGaLocation":1173},"/topics/devops/ai-for-coding/","ai for coding",{"text":1287,"config":1288},"Agentic AI",{"href":1289,"dataGaName":1290,"dataGaLocation":1173},"/topics/agentic-ai/","agentic ai",{"title":1292,"links":1293},"Solutions",[1294,1296,1298,1303,1307,1310,1314,1317,1319,1322,1325,1330],{"text":823,"config":1295},{"href":818,"dataGaName":823,"dataGaLocation":1173},{"text":812,"config":1297},{"href":795,"dataGaName":796,"dataGaLocation":1173},{"text":1299,"config":1300},"Agile development",{"href":1301,"dataGaName":1302,"dataGaLocation":1173},"/solutions/agile-delivery/","agile delivery",{"text":1304,"config":1305},"SCM",{"href":808,"dataGaName":1306,"dataGaLocation":1173},"source code management",{"text":1252,"config":1308},{"href":801,"dataGaName":1309,"dataGaLocation":1173},"continuous integration & delivery",{"text":1311,"config":1312},"Value stream management",{"href":851,"dataGaName":1313,"dataGaLocation":1173},"value stream management",{"text":1257,"config":1315},{"href":1316,"dataGaName":1260,"dataGaLocation":1173},"/solutions/gitops/",{"text":861,"config":1318},{"href":864,"dataGaName":865,"dataGaLocation":1173},{"text":1320,"config":1321},"Small business",{"href":870,"dataGaName":871,"dataGaLocation":1173},{"text":1323,"config":1324},"Public sector",{"href":876,"dataGaName":877,"dataGaLocation":1173},{"text":1326,"config":1327},"Education",{"href":1328,"dataGaName":1329,"dataGaLocation":1173},"/solutions/education/","education",{"text":1331,"config":1332},"Financial services",{"href":1333,"dataGaName":1334,"dataGaLocation":1173},"/solutions/finance/","financial services",{"title":884,"links":1336},[1337,1339,1341,1343,1346,1348,1351,1353,1355,1357,1359,1361,1363,1365],{"text":897,"config":1338},{"href":899,"dataGaName":900,"dataGaLocation":1173},{"text":902,"config":1340},{"href":904,"dataGaName":905,"dataGaLocation":1173},{"text":907,"config":1342},{"href":909,"dataGaName":910,"dataGaLocation":1173},{"text":912,"config":1344},{"href":914,"dataGaName":1345,"dataGaLocation":1173},"docs",{"text":935,"config":1347},{"href":937,"dataGaName":938,"dataGaLocation":1173},{"text":1349,"config":1350},"What's new",{"href":995,"dataGaName":996,"dataGaLocation":1173},{"text":930,"config":1352},{"href":932,"dataGaName":933,"dataGaLocation":1173},{"text":949,"config":1354},{"href":951,"dataGaName":952,"dataGaLocation":1173},{"text":957,"config":1356},{"href":959,"dataGaName":960,"dataGaLocation":1173},{"text":962,"config":1358},{"href":964,"dataGaName":965,"dataGaLocation":1173},{"text":967,"config":1360},{"href":969,"dataGaName":970,"dataGaLocation":1173},{"text":972,"config":1362},{"href":974,"dataGaName":975,"dataGaLocation":1173},{"text":977,"config":1364},{"href":979,"dataGaName":980,"dataGaLocation":1173},{"text":982,"config":1366},{"href":984,"dataGaName":985,"dataGaLocation":1173},{"title":998,"links":1368},[1369,1371,1373,1375,1377,1379,1383,1388,1390,1392,1394],{"text":1006,"config":1370},{"href":1008,"dataGaName":1000,"dataGaLocation":1173},{"text":1011,"config":1372},{"href":1013,"dataGaName":1014,"dataGaLocation":1173},{"text":1019,"config":1374},{"href":1021,"dataGaName":1022,"dataGaLocation":1173},{"text":1024,"config":1376},{"href":1026,"dataGaName":1027,"dataGaLocation":1173},{"text":1029,"config":1378},{"href":1031,"dataGaName":1032,"dataGaLocation":1173},{"text":1380,"config":1381},"Sustainability",{"href":1382,"dataGaName":1380,"dataGaLocation":1173},"/sustainability/",{"text":1384,"config":1385},"Diversity, inclusion and belonging (DIB)",{"href":1386,"dataGaName":1387,"dataGaLocation":1173},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1034,"config":1389},{"href":1036,"dataGaName":1037,"dataGaLocation":1173},{"text":1044,"config":1391},{"href":1046,"dataGaName":1047,"dataGaLocation":1173},{"text":1049,"config":1393},{"href":1051,"dataGaName":1052,"dataGaLocation":1173},{"text":1395,"config":1396},"Modern Slavery Transparency Statement",{"href":1397,"dataGaName":1398,"dataGaLocation":1173},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1400},[1401,1404,1407],{"text":1402,"config":1403},"Terms",{"href":1225,"dataGaName":1226,"dataGaLocation":1173},{"text":1405,"config":1406},"Cookies",{"dataGaName":1235,"dataGaLocation":1173,"id":1236,"isOneTrustButton":713},{"text":1408,"config":1409},"Privacy",{"href":1230,"dataGaName":1231,"dataGaLocation":1173},[1411],{"id":1412,"title":7,"body":709,"config":1413,"content":1415,"description":709,"extension":1418,"meta":1419,"navigation":713,"path":1420,"seo":1421,"stem":1422,"__hash__":1423},"blogAuthors/en-us/blog/authors/sara-kassabian.yml",{"template":1414},"BlogAuthor",{"name":7,"config":1416},{"headshot":674,"ctfId":1417},"skassabian","yml",{},"/en-us/blog/authors/sara-kassabian",{},"en-us/blog/authors/sara-kassabian","6cCCPpjzkCDfb77tMVCyG8_FImRVQXA2VCMyiAjhFX0",[1425,1434,1442],{"title":1426,"description":1427,"heroImage":1428,"category":705,"date":1429,"authors":1430,"slug":1433,"externalUrl":709},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[1431,1432],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":1435,"description":1436,"heroImage":1437,"category":705,"date":1438,"authors":1439,"slug":1441,"externalUrl":709},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[1440],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":1443,"description":1444,"heroImage":1445,"category":705,"date":1446,"authors":1447,"slug":1449,"externalUrl":709},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[1448],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":1451},[1452,1466,1478,1490],{"id":1453,"categories":1454,"header":1456,"text":1457,"button":1458,"image":1463},"ai-modernization",[1455],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1459,"config":1460},"Get your AI maturity score",{"href":1461,"dataGaName":1462,"dataGaLocation":938},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1464},{"src":1465},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1467,"categories":1468,"header":1470,"text":1457,"button":1471,"image":1475},"devops-modernization",[1469,1275],"product","Are you just managing tools or shipping innovation?",{"text":1472,"config":1473},"Get your DevOps maturity score",{"href":1474,"dataGaName":1462,"dataGaLocation":938},"/assessments/devops-modernization-assessment/",{"config":1476},{"src":1477},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1479,"categories":1480,"header":1482,"text":1457,"button":1483,"image":1487},"security-modernization",[1481],"security","Are you trading speed for security?",{"text":1484,"config":1485},"Get your security maturity score",{"href":1486,"dataGaName":1462,"dataGaLocation":938},"/assessments/security-modernization-assessment/",{"config":1488},{"src":1489},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1491,"paths":1492,"header":1495,"text":1496,"button":1497,"image":1502},"github-azure-migration",[1493,1494],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1498,"config":1499},"See how GitLab compares to GitHub",{"href":1500,"dataGaName":1501,"dataGaLocation":938},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1503},{"src":1477},{"header":1505,"blurb":1506,"button":1507,"secondaryButton":1512},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1508,"config":1509},"Get your free trial",{"href":1510,"dataGaName":737,"dataGaLocation":1511},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1211,"config":1513},{"href":1063,"dataGaName":742,"dataGaLocation":1511},1786803738361]