[{"data":1,"prerenderedAt":1080},["ShallowReactive",2],{"/blog/engineering-teams-collaborating-remotely":3,"navigation-en-us":293,"banner-en-us":721,"footer-en-us":731,"blog-post-authors-en-us-Sara Kassabian":976,"blog-related-posts-en-us-engineering-teams-collaborating-remotely":990,"blog-promotions-en-us":1016,"next-steps-en-us":1070},{"id":4,"title":5,"authors":6,"body":8,"category":272,"date":273,"description":274,"extension":275,"externalUrl":276,"faq":276,"featured":277,"heroImage":278,"meta":279,"navigation":280,"path":281,"seo":282,"slug":286,"stem":287,"tags":288,"template":291,"updatedDate":276,"__hash__":292},"blogPosts/en-us/blog/engineering-teams-collaborating-remotely.md","How to carry out remote work team collaboration",[7],"Sara Kassabian",{"type":9,"value":10,"toc":257},"minimark",[11,29,37,42,45,53,56,59,72,77,80,83,86,94,98,101,132,136,145,148,151,157,160,175,179,194,200,204,207,211,231,235,243],[12,13,14],"p",{},[15,16,17,18,23,24,28],"em",{},"This post is the third in our ongoing series about remote work and engineering. Check out the previous posts, ",[19,20,22],"a",{"href":21},"/blog/tips-for-managing-engineering-teams-remotely/","Tips for engineering managers learning to lead remotely",", and ",[19,25,27],{"href":26},"/blog/remote-pair-programming-tips/","Tips for remote pair programming",".",[12,30,31,32,28],{},"Almost a year into the pandemic, it’s still unclear when it will be safe to head back into the office. While many companies have resolved the initial growing pains of transitioning from a colocated to an all-remote workplace, we want to help your teams go from surviving to thriving by sharing some strategies to ",[19,33,36],{"href":34,"rel":35},"https://handbook.gitlab.com/handbook/company/culture/all-remote/collaboration-and-whiteboarding/",[],"improve remote work collaboration",[38,39,41],"h2",{"id":40},"remote-working-and-asynchronous-communication","Remote working and asynchronous communication",[12,43,44],{},"Traditional methods of communication and project management might work in a colocated office setting, but don’t necessarily translate to a remote environment. In a video on GitLab Unfiltered (our company YouTube channel where team members share their work with the public), Austin Regnery, product designer on Manage: Compliance at GitLab, and Nick Post, senior product designer on Manage: Optimize at GitLab, talk about the growing pains of transitioning from working synchronously to asynchronously.",[12,46,47,48,52],{},"\"Emails and meetings... ",[49,50,51],"span",{},"it's all"," email, email, email, meeting, PowerPoint, that’s the modus operandi for how companies collaborated,\" says Nick. \"And it’s something that companies and teams have really held on to.\"",[12,54,55],{},"Asynchronous communication challenges the traditional modes of workplace communication, but at GitLab, we’ve discovered that this more modern method of collaboration is more efficient and effective in delivering business value to our customers and helping our team members achieve a work-life balance.",[12,57,58],{},"Watch the video below to learn how these designers work asynchronously.",[60,61,64,65],"figure",{"className":62},[63],"video_container","\n  ",[66,67,71],"iframe",{"src":68,"frameBorder":69,"allowFullScreen":70},"https://www.youtube-nocookie.com/embed/stLBy9TWJBw","0","true"," ",[73,74,76],"h3",{"id":75},"remote-work-collaboration-be-sensitive-to-timezones","Remote work collaboration: be sensitive to timezones",[12,78,79],{},"When your team is working in the same office, the workday begins and ends at roughly the same time for everyone. At GitLab, we work asynchronously and our team is globally distributed, which means work is completed on a 24-hour clock instead of just eight hours.",[12,81,82],{},"One of the biggest challenges with working asynchronously is ensuring that all team members feel a sense of belonging across timezones.",[12,84,85],{},"\"Timezones matter,\" says Nuritzi Sanchez, senior open source program manager at GitLab. \"Make sure you're not leaving out team members in one locale. Have meetings at different times if needed (e.g., once a week in a NORAM-friendly time, next week in APAC-friendly time, etc).\"",[12,87,88,89,28],{},"Making the switch from synchronous to asynchronous work isn’t easy but really pays off. Learn more about ",[19,90,93],{"href":91,"rel":92},"https://handbook.gitlab.com/handbook/company/culture/all-remote/asynchronous/#async-at-gitlab",[],"how we work asynchronously at GitLab",[73,95,97],{"id":96},"remote-work-collaboration-maximize-synchronous-time","Remote work collaboration: maximize synchronous time",[12,99,100],{},"There are times when synchronous communication is the best option, such as during weekly team meetings and one-on-ones. Nuritzi explains that there are a few teams at GitLab that have adopted a particular structure to make the most out of every team meeting.",[102,103,104,108,111,114,117,120,123],"ul",{},[105,106,107],"li",{},"Always have an agenda: Every meeting needs an agenda, usually in Google Docs, that allows team members to add discussion items and notes before and during the meeting.",[105,109,110],{},"Notes are key: \"In OSS communities, meeting notes or IRC chats are something that are usually posted publicly later so everyone who needs to can catch up,\" says Nuritiz.",[105,112,113],{},"Start with check-ins: Team members voluntarily share whether they're at a green/yellow/red level in their work life and personal life. Managers are always advised to participate in these check-ins to set a collaborative tone.",[105,115,116],{},"FYIs: Not everything on the agenda will merit discussion. Add FYIs for items that should be shared with the team but don't require extensive dialogue.",[105,118,119],{},"Discussion topics: Some agenda items will need to be discussed with the team, add these in the discussion items section of the agenda.",[105,121,122],{},"Meetings are optional: Not every team member will be able to attend every meeting, and that's OK. Team members that aren't present can still participate by adding discussion items, FYIs, and notes to the agenda that can be shared by their fellow team members.",[105,124,125,126,131],{},"Try to make it fun: We start and end every ",[19,127,130],{"href":128,"rel":129},"https://youtube.com/playlist?list=PL05JrBw4t0KppgWkSa3YgDgc_qUTKsBCs",[],"Inbound Marketing weekly recap meeting"," with music to liven up Thursdays for our globally distributed team.",[38,133,135],{"id":134},"how-to-make-remote-onboarding-feel-welcoming","How to make remote onboarding feel welcoming",[12,137,138,139,144],{},"Onboarding is just one example of a workplace process that has been impacted by the pandemic. This makes having empathy for the new hire even more important than usual. Empathetic onboarding means framing the process from the perspective of the new hire, says ",[19,140,143],{"href":141,"rel":142},"https://ca.linkedin.com/in/alexandrasunderland",[],"Alexandra Sunderland",", engineering manager at Fellow.",[12,146,147],{},"Alexandra iterated on her onboarding process over a number of years and has since developed a six-step framework that she presented at our virtual user conference, GitLab Commit, last year. The six steps are: (1) Focus on relationships, (2) write knowledge down, (3) create an FAQ, (4) set goals and milestones, (5) set up their physical space, (6) ask for feedback.",[12,149,150],{},"Watch the video below to learn how Fellow onboards engineers remotely.",[60,152,64,154],{"className":153},[63],[66,155,71],{"src":156,"frameBorder":69,"allowFullScreen":70},"https://www.youtube-nocookie.com/embed/tdWxlpN8dUk",[12,158,159],{},"Beyond making sure new team members are set up with a functional workspace, the secret to successful onboarding is assuming that the team member has the skills and knowledge necessary to do their job, but still needs to learn the context in which to do it, according to Alexandra.",[12,161,162,163,168,169,174],{},"GitLab has a ",[19,164,167],{"href":165,"rel":166},"https://handbook.gitlab.com/handbook/people-group/general-onboarding/",[],"unique onboarding process",", in that new hires are given a detailed checklist in an issue and are assigned an onboarding buddy. This onboarding process is a crash course in working as a ",[19,170,173],{"href":171,"rel":172},"https://handbook.gitlab.com/handbook/values/#managers-of-one",[],"manager of one"," in an asynchronous workplace.",[38,176,178],{"id":177},"how-to-collaborate-on-releases-remotely","How to collaborate on releases remotely",[12,180,181,182,187,188,193],{},"Mattermost's ",[19,183,186],{"href":184,"rel":185},"https://www.linkedin.com/in/arothschild",[],"Aaron Rothschild",", senior product manager, and ",[19,189,192],{"href":190,"rel":191},"https://www.linkedin.com/in/icelander",[],"Paul Rothrock",", customer engineer, describe how their dashboard that provides visibility into the DevOps process can be used with tools such as Jira, Jenkins, and GitLab, to release software remotely. Watch the presentation from our user conference to see an example of how the team collaborates to deliver a release.",[60,195,64,197],{"className":196},[63],[66,198,71],{"src":199,"frameBorder":69,"allowFullScreen":70},"https://www.youtube-nocookie.com/embed/QBG0-YaDXu0",[38,201,203],{"id":202},"how-to-stay-social-when-youre-working-alone","How to stay social when you’re working alone",[12,205,206],{},"Communication technologies, specifically Slack, can help to cultivate a sense of community and belonging within our teams. We publicly recognize team members that contributed to success in a #team-member-updates channel on Slack, where we announce bonuses and promotions for team members across the company. We also show appreciation for our collaborators in the #thanks channel.",[73,208,210],{"id":209},"the-virtual-water-cooler","The (virtual) water cooler",[12,212,213,214,219,220,225,226,28],{},"The pandemic has us all practicing social distancing, but at GitLab, we worked hard to try and replicate the social aspect of the office through a ",[19,215,218],{"href":216,"rel":217},"https://handbook.gitlab.com/handbook/company/culture/all-remote/informal-communication/",[],"few different informal communication programs",", such as our coffee chats, and Slack channels devoted to different extracurriculars (I’m fond of the #dog and #baking channels, personally). The ",[19,221,224],{"href":222,"rel":223},"https://handbook.gitlab.com/handbook/company/culture/all-remote/informal-communication/#the-donut-bot",[],"Donut bot on Slack is a neat social feature",". The bot will randomly introduce you to a team member that you may not otherwise have collaborated with in your daily work, and invites the two team members to ",[19,227,230],{"href":228,"rel":229},"https://handbook.gitlab.com/handbook/company/culture/all-remote/informal-communication/#coffee-chats",[],"set up a coffee chat",[38,232,234],{"id":233},"up-level-your-remote-work-skills","Up-level your remote work skills",[12,236,237,242],{},[19,238,241],{"href":239,"rel":240},"https://www.coursera.org/learn/remote-team-management",[],"GitLab launched a free program on Coursera"," to help managers with the transition of managing a team remotely. The course is free to join and is packed with valuable information to help companies adapt to working remotely.",[12,244,245,246,251,252],{},"Cover image by ",[19,247,250],{"href":248,"rel":249},"https://unsplash.com/@cwmonty?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Chris Montgomery"," on ",[19,253,256],{"href":254,"rel":255},"https://unsplash.com/s/photos/remote-work?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Unsplash",{"title":258,"searchDepth":259,"depth":259,"links":260},"",2,[261,266,267,268,271],{"id":40,"depth":259,"text":41,"children":262},[263,265],{"id":75,"depth":264,"text":76},3,{"id":96,"depth":264,"text":97},{"id":134,"depth":259,"text":135},{"id":177,"depth":259,"text":178},{"id":202,"depth":259,"text":203,"children":269},[270],{"id":209,"depth":264,"text":210},{"id":233,"depth":259,"text":234},"engineering","2021-02-09","Some tips for successful asynchronous collaboration from all-remote engineering teams.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681893/Blog/Hero%20Images/remoteengineering.jpg",{},true,"/en-us/blog/engineering-teams-collaborating-remotely",{"title":5,"description":274,"ogTitle":5,"ogDescription":274,"noIndex":277,"ogImage":278,"ogUrl":283,"ogSiteName":284,"ogType":285,"canonicalUrls":283},"https://about.gitlab.com/blog/engineering-teams-collaborating-remotely","https://about.gitlab.com","article","engineering-teams-collaborating-remotely","en-us/blog/engineering-teams-collaborating-remotely",[289,290],"remote work","collaboration","BlogPost","dke_2f2BdAukh-eH5CGAwVKh2mPfP-7ijKZrZ_nDcFU",{"logo":294,"freeTrial":299,"sales":304,"login":309,"items":314,"search":641,"minimal":672,"duo":691,"switchNav":700,"pricingDeployment":711},{"config":295},{"href":296,"dataGaName":297,"dataGaLocation":298},"/","gitlab logo","header",{"text":300,"config":301},"Get free trial",{"href":302,"dataGaName":303,"dataGaLocation":298},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":305,"config":306},"Request a demo",{"href":307,"dataGaName":308,"dataGaLocation":298},"/sales/?contact-topic=request-demo","sales",{"text":310,"config":311},"Sign in",{"href":312,"dataGaName":313,"dataGaLocation":298},"https://gitlab.com/users/sign_in/","sign in",[315,344,444,449,563,619],{"text":316,"config":317,"menu":319},"Platform",{"dataNavLevelOne":318},"platform",{"type":320,"columns":321},"cards",[322,328,336],{"title":316,"description":323,"link":324},"The intelligent orchestration platform for DevSecOps",{"text":325,"config":326},"Explore our Platform",{"href":327,"dataGaName":318,"dataGaLocation":298},"/platform/",{"title":329,"description":330,"link":331},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":332,"config":333},"Meet GitLab Duo",{"href":334,"dataGaName":335,"dataGaLocation":298},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":337,"description":338,"link":339},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":340,"config":341},"Learn more",{"href":342,"dataGaName":343,"dataGaLocation":298},"/why-gitlab/","why gitlab",{"text":345,"left":280,"config":346,"menu":348},"Product",{"dataNavLevelOne":347},"solutions",{"type":349,"link":350,"columns":354,"feature":423},"lists",{"text":351,"config":352},"View all Solutions",{"href":353,"dataGaName":347,"dataGaLocation":298},"/solutions/",[355,379,402],{"title":356,"description":357,"link":358,"items":363},"Automation","CI/CD and automation to accelerate deployment",{"config":359},{"icon":360,"href":361,"dataGaName":362,"dataGaLocation":298},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[364,368,371,375],{"text":365,"config":366},"CI/CD",{"href":367,"dataGaLocation":298,"dataGaName":365},"/solutions/continuous-integration/",{"text":329,"config":369},{"href":334,"dataGaLocation":298,"dataGaName":370},"gitlab duo agent platform - product menu",{"text":372,"config":373},"Source Code Management",{"href":374,"dataGaLocation":298,"dataGaName":372},"/solutions/source-code-management/",{"text":376,"config":377},"Automated Software Delivery",{"href":361,"dataGaLocation":298,"dataGaName":378},"Automated software delivery",{"title":380,"description":381,"link":382,"items":387},"Security","Deliver code faster without compromising security",{"config":383},{"href":384,"dataGaName":385,"dataGaLocation":298,"icon":386},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[388,392,397],{"text":389,"config":390},"Application Security Testing",{"href":384,"dataGaName":391,"dataGaLocation":298},"Application security testing",{"text":393,"config":394},"Software Supply Chain Security",{"href":395,"dataGaLocation":298,"dataGaName":396},"/solutions/supply-chain/","Software supply chain security",{"text":398,"config":399},"Software Compliance",{"href":400,"dataGaName":401,"dataGaLocation":298},"/solutions/software-compliance/","software compliance",{"title":403,"link":404,"items":409},"Measurement",{"config":405},{"icon":406,"href":407,"dataGaName":408,"dataGaLocation":298},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[410,414,418],{"text":411,"config":412},"Visibility & Measurement",{"href":407,"dataGaLocation":298,"dataGaName":413},"Visibility and Measurement",{"text":415,"config":416},"Value Stream Management",{"href":417,"dataGaLocation":298,"dataGaName":415},"/solutions/value-stream-management/",{"text":419,"config":420},"Analytics & Insights",{"href":421,"dataGaLocation":298,"dataGaName":422},"/solutions/analytics-and-insights/","Analytics and insights",{"title":424,"type":349,"items":425},"GitLab for",[426,432,438],{"text":427,"config":428},"Enterprise",{"icon":429,"href":430,"dataGaLocation":298,"dataGaName":431},"Building","/enterprise/","enterprise",{"text":433,"config":434},"Small Business",{"icon":435,"href":436,"dataGaLocation":298,"dataGaName":437},"Work","/small-business/","small business",{"text":439,"config":440},"Public Sector",{"icon":441,"href":442,"dataGaLocation":298,"dataGaName":443},"Organization","/solutions/public-sector/","public sector",{"text":445,"config":446},"Pricing",{"href":447,"dataGaName":448,"dataGaLocation":298,"dataNavLevelOne":448},"/pricing/","pricing",{"text":450,"config":451,"menu":453},"Resources",{"dataNavLevelOne":452},"resources",{"type":349,"link":454,"columns":458,"feature":552},{"text":455,"config":456},"View all resources",{"href":457,"dataGaName":452,"dataGaLocation":298},"/resources/",[459,492,519],{"title":460,"items":461},"Getting started",[462,467,472,477,482,487],{"text":463,"config":464},"Install",{"href":465,"dataGaName":466,"dataGaLocation":298},"/install/","install",{"text":468,"config":469},"Quick start guides",{"href":470,"dataGaName":471,"dataGaLocation":298},"/get-started/","quick setup checklists",{"text":473,"config":474},"Learn",{"href":475,"dataGaLocation":298,"dataGaName":476},"https://university.gitlab.com/","learn",{"text":478,"config":479},"Product documentation",{"href":480,"dataGaName":481,"dataGaLocation":298},"https://docs.gitlab.com/","product documentation",{"text":483,"config":484},"Best practice videos",{"href":485,"dataGaName":486,"dataGaLocation":298},"/getting-started-videos/","best practice videos",{"text":488,"config":489},"Integrations",{"href":490,"dataGaName":491,"dataGaLocation":298},"/integrations/","integrations",{"title":493,"items":494},"Discover",[495,500,505,510,514],{"text":496,"config":497},"Customer success stories",{"href":498,"dataGaName":499,"dataGaLocation":298},"/customers/","customer success stories",{"text":501,"config":502},"Blog",{"href":503,"dataGaName":504,"dataGaLocation":298},"/blog/","blog",{"text":506,"config":507},"Demo Hub",{"href":508,"dataGaName":509,"dataGaLocation":298},"/demo-hub/","demo hub",{"text":511,"config":512},"The Source",{"href":513,"dataGaName":504,"dataGaLocation":298},"/the-source/",{"text":515,"config":516},"Remote",{"href":517,"dataGaName":518,"dataGaLocation":298},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":520,"items":521},"Connect",[522,527,532,537,542,547],{"text":523,"config":524},"GitLab Services",{"href":525,"dataGaName":526,"dataGaLocation":298},"/services/","services",{"text":528,"config":529},"Contribute",{"href":530,"dataGaName":531,"dataGaLocation":298},"https://contributors.gitlab.com","contribute",{"text":533,"config":534},"Community",{"href":535,"dataGaName":536,"dataGaLocation":298},"/community/","community",{"text":538,"config":539},"Forum",{"href":540,"dataGaName":541,"dataGaLocation":298},"https://forum.gitlab.com/","forum",{"text":543,"config":544},"Events",{"href":545,"dataGaName":546,"dataGaLocation":298},"/events/","events",{"text":548,"config":549},"Partners",{"href":550,"dataGaName":551,"dataGaLocation":298},"/partners/","partners",{"config":553,"title":556,"text":557,"link":558},{"background":554,"textColor":555},"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":559,"config":560},"Read the latest",{"href":561,"dataGaName":562,"dataGaLocation":298},"/whats-new/","whats new",{"text":564,"config":565,"menu":567},"Company",{"dataNavLevelOne":566},"company",{"type":349,"columns":568},[569],{"items":570},[571,576,582,584,589,594,599,604,609,614],{"text":572,"config":573},"About",{"href":574,"dataGaName":575,"dataGaLocation":298},"/company/","about",{"text":577,"config":578,"footerGa":581},"Jobs",{"href":579,"dataGaName":580,"dataGaLocation":298},"/jobs/","jobs",{"dataGaName":580},{"text":543,"config":583},{"href":545,"dataGaName":546,"dataGaLocation":298},{"text":585,"config":586},"Leadership",{"href":587,"dataGaName":588,"dataGaLocation":298},"/company/team/e-group/","leadership",{"text":590,"config":591},"Handbook",{"href":592,"dataGaName":593,"dataGaLocation":298},"https://handbook.gitlab.com/","handbook",{"text":595,"config":596},"Investor relations",{"href":597,"dataGaName":598,"dataGaLocation":298},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":600,"config":601},"Trust Center",{"href":602,"dataGaName":603,"dataGaLocation":298},"/security/","trust center",{"text":605,"config":606},"AI Transparency Center",{"href":607,"dataGaName":608,"dataGaLocation":298},"/ai-transparency-center/","ai transparency center",{"text":610,"config":611},"Newsletter",{"href":612,"dataGaName":613,"dataGaLocation":298},"/company/contact/#contact-forms","newsletter",{"text":615,"config":616},"Press",{"href":617,"dataGaName":618,"dataGaLocation":298},"/press/","press",{"text":620,"config":621,"menu":622},"Contact us",{"dataNavLevelOne":566},{"type":349,"columns":623},[624],{"items":625},[626,631,636],{"text":627,"config":628},"Talk to sales",{"href":629,"dataGaName":630,"dataGaLocation":298},"/sales/","talk to sales",{"text":632,"config":633},"Support portal",{"href":634,"dataGaName":635,"dataGaLocation":298},"https://support.gitlab.com/hc/en-us","support portal",{"text":637,"config":638},"Customer portal",{"href":639,"dataGaName":640,"dataGaLocation":298},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":642,"login":643,"suggestions":650},"Close",{"text":644,"link":645},"To search repositories and projects, login to",{"text":646,"config":647},"gitlab.com",{"href":312,"dataGaName":648,"dataGaLocation":649},"search login","search",{"text":651,"default":652},"Suggestions",[653,655,659,661,665,669],{"text":329,"config":654},{"href":334,"dataGaName":329,"dataGaLocation":649},{"text":656,"config":657},"Code Suggestions (AI)",{"href":658,"dataGaName":656,"dataGaLocation":649},"/solutions/code-suggestions/",{"text":365,"config":660},{"href":367,"dataGaName":365,"dataGaLocation":649},{"text":662,"config":663},"GitLab on AWS",{"href":664,"dataGaName":662,"dataGaLocation":649},"/partners/technology-partners/aws/",{"text":666,"config":667},"GitLab on Google Cloud",{"href":668,"dataGaName":666,"dataGaLocation":649},"/partners/technology-partners/google-cloud-platform/",{"text":670,"config":671},"Why GitLab?",{"href":342,"dataGaName":670,"dataGaLocation":649},{"freeTrial":673,"mobileIcon":678,"desktopIcon":683,"secondaryButton":686},{"text":674,"config":675},"Start free trial",{"href":676,"dataGaName":303,"dataGaLocation":677},"https://gitlab.com/-/trials/new/","nav",{"altText":679,"config":680},"Gitlab Icon",{"src":681,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":679,"config":684},{"src":685,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":687,"config":688},"Get Started",{"href":689,"dataGaName":690,"dataGaLocation":677},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":692,"mobileIcon":696,"desktopIcon":698},{"text":693,"config":694},"Learn more about GitLab Duo",{"href":334,"dataGaName":695,"dataGaLocation":677},"gitlab duo",{"altText":679,"config":697},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":699},{"src":685,"dataGaName":682,"dataGaLocation":677},{"button":701,"mobileIcon":706,"desktopIcon":708},{"text":702,"config":703},"/switch",{"href":704,"dataGaName":705,"dataGaLocation":677},"#contact","switch",{"altText":679,"config":707},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":709},{"src":710,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":712,"mobileIcon":717,"desktopIcon":719},{"text":713,"config":714},"Back to pricing",{"href":447,"dataGaName":715,"dataGaLocation":677,"icon":716},"back to pricing","GoBack",{"altText":679,"config":718},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":720},{"src":685,"dataGaName":682,"dataGaLocation":677},{"title":722,"titleMobile":723,"button":724,"config":729},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":340,"config":725},{"href":726,"dataGaName":727,"dataGaLocation":728},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":730,"disabled":277},"release",{"data":732},{"text":733,"source":734,"edit":740,"contribute":745,"config":750,"items":755,"minimal":965},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":735,"config":736},"View page source",{"href":737,"dataGaName":738,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":741,"config":742},"Edit this page",{"href":743,"dataGaName":744,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":746,"config":747},"Please contribute",{"href":748,"dataGaName":749,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":751,"facebook":752,"youtube":753,"linkedin":754},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[756,803,857,901,933],{"title":445,"links":757,"subMenu":772},[758,762,767],{"text":759,"config":760},"View plans",{"href":447,"dataGaName":761,"dataGaLocation":739},"view plans",{"text":763,"config":764},"Why Premium?",{"href":765,"dataGaName":766,"dataGaLocation":739},"/pricing/premium/","why premium",{"text":768,"config":769},"Why Ultimate?",{"href":770,"dataGaName":771,"dataGaLocation":739},"/pricing/ultimate/","why ultimate",[773],{"title":774,"links":775},"Contact Us",[776,779,781,783,788,793,798],{"text":777,"config":778},"Contact sales",{"href":629,"dataGaName":308,"dataGaLocation":739},{"text":632,"config":780},{"href":634,"dataGaName":635,"dataGaLocation":739},{"text":637,"config":782},{"href":639,"dataGaName":640,"dataGaLocation":739},{"text":784,"config":785},"Status",{"href":786,"dataGaName":787,"dataGaLocation":739},"https://status.gitlab.com/","status",{"text":789,"config":790},"Terms of use",{"href":791,"dataGaName":792,"dataGaLocation":739},"/terms/","terms of use",{"text":794,"config":795},"Privacy statement",{"href":796,"dataGaName":797,"dataGaLocation":739},"/privacy/","privacy statement",{"text":799,"config":800},"Cookie preferences",{"dataGaName":801,"dataGaLocation":739,"id":802,"isOneTrustButton":280},"cookie preferences","ot-sdk-btn",{"title":345,"links":804,"subMenu":813},[805,809],{"text":806,"config":807},"DevSecOps platform",{"href":327,"dataGaName":808,"dataGaLocation":739},"devsecops platform",{"text":810,"config":811},"AI-Assisted Development",{"href":334,"dataGaName":812,"dataGaLocation":739},"ai-assisted development",[814],{"title":815,"links":816},"Topics",[817,822,827,832,837,842,847,852],{"text":818,"config":819},"CICD",{"href":820,"dataGaName":821,"dataGaLocation":739},"/topics/ci-cd/","cicd",{"text":823,"config":824},"GitOps",{"href":825,"dataGaName":826,"dataGaLocation":739},"/topics/gitops/","gitops",{"text":828,"config":829},"DevOps",{"href":830,"dataGaName":831,"dataGaLocation":739},"/topics/devops/","devops",{"text":833,"config":834},"Version Control",{"href":835,"dataGaName":836,"dataGaLocation":739},"/topics/version-control/","version control",{"text":838,"config":839},"DevSecOps",{"href":840,"dataGaName":841,"dataGaLocation":739},"/topics/devsecops/","devsecops",{"text":843,"config":844},"Cloud Native",{"href":845,"dataGaName":846,"dataGaLocation":739},"/topics/cloud-native/","cloud native",{"text":848,"config":849},"AI for Coding",{"href":850,"dataGaName":851,"dataGaLocation":739},"/topics/devops/ai-for-coding/","ai for coding",{"text":853,"config":854},"Agentic AI",{"href":855,"dataGaName":856,"dataGaLocation":739},"/topics/agentic-ai/","agentic ai",{"title":858,"links":859},"Solutions",[860,862,864,869,873,876,880,883,885,888,891,896],{"text":389,"config":861},{"href":384,"dataGaName":389,"dataGaLocation":739},{"text":378,"config":863},{"href":361,"dataGaName":362,"dataGaLocation":739},{"text":865,"config":866},"Agile development",{"href":867,"dataGaName":868,"dataGaLocation":739},"/solutions/agile-delivery/","agile delivery",{"text":870,"config":871},"SCM",{"href":374,"dataGaName":872,"dataGaLocation":739},"source code management",{"text":818,"config":874},{"href":367,"dataGaName":875,"dataGaLocation":739},"continuous integration & delivery",{"text":877,"config":878},"Value stream management",{"href":417,"dataGaName":879,"dataGaLocation":739},"value stream management",{"text":823,"config":881},{"href":882,"dataGaName":826,"dataGaLocation":739},"/solutions/gitops/",{"text":427,"config":884},{"href":430,"dataGaName":431,"dataGaLocation":739},{"text":886,"config":887},"Small business",{"href":436,"dataGaName":437,"dataGaLocation":739},{"text":889,"config":890},"Public sector",{"href":442,"dataGaName":443,"dataGaLocation":739},{"text":892,"config":893},"Education",{"href":894,"dataGaName":895,"dataGaLocation":739},"/solutions/education/","education",{"text":897,"config":898},"Financial services",{"href":899,"dataGaName":900,"dataGaLocation":739},"/solutions/finance/","financial services",{"title":450,"links":902},[903,905,907,909,912,914,917,919,921,923,925,927,929,931],{"text":463,"config":904},{"href":465,"dataGaName":466,"dataGaLocation":739},{"text":468,"config":906},{"href":470,"dataGaName":471,"dataGaLocation":739},{"text":473,"config":908},{"href":475,"dataGaName":476,"dataGaLocation":739},{"text":478,"config":910},{"href":480,"dataGaName":911,"dataGaLocation":739},"docs",{"text":501,"config":913},{"href":503,"dataGaName":504,"dataGaLocation":739},{"text":915,"config":916},"What's new",{"href":561,"dataGaName":562,"dataGaLocation":739},{"text":496,"config":918},{"href":498,"dataGaName":499,"dataGaLocation":739},{"text":515,"config":920},{"href":517,"dataGaName":518,"dataGaLocation":739},{"text":523,"config":922},{"href":525,"dataGaName":526,"dataGaLocation":739},{"text":528,"config":924},{"href":530,"dataGaName":531,"dataGaLocation":739},{"text":533,"config":926},{"href":535,"dataGaName":536,"dataGaLocation":739},{"text":538,"config":928},{"href":540,"dataGaName":541,"dataGaLocation":739},{"text":543,"config":930},{"href":545,"dataGaName":546,"dataGaLocation":739},{"text":548,"config":932},{"href":550,"dataGaName":551,"dataGaLocation":739},{"title":564,"links":934},[935,937,939,941,943,945,949,954,956,958,960],{"text":572,"config":936},{"href":574,"dataGaName":566,"dataGaLocation":739},{"text":577,"config":938},{"href":579,"dataGaName":580,"dataGaLocation":739},{"text":585,"config":940},{"href":587,"dataGaName":588,"dataGaLocation":739},{"text":590,"config":942},{"href":592,"dataGaName":593,"dataGaLocation":739},{"text":595,"config":944},{"href":597,"dataGaName":598,"dataGaLocation":739},{"text":946,"config":947},"Sustainability",{"href":948,"dataGaName":946,"dataGaLocation":739},"/sustainability/",{"text":950,"config":951},"Diversity, inclusion and belonging (DIB)",{"href":952,"dataGaName":953,"dataGaLocation":739},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":600,"config":955},{"href":602,"dataGaName":603,"dataGaLocation":739},{"text":610,"config":957},{"href":612,"dataGaName":613,"dataGaLocation":739},{"text":615,"config":959},{"href":617,"dataGaName":618,"dataGaLocation":739},{"text":961,"config":962},"Modern Slavery Transparency Statement",{"href":963,"dataGaName":964,"dataGaLocation":739},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":966},[967,970,973],{"text":968,"config":969},"Terms",{"href":791,"dataGaName":792,"dataGaLocation":739},{"text":971,"config":972},"Cookies",{"dataGaName":801,"dataGaLocation":739,"id":802,"isOneTrustButton":280},{"text":974,"config":975},"Privacy",{"href":796,"dataGaName":797,"dataGaLocation":739},[977],{"id":978,"title":7,"body":276,"config":979,"content":981,"description":276,"extension":984,"meta":985,"navigation":280,"path":986,"seo":987,"stem":988,"__hash__":989},"blogAuthors/en-us/blog/authors/sara-kassabian.yml",{"template":980},"BlogAuthor",{"name":7,"config":982},{"headshot":258,"ctfId":983},"skassabian","yml",{},"/en-us/blog/authors/sara-kassabian",{},"en-us/blog/authors/sara-kassabian","6cCCPpjzkCDfb77tMVCyG8_FImRVQXA2VCMyiAjhFX0",[991,1000,1008],{"title":992,"description":993,"heroImage":994,"category":272,"date":995,"authors":996,"slug":999,"externalUrl":276},"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",[997,998],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":1001,"description":1002,"heroImage":1003,"category":272,"date":1004,"authors":1005,"slug":1007,"externalUrl":276},"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",[1006],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":1009,"description":1010,"heroImage":1011,"category":272,"date":1012,"authors":1013,"slug":1015,"externalUrl":276},"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",[1014],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":1017},[1018,1032,1044,1056],{"id":1019,"categories":1020,"header":1022,"text":1023,"button":1024,"image":1029},"ai-modernization",[1021],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1025,"config":1026},"Get your AI maturity score",{"href":1027,"dataGaName":1028,"dataGaLocation":504},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1030},{"src":1031},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1033,"categories":1034,"header":1036,"text":1023,"button":1037,"image":1041},"devops-modernization",[1035,841],"product","Are you just managing tools or shipping innovation?",{"text":1038,"config":1039},"Get your DevOps maturity score",{"href":1040,"dataGaName":1028,"dataGaLocation":504},"/assessments/devops-modernization-assessment/",{"config":1042},{"src":1043},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1045,"categories":1046,"header":1048,"text":1023,"button":1049,"image":1053},"security-modernization",[1047],"security","Are you trading speed for security?",{"text":1050,"config":1051},"Get your security maturity score",{"href":1052,"dataGaName":1028,"dataGaLocation":504},"/assessments/security-modernization-assessment/",{"config":1054},{"src":1055},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1057,"paths":1058,"header":1061,"text":1062,"button":1063,"image":1068},"github-azure-migration",[1059,1060],"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":1064,"config":1065},"See how GitLab compares to GitHub",{"href":1066,"dataGaName":1067,"dataGaLocation":504},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1069},{"src":1043},{"header":1071,"blurb":1072,"button":1073,"secondaryButton":1078},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1074,"config":1075},"Get your free trial",{"href":1076,"dataGaName":303,"dataGaLocation":1077},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":777,"config":1079},{"href":629,"dataGaName":308,"dataGaLocation":1077},1786803748865]