[{"data":1,"prerenderedAt":721},["ShallowReactive",2],{"/en-us/blog/quickly-onboarding-engineers-successfully/":3,"navigation-en-us":36,"banner-en-us":465,"footer-en-us":482,"David O'Regan":692,"next-steps-en-us":706},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":26,"_id":29,"_type":30,"title":31,"_source":32,"_file":33,"_stem":34,"_extension":35},"/en-us/blog/quickly-onboarding-engineers-successfully","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"How to quickly (and successfully) onboard engineers","It's a tough hiring market today. Here's how GitLab gets engineers onboard fast and sets them up for success.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670635/Blog/Hero%20Images/kubernetesterms.jpg","https://about.gitlab.com/blog/quickly-onboarding-engineers-successfully","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to quickly (and successfully) onboard engineers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2022-07-21\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21,"tags":22},[18],"David O'Regan","2022-07-21","No one ever said hiring was easy. As a matter of fact, talent hiring and\nretention are some of the hardest aspects to get right for any software\ncompany.\n\n\nAccording to [a recent article at Developer\nPitstop](https://developerpitstop.com/how-long-do-software-engineers-stay-at-a-job/)\nthe average engineer will only stay at a job for an average of two years\nbefore moving on, and this tenure is shrinking as time goes on.\n\n\nWhen we look at the average timeline for engineers in a new role we usually\nsee something like:\n\n\n> - Learning and adaptation (3 / 6 months):\n\n>   Coming to grips with the new company, team, and their processes.\n\n>\n\n> - Creating value for the organization (6 / 12 months):\n\n>   Adding value to the business by becoming a functioning member of the\nteam.\n\n>\n\n> - Becoming a role expert (6 / 18 months):\n\n>   Owning the role completely and helping to shape the direction of the\nteam.\n\n\n## Software engineer onboarding\n\n\nAt GitLab we pride ourselves on an outstanding onboarding process to reduce\nthe amount of time an engineer will spend in the `learning and adaptation`\nbracket and accelerate their evolution into the `creating value for the\norganization` bracket. We do this for two main reasons:\n\n\n- **Quicker integration**: We aim to have engineers ship production code in\nless than one week, and fully onboard them in less than three months.\n\n- **Reduce turnover**: Engineers who have an awesome onboarding experience\ntend to stay with the same company longer.\n\n\n**The bottom line is that with these benefits, investing in an amazing\nonboarding process gives you the highest ROI on your hiring initiatives.**\n\n\nSo, now that we know **why** we need to ensure we onboard quickly and\ncorrectly, let's talk about **how** we do it at GitLab.\n\n\n## Software engineer onboarding process: An overview\n\n\n- 💯 Before day one\n\n- 💥 It's all about the onboarding issue\n\n- 🥂 Pick the right onboarding buddy\n\n- 👌 Pair, pair, and more pairing\n\n- 🖐 All the coffee chats\n\n- 🤘 Tailor the experience to the role\n\n- 🚢 Ship some code in a week or less\n\n- 💬 Let's get (and give) some feedback\n\n\n![onboarding](https://about.gitlab.com/images/blogimages/onboarding.png){:\n.shadow}\n\n\n## 💯 Before day one\n\n\nThe best processes for onboarding software engineers start as soon as the\ncandidate has officially accepted the offer. This is done in a few ways:\n\n\n- An onboarding issue is created with tasks for the hiring manager, their\nbuddy, and People Experience (HR).\n\n- The hiring manager selects the right onboarding buddy for the engineer and\ncommunicates expectations (more on this later).\n\n- The engineer's accounts (Email, GitLab account, Okta, etc) are created and\ntheir hardware is shipped.\n\n- GitLab reaches out via email to let the candidate know what the onboarding\nprocess looks like.\n\n- The hiring manager reaches out to the engineer via email to set up a\ncoffee chat on Day 1 as the initial process might seem overwhelming.\n\n\nFor us, the most important aspect is communication with the engineer to\nensure they are set up for success. We provide them with access to their\nonboarding issue, helpful video guides for getting started, and a primer on\nhow to navigate our [handbook like a\npro](https://about.gitlab.com/handbook/people-group/general-onboarding/).\nThe reason this is so important is that we know if we stop communicating\nwith the engineer after signing, we are at risk of creating uncertainty,\nintroducing inefficiency, or even losing them to another offer during that\ntime.\n\n\n## 💥 It's all about the onboarding issue\n\n\nAt GitLab, our [onboarding\nissue](https://about.gitlab.com/handbook/people-group/general-onboarding/#onboarding-issue-template-links)\nis the most effective tool we have for successfully onboarding a new\nengineer quickly. Hiring managers use this issue almost exclusively, both\nfor building momentum and for following our value of transparency. We use\nthis issue, instead of Slack or email, to create a single source of truth\nfor everyone during the process and to prevent fragmented communication. For\nanyone new at GitLab, the first few weeks can seem like a lot to get on top\nof, so the hiring manger wants to be mindful of opportunities to consolidate\ncommunication and reduce context switching.\n\n\nOur onboarding issues are confidential because they contain sensitive\naccount information, but the templates of the issue are\n[public](https://about.gitlab.com/handbook/people-group/general-onboarding/#onboarding-issue-template-links)\nand they look something like this:\n\n\n```\n\n- Accounts and access\n\n- Day 1: Getting started: Accounts and paperwork\n\n- Day 2: Remote working and our values\n\n- Day 3: Security & compliance\n\n- Day 4: Social & benefits\n\n- Day 5: Git & push some code\n\n- Weeks 2 - 4: Explore\n\n- Job-specific tasks\n\n```\n\n\nAs a hiring manager, you want to ensure that you have fleshed out the `job\nspecific tasks` ahead of time with things that are important for the\nspecific role the engineer will be working in. This will generally include\nthings like ensuring they have database access, pointing them to the working\ngroups that will support their work, and letting them know the right Slack\nchannels to support their development.\n\n\n## 🥂 Pick the right onboarding buddy\n\n\nThe advantages of the buddy system have been [well documented for\nyears](https://www.pmi.org/learning/library/implementing-buddy-system-workplace-9376).\nAt GitLab we lean heavily on the onboarding buddy\n[model](https://about.gitlab.com/handbook/people-group/general-onboarding/onboarding-buddies/)\nand rather than having multiple people support the new engineer, it will\ngenerally be the hiring manager and a single buddy.\n\n\nThe advantages of an onboarding buddy at GitLab are several:\n\n\n- **Domain expert**: A onboarding buddy knows the domain the new engineer is\ngoing to be working in. They have already written, reviewed, and merged code\ninto production in the same way we want the new engineer to. They know the\nprocess, pitfalls, and gotchas of the domain.\n\n- **Single context / Accountabilibuddy**: A single onboarding buddy\ndrastically reduces context switching and \"paralysis by analysis.\" They know\nthey always have someone to ask and this creates a psychologically safe\nspace for them. GitLab can often be a scary environment to navigate when you\nare new due to impostor syndrome and we want to curb that.\n\n- **GitLabisms**: At GitLab, we have code and then we have \"GitLabisms.\"\nThese are things that are specific to GitLab, be it workflows or custom\ntooling. These are often more complicated to become familiar with than the\ncode itself. The onboarding buddy should have experience with these already\nand be able to point the engineer in the right direction when they are\nstuck.\n\n- **Mentor**: Mentoring is one of the single best things an engineer can do\nto grow themselves and become more sure of their own skills. By being an\nonboarding buddy, they are given a growth opportunity to cover their own\nblindspots and upskill.\n\n\nAs a rule of thumb, the onboarding buddy should ideally be someone from the\nengineer's new team who is working in the same domain, i.e. a senior\nfrontend engineer mentors a new intermediate frontend engineer, both of\nwhich are from the same team. While this rule is not set in stone, it is\noften less effective to have an onboarding buddy be cross-team due to a lack\nof domain expertise.\n\n\n## 👌 Pair, pair, and more pairing\n\n\nPairing when programming and when working on tasks is a very effective way\nto help new engineers build up their knowledge without needing to pour\nthrough documentation.\n\n\nIn general, we would recommend that the engineer pair with their onboarding\nbuddy on their first few merge requests to get used to the workflow and\npitfalls of working with the GitLab Development Kit. But this is not where\nit should stop. We encourage pairing across the board at GitLab either via\nopen pairing sessions such as our Frontend Pairing office hours, having a\nmanager pair with an engineer, or pairing with a stable counterpart such as\nyour team's UX designer.\n\n\nWhen it comes to onboarding, pairing is helpful. We do this because we want\nto:\n\n\n- **Create psychological safety**: We all feel impostor syndrome. This is\nworse when you're new to a job and don't know the ecosystem yet. Regular\npairing helps to undo that worry as you see people are just people and even\nstaff/principal engineers forget the closing brace!\n\n- **Create relationships/network**: In an all-remote company, it becomes\nimportant to know who to reach out to in moments of need. Regular pairing\nhelps to foster these relationships and creates a safety net with your\npeers.\n\n- **Demonstrate our values**: We believe in [CREDIT](https://handbook.gitlab.com/handbook/values/) at\nGitLab. Regular pairing supports all our core values and helps to encourage\nus to be mindful of them when working.\n\n- **Give and get real-time feedback**: When pairing, we can get real-time\nfeedback on our process and how we're approaching solutions. This is\nextremely important for new engineers who might not be familiar with core\nGitLab concepts such as\n[iteration](https://handbook.gitlab.com/handbook/values/#iteration) (\"How can\nwe break this down?\").\n\n\n## 🖐 All the coffee chats\n\n\nBeing distributed means we do communication differently at GitLab. One key\nto successfully onboarding a new engineer is to get them comfortable with\nour communication style.\n\n\nTo do this, we encourage regular [coffee\nchats](https://about.gitlab.com/company/culture/all-remote/informal-communication/#coffee-chats)\nand a culture of zero shame about it.\n\n\nEncourage your new hire to set up regular coffee chats with people across\nthe company to help build rapport and become comfortable with GitLab as a\nwhole.\n\n\nTo help empower new hires, have them ask the following question in their\ninitial 10  - 15 chats:\n\n\n> What is the one thing I can do to be successful at GitLab?\n\n\n## 🤘 Tailor the experience to the role\n\n\nAs a hiring manger, you need to understand that people learn and grow in\ndifferent ways. No single method will work for everyone and it is your job\nto ensure your new hire feels supported in how they want to learn.\n\n\nDuring the onboarding, observe your new hire and touch base with them in\nyour weekly 1:1 for what they are and **are not** enjoying about the\nexperience so far. Once you have this information, iterate on it and tailor\ntheir onboarding to include more of what they prefer.\n\n\nAsk constructive questions that can have actionable tasks each week to\nensure a better process for them:\n\n\n> Do you want to pair more? Do you want more alone time? Are there\nparticular areas you need more guidance in? Are there things I can do to\nbetter support you?\n\n\nYou should aim to strike a balance during their onboarding for a mixture of\npractical work and time dedicated to studying. Work with the direct report\nto establish the best balance for them as an individual.\n\n\n## 🚢 Ship some code in a week or less\n\n\nThis is arguably the most important aspect of successfully onboarding an\nengineer and setting them up for success. The sooner they can push code to\nproduction, the sooner they can begin to refine their skills and work\neffectively with the team.\n\n\nThe best software companies in the world set a timeline of shipping code in\na week. At GitLab, this is not a hard-and-fast rule, but in the **Create**\nstage is what we strive for.\n\n\nTo ensure an engineer can ship code within a week, we need to ensure they\nare supported in a few ways:\n\n\n- **Tooling**: At GitLab we have a fantastic [local development\nkit](https://gitlab.com/gitlab-org/gitlab-development-kit) which sets up an\nengineer to begin delivering code. We support this kit heavily as a\nfirst-class citizen and are constantly refining the tooling and\n[docs](https://gitlab.com/gitlab-org/gitlab-development-kit/-/tree/main/doc)\nto ensure everyone can contribute. For a new hire, consider having their\nfirst pairing session to be setting up their GDK – this will get them one\nstep closer to shipping quality code.\n\n- **Dev process**: At GitLab, we always strike to [break down work into its\nsmallest\ndeliverable](https://handbook.gitlab.com/handbook/product/product-principles/#the-minimal-viable-change-mvc)\nthat can be picked up by an engineer without deep contextual understanding.\nWe do this to support the open source community as much as our own\nengineers.\n\n\n## 💬 Let's get some feedback\n\n\nAs a hiring manager, you want to ensure you build a stable feedback loop\ninto your processes and this includes onboarding. During your 1:1s you\nshould include a weekly feedback cycle for both **you** and your direct\nreport.\n\n\nThese feedback cycles should take the form of:\n\n\n- **Appreciation (Collaboration / Results / Diversity / Iteration /\nTransparency)**: A moment of appreciation for something positive that is\nhighlighted inline with our values.\n\n- **Coaching (Collaboration / Results / Diversity / Iteration /\nTransparency)**: A growth opportunity that is highlighted inline with our\nvalues.\n\n\nThese weekly feedback loops allow the engineer to highlight things that\ncould be done better in both the context of the onboarding and their\nday-to-day experience.\n\n\nLastly, it is optional but encouraged to hold an onboarding retrospective\nwhen the initial onboarding issue is closed with the following points to\ntalk through:\n\n\n- What went well?\n\n- What didn't go so well?\n\n- What could be improved?\n\n- Action items\n\n\n## 💾 TL;DR\n\n\nThe most successful software companies have a solidified onboarding process\nand continue to expand on it, setting up both the company and engineers for\nlong-term success. The above methods are how we do it at GitLab.\n\n\n## 💻 Remote development and the developer experience\n\n\nAt GitLab we have recently been hiring for our [Remote Development\neffort](https://about.gitlab.com/direction/create/ide/remote_development/)\nand many of these items are in play with the engineers we are bringing into\nthe company. We want to improve these processes to make onboarding even\neasier, mitigating the need for even setting up a specific local development\ntoolchain to be able to ship production code.\n\n\nIf you think you might be interested in a role at GitLab working on Remote\nDevelopment, check out our open listings\n[here](https://boards.greenhouse.io/gitlab/jobs/6201785002).\n\n\nRead more about [leading endingeering\nteams](/blog/cadence-is-everything-10x-engineering-organizations-for-10x-engineers/).\n","engineering",[23,24,25],"DevOps","testing","collaboration",{"slug":27,"featured":6,"template":28},"quickly-onboarding-engineers-successfully","BlogPost","content:en-us:blog:quickly-onboarding-engineers-successfully.yml","yaml","Quickly Onboarding Engineers Successfully","content","en-us/blog/quickly-onboarding-engineers-successfully.yml","en-us/blog/quickly-onboarding-engineers-successfully","yml",{"_path":37,"_dir":38,"_draft":6,"_partial":6,"_locale":7,"data":39,"_id":461,"_type":30,"title":462,"_source":32,"_file":463,"_stem":464,"_extension":35},"/shared/en-us/main-navigation","en-us",{"logo":40,"freeTrial":45,"sales":50,"login":55,"items":60,"search":392,"minimal":423,"duo":442,"pricingDeployment":451},{"config":41},{"href":42,"dataGaName":43,"dataGaLocation":44},"/","gitlab logo","header",{"text":46,"config":47},"Get free trial",{"href":48,"dataGaName":49,"dataGaLocation":44},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":51,"config":52},"Talk to sales",{"href":53,"dataGaName":54,"dataGaLocation":44},"/sales/","sales",{"text":56,"config":57},"Sign in",{"href":58,"dataGaName":59,"dataGaLocation":44},"https://gitlab.com/users/sign_in/","sign in",[61,105,203,208,313,373],{"text":62,"config":63,"cards":65,"footer":88},"Platform",{"dataNavLevelOne":64},"platform",[66,72,80],{"title":62,"description":67,"link":68},"The most comprehensive AI-powered DevSecOps Platform",{"text":69,"config":70},"Explore our Platform",{"href":71,"dataGaName":64,"dataGaLocation":44},"/platform/",{"title":73,"description":74,"link":75},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":76,"config":77},"Meet GitLab Duo",{"href":78,"dataGaName":79,"dataGaLocation":44},"/gitlab-duo/","gitlab duo ai",{"title":81,"description":82,"link":83},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":84,"config":85},"Learn more",{"href":86,"dataGaName":87,"dataGaLocation":44},"/why-gitlab/","why gitlab",{"title":89,"items":90},"Get started with",[91,96,101],{"text":92,"config":93},"Platform Engineering",{"href":94,"dataGaName":95,"dataGaLocation":44},"/solutions/platform-engineering/","platform engineering",{"text":97,"config":98},"Developer Experience",{"href":99,"dataGaName":100,"dataGaLocation":44},"/developer-experience/","Developer experience",{"text":102,"config":103},"MLOps",{"href":104,"dataGaName":102,"dataGaLocation":44},"/topics/devops/the-role-of-ai-in-devops/",{"text":106,"left":107,"config":108,"link":110,"lists":114,"footer":185},"Product",true,{"dataNavLevelOne":109},"solutions",{"text":111,"config":112},"View all Solutions",{"href":113,"dataGaName":109,"dataGaLocation":44},"/solutions/",[115,140,164],{"title":116,"description":117,"link":118,"items":123},"Automation","CI/CD and automation to accelerate deployment",{"config":119},{"icon":120,"href":121,"dataGaName":122,"dataGaLocation":44},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[124,128,132,136],{"text":125,"config":126},"CI/CD",{"href":127,"dataGaLocation":44,"dataGaName":125},"/solutions/continuous-integration/",{"text":129,"config":130},"AI-Assisted Development",{"href":78,"dataGaLocation":44,"dataGaName":131},"AI assisted development",{"text":133,"config":134},"Source Code Management",{"href":135,"dataGaLocation":44,"dataGaName":133},"/solutions/source-code-management/",{"text":137,"config":138},"Automated Software Delivery",{"href":121,"dataGaLocation":44,"dataGaName":139},"Automated software delivery",{"title":141,"description":142,"link":143,"items":148},"Security","Deliver code faster without compromising security",{"config":144},{"href":145,"dataGaName":146,"dataGaLocation":44,"icon":147},"/solutions/security-compliance/","security and compliance","ShieldCheckLight",[149,154,159],{"text":150,"config":151},"Application Security Testing",{"href":152,"dataGaName":153,"dataGaLocation":44},"/solutions/application-security-testing/","Application security testing",{"text":155,"config":156},"Software Supply Chain Security",{"href":157,"dataGaLocation":44,"dataGaName":158},"/solutions/supply-chain/","Software supply chain security",{"text":160,"config":161},"Software Compliance",{"href":162,"dataGaName":163,"dataGaLocation":44},"/solutions/software-compliance/","software compliance",{"title":165,"link":166,"items":171},"Measurement",{"config":167},{"icon":168,"href":169,"dataGaName":170,"dataGaLocation":44},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[172,176,180],{"text":173,"config":174},"Visibility & Measurement",{"href":169,"dataGaLocation":44,"dataGaName":175},"Visibility and Measurement",{"text":177,"config":178},"Value Stream Management",{"href":179,"dataGaLocation":44,"dataGaName":177},"/solutions/value-stream-management/",{"text":181,"config":182},"Analytics & Insights",{"href":183,"dataGaLocation":44,"dataGaName":184},"/solutions/analytics-and-insights/","Analytics and insights",{"title":186,"items":187},"GitLab for",[188,193,198],{"text":189,"config":190},"Enterprise",{"href":191,"dataGaLocation":44,"dataGaName":192},"/enterprise/","enterprise",{"text":194,"config":195},"Small Business",{"href":196,"dataGaLocation":44,"dataGaName":197},"/small-business/","small business",{"text":199,"config":200},"Public Sector",{"href":201,"dataGaLocation":44,"dataGaName":202},"/solutions/public-sector/","public sector",{"text":204,"config":205},"Pricing",{"href":206,"dataGaName":207,"dataGaLocation":44,"dataNavLevelOne":207},"/pricing/","pricing",{"text":209,"config":210,"link":212,"lists":216,"feature":300},"Resources",{"dataNavLevelOne":211},"resources",{"text":213,"config":214},"View all resources",{"href":215,"dataGaName":211,"dataGaLocation":44},"/resources/",[217,250,272],{"title":218,"items":219},"Getting started",[220,225,230,235,240,245],{"text":221,"config":222},"Install",{"href":223,"dataGaName":224,"dataGaLocation":44},"/install/","install",{"text":226,"config":227},"Quick start guides",{"href":228,"dataGaName":229,"dataGaLocation":44},"/get-started/","quick setup checklists",{"text":231,"config":232},"Learn",{"href":233,"dataGaLocation":44,"dataGaName":234},"https://university.gitlab.com/","learn",{"text":236,"config":237},"Product documentation",{"href":238,"dataGaName":239,"dataGaLocation":44},"https://docs.gitlab.com/","product documentation",{"text":241,"config":242},"Best practice videos",{"href":243,"dataGaName":244,"dataGaLocation":44},"/getting-started-videos/","best practice videos",{"text":246,"config":247},"Integrations",{"href":248,"dataGaName":249,"dataGaLocation":44},"/integrations/","integrations",{"title":251,"items":252},"Discover",[253,258,262,267],{"text":254,"config":255},"Customer success stories",{"href":256,"dataGaName":257,"dataGaLocation":44},"/customers/","customer success stories",{"text":259,"config":260},"Blog",{"href":261,"dataGaName":5,"dataGaLocation":44},"/blog/",{"text":263,"config":264},"Remote",{"href":265,"dataGaName":266,"dataGaLocation":44},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":268,"config":269},"TeamOps",{"href":270,"dataGaName":271,"dataGaLocation":44},"/teamops/","teamops",{"title":273,"items":274},"Connect",[275,280,285,290,295],{"text":276,"config":277},"GitLab Services",{"href":278,"dataGaName":279,"dataGaLocation":44},"/services/","services",{"text":281,"config":282},"Community",{"href":283,"dataGaName":284,"dataGaLocation":44},"/community/","community",{"text":286,"config":287},"Forum",{"href":288,"dataGaName":289,"dataGaLocation":44},"https://forum.gitlab.com/","forum",{"text":291,"config":292},"Events",{"href":293,"dataGaName":294,"dataGaLocation":44},"/events/","events",{"text":296,"config":297},"Partners",{"href":298,"dataGaName":299,"dataGaLocation":44},"/partners/","partners",{"backgroundColor":301,"textColor":302,"text":303,"image":304,"link":308},"#2f2a6b","#fff","Insights for the future of software development",{"altText":305,"config":306},"the source promo card",{"src":307},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":309,"config":310},"Read the latest",{"href":311,"dataGaName":312,"dataGaLocation":44},"/the-source/","the source",{"text":314,"config":315,"lists":317},"Company",{"dataNavLevelOne":316},"company",[318],{"items":319},[320,325,331,333,338,343,348,353,358,363,368],{"text":321,"config":322},"About",{"href":323,"dataGaName":324,"dataGaLocation":44},"/company/","about",{"text":326,"config":327,"footerGa":330},"Jobs",{"href":328,"dataGaName":329,"dataGaLocation":44},"/jobs/","jobs",{"dataGaName":329},{"text":291,"config":332},{"href":293,"dataGaName":294,"dataGaLocation":44},{"text":334,"config":335},"Leadership",{"href":336,"dataGaName":337,"dataGaLocation":44},"/company/team/e-group/","leadership",{"text":339,"config":340},"Team",{"href":341,"dataGaName":342,"dataGaLocation":44},"/company/team/","team",{"text":344,"config":345},"Handbook",{"href":346,"dataGaName":347,"dataGaLocation":44},"https://handbook.gitlab.com/","handbook",{"text":349,"config":350},"Investor relations",{"href":351,"dataGaName":352,"dataGaLocation":44},"https://ir.gitlab.com/","investor relations",{"text":354,"config":355},"Trust Center",{"href":356,"dataGaName":357,"dataGaLocation":44},"/security/","trust center",{"text":359,"config":360},"AI Transparency Center",{"href":361,"dataGaName":362,"dataGaLocation":44},"/ai-transparency-center/","ai transparency center",{"text":364,"config":365},"Newsletter",{"href":366,"dataGaName":367,"dataGaLocation":44},"/company/contact/","newsletter",{"text":369,"config":370},"Press",{"href":371,"dataGaName":372,"dataGaLocation":44},"/press/","press",{"text":374,"config":375,"lists":376},"Contact us",{"dataNavLevelOne":316},[377],{"items":378},[379,382,387],{"text":51,"config":380},{"href":53,"dataGaName":381,"dataGaLocation":44},"talk to sales",{"text":383,"config":384},"Get help",{"href":385,"dataGaName":386,"dataGaLocation":44},"/support/","get help",{"text":388,"config":389},"Customer portal",{"href":390,"dataGaName":391,"dataGaLocation":44},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":393,"login":394,"suggestions":401},"Close",{"text":395,"link":396},"To search repositories and projects, login to",{"text":397,"config":398},"gitlab.com",{"href":58,"dataGaName":399,"dataGaLocation":400},"search login","search",{"text":402,"default":403},"Suggestions",[404,406,410,412,416,420],{"text":73,"config":405},{"href":78,"dataGaName":73,"dataGaLocation":400},{"text":407,"config":408},"Code Suggestions (AI)",{"href":409,"dataGaName":407,"dataGaLocation":400},"/solutions/code-suggestions/",{"text":125,"config":411},{"href":127,"dataGaName":125,"dataGaLocation":400},{"text":413,"config":414},"GitLab on AWS",{"href":415,"dataGaName":413,"dataGaLocation":400},"/partners/technology-partners/aws/",{"text":417,"config":418},"GitLab on Google Cloud",{"href":419,"dataGaName":417,"dataGaLocation":400},"/partners/technology-partners/google-cloud-platform/",{"text":421,"config":422},"Why GitLab?",{"href":86,"dataGaName":421,"dataGaLocation":400},{"freeTrial":424,"mobileIcon":429,"desktopIcon":434,"secondaryButton":437},{"text":425,"config":426},"Start free trial",{"href":427,"dataGaName":49,"dataGaLocation":428},"https://gitlab.com/-/trials/new/","nav",{"altText":430,"config":431},"Gitlab Icon",{"src":432,"dataGaName":433,"dataGaLocation":428},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":430,"config":435},{"src":436,"dataGaName":433,"dataGaLocation":428},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":438,"config":439},"Get Started",{"href":440,"dataGaName":441,"dataGaLocation":428},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":443,"mobileIcon":447,"desktopIcon":449},{"text":444,"config":445},"Learn more about GitLab Duo",{"href":78,"dataGaName":446,"dataGaLocation":428},"gitlab duo",{"altText":430,"config":448},{"src":432,"dataGaName":433,"dataGaLocation":428},{"altText":430,"config":450},{"src":436,"dataGaName":433,"dataGaLocation":428},{"freeTrial":452,"mobileIcon":457,"desktopIcon":459},{"text":453,"config":454},"Back to pricing",{"href":206,"dataGaName":455,"dataGaLocation":428,"icon":456},"back to pricing","GoBack",{"altText":430,"config":458},{"src":432,"dataGaName":433,"dataGaLocation":428},{"altText":430,"config":460},{"src":436,"dataGaName":433,"dataGaLocation":428},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":466,"_dir":38,"_draft":6,"_partial":6,"_locale":7,"title":467,"button":468,"image":473,"config":477,"_id":479,"_type":30,"_source":32,"_file":480,"_stem":481,"_extension":35},"/shared/en-us/banner","is now in public beta!",{"text":469,"config":470},"Try the Beta",{"href":471,"dataGaName":472,"dataGaLocation":44},"/gitlab-duo/agent-platform/","duo banner",{"altText":474,"config":475},"GitLab Duo Agent Platform",{"src":476},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753720689/somrf9zaunk0xlt7ne4x.svg",{"layout":478},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":483,"_dir":38,"_draft":6,"_partial":6,"_locale":7,"data":484,"_id":688,"_type":30,"title":689,"_source":32,"_file":690,"_stem":691,"_extension":35},"/shared/en-us/main-footer",{"text":485,"source":486,"edit":492,"contribute":497,"config":502,"items":507,"minimal":680},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":487,"config":488},"View page source",{"href":489,"dataGaName":490,"dataGaLocation":491},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":493,"config":494},"Edit this page",{"href":495,"dataGaName":496,"dataGaLocation":491},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":498,"config":499},"Please contribute",{"href":500,"dataGaName":501,"dataGaLocation":491},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":503,"facebook":504,"youtube":505,"linkedin":506},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[508,531,587,616,650],{"title":62,"links":509,"subMenu":514},[510],{"text":511,"config":512},"DevSecOps platform",{"href":71,"dataGaName":513,"dataGaLocation":491},"devsecops platform",[515],{"title":204,"links":516},[517,521,526],{"text":518,"config":519},"View plans",{"href":206,"dataGaName":520,"dataGaLocation":491},"view plans",{"text":522,"config":523},"Why Premium?",{"href":524,"dataGaName":525,"dataGaLocation":491},"/pricing/premium/","why premium",{"text":527,"config":528},"Why Ultimate?",{"href":529,"dataGaName":530,"dataGaLocation":491},"/pricing/ultimate/","why ultimate",{"title":532,"links":533},"Solutions",[534,539,541,543,548,553,557,560,564,569,571,574,577,582],{"text":535,"config":536},"Digital transformation",{"href":537,"dataGaName":538,"dataGaLocation":491},"/topics/digital-transformation/","digital transformation",{"text":150,"config":540},{"href":152,"dataGaName":150,"dataGaLocation":491},{"text":139,"config":542},{"href":121,"dataGaName":122,"dataGaLocation":491},{"text":544,"config":545},"Agile development",{"href":546,"dataGaName":547,"dataGaLocation":491},"/solutions/agile-delivery/","agile delivery",{"text":549,"config":550},"Cloud transformation",{"href":551,"dataGaName":552,"dataGaLocation":491},"/topics/cloud-native/","cloud transformation",{"text":554,"config":555},"SCM",{"href":135,"dataGaName":556,"dataGaLocation":491},"source code management",{"text":125,"config":558},{"href":127,"dataGaName":559,"dataGaLocation":491},"continuous integration & delivery",{"text":561,"config":562},"Value stream management",{"href":179,"dataGaName":563,"dataGaLocation":491},"value stream management",{"text":565,"config":566},"GitOps",{"href":567,"dataGaName":568,"dataGaLocation":491},"/solutions/gitops/","gitops",{"text":189,"config":570},{"href":191,"dataGaName":192,"dataGaLocation":491},{"text":572,"config":573},"Small business",{"href":196,"dataGaName":197,"dataGaLocation":491},{"text":575,"config":576},"Public sector",{"href":201,"dataGaName":202,"dataGaLocation":491},{"text":578,"config":579},"Education",{"href":580,"dataGaName":581,"dataGaLocation":491},"/solutions/education/","education",{"text":583,"config":584},"Financial services",{"href":585,"dataGaName":586,"dataGaLocation":491},"/solutions/finance/","financial services",{"title":209,"links":588},[589,591,593,595,598,600,602,604,606,608,610,612,614],{"text":221,"config":590},{"href":223,"dataGaName":224,"dataGaLocation":491},{"text":226,"config":592},{"href":228,"dataGaName":229,"dataGaLocation":491},{"text":231,"config":594},{"href":233,"dataGaName":234,"dataGaLocation":491},{"text":236,"config":596},{"href":238,"dataGaName":597,"dataGaLocation":491},"docs",{"text":259,"config":599},{"href":261,"dataGaName":5,"dataGaLocation":491},{"text":254,"config":601},{"href":256,"dataGaName":257,"dataGaLocation":491},{"text":263,"config":603},{"href":265,"dataGaName":266,"dataGaLocation":491},{"text":276,"config":605},{"href":278,"dataGaName":279,"dataGaLocation":491},{"text":268,"config":607},{"href":270,"dataGaName":271,"dataGaLocation":491},{"text":281,"config":609},{"href":283,"dataGaName":284,"dataGaLocation":491},{"text":286,"config":611},{"href":288,"dataGaName":289,"dataGaLocation":491},{"text":291,"config":613},{"href":293,"dataGaName":294,"dataGaLocation":491},{"text":296,"config":615},{"href":298,"dataGaName":299,"dataGaLocation":491},{"title":314,"links":617},[618,620,622,624,626,628,630,634,639,641,643,645],{"text":321,"config":619},{"href":323,"dataGaName":316,"dataGaLocation":491},{"text":326,"config":621},{"href":328,"dataGaName":329,"dataGaLocation":491},{"text":334,"config":623},{"href":336,"dataGaName":337,"dataGaLocation":491},{"text":339,"config":625},{"href":341,"dataGaName":342,"dataGaLocation":491},{"text":344,"config":627},{"href":346,"dataGaName":347,"dataGaLocation":491},{"text":349,"config":629},{"href":351,"dataGaName":352,"dataGaLocation":491},{"text":631,"config":632},"Sustainability",{"href":633,"dataGaName":631,"dataGaLocation":491},"/sustainability/",{"text":635,"config":636},"Diversity, inclusion and belonging (DIB)",{"href":637,"dataGaName":638,"dataGaLocation":491},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":354,"config":640},{"href":356,"dataGaName":357,"dataGaLocation":491},{"text":364,"config":642},{"href":366,"dataGaName":367,"dataGaLocation":491},{"text":369,"config":644},{"href":371,"dataGaName":372,"dataGaLocation":491},{"text":646,"config":647},"Modern Slavery Transparency Statement",{"href":648,"dataGaName":649,"dataGaLocation":491},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":651,"links":652},"Contact Us",[653,656,658,660,665,670,675],{"text":654,"config":655},"Contact an expert",{"href":53,"dataGaName":54,"dataGaLocation":491},{"text":383,"config":657},{"href":385,"dataGaName":386,"dataGaLocation":491},{"text":388,"config":659},{"href":390,"dataGaName":391,"dataGaLocation":491},{"text":661,"config":662},"Status",{"href":663,"dataGaName":664,"dataGaLocation":491},"https://status.gitlab.com/","status",{"text":666,"config":667},"Terms of use",{"href":668,"dataGaName":669,"dataGaLocation":491},"/terms/","terms of use",{"text":671,"config":672},"Privacy statement",{"href":673,"dataGaName":674,"dataGaLocation":491},"/privacy/","privacy statement",{"text":676,"config":677},"Cookie preferences",{"dataGaName":678,"dataGaLocation":491,"id":679,"isOneTrustButton":107},"cookie preferences","ot-sdk-btn",{"items":681},[682,684,686],{"text":666,"config":683},{"href":668,"dataGaName":669,"dataGaLocation":491},{"text":671,"config":685},{"href":673,"dataGaName":674,"dataGaLocation":491},{"text":676,"config":687},{"dataGaName":678,"dataGaLocation":491,"id":679,"isOneTrustButton":107},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",[693],{"_path":694,"_dir":695,"_draft":6,"_partial":6,"_locale":7,"content":696,"config":700,"_id":702,"_type":30,"title":703,"_source":32,"_file":704,"_stem":705,"_extension":35},"/en-us/blog/authors/david-oregan","authors",{"name":18,"config":697},{"headshot":698,"ctfId":699},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659853/Blog/Author%20Headshots/oregand-headshot.png","oregand",{"template":701},"BlogAuthor","content:en-us:blog:authors:david-oregan.yml","David Oregan","en-us/blog/authors/david-oregan.yml","en-us/blog/authors/david-oregan",{"_path":707,"_dir":38,"_draft":6,"_partial":6,"_locale":7,"header":708,"eyebrow":709,"blurb":710,"button":711,"secondaryButton":715,"_id":717,"_type":30,"title":718,"_source":32,"_file":719,"_stem":720,"_extension":35},"/shared/en-us/next-steps","Start shipping better software faster","50%+ of the Fortune 100 trust GitLab","See what your team can do with the intelligent\n\n\nDevSecOps platform.\n",{"text":46,"config":712},{"href":713,"dataGaName":49,"dataGaLocation":714},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":51,"config":716},{"href":53,"dataGaName":54,"dataGaLocation":714},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",1758326243289]