[{"data":1,"prerenderedAt":1682},["ShallowReactive",2],{"/blog/how-is-team-member-1-doing":3,"navigation-en-us":899,"banner-en-us":1325,"footer-en-us":1335,"blog-post-authors-en-us-Marcia Ramos":1579,"blog-related-posts-en-us-how-is-team-member-1-doing":1594,"blog-promotions-en-us":1618,"next-steps-en-us":1672},{"id":4,"title":5,"authors":6,"body":8,"category":867,"date":868,"description":869,"extension":870,"externalUrl":871,"faq":871,"featured":872,"heroImage":873,"meta":874,"navigation":889,"path":890,"seo":891,"slug":895,"stem":896,"tags":871,"template":897,"updatedDate":871,"__hash__":898},"blogPosts/en-us/blog/how-is-team-member-1-doing.md","How is team-member-1 doing?",[7],"Marcia Ramos",{"type":9,"value":10,"toc":852},"minimark",[11,21,34,37,42,50,104,112,191,196,205,245,314,321,324,331,334,341,379,384,393,400,404,407,415,429,463,466,479,482,485,499,502,519,522,528,534,547,559,565,570,815,819,822,828,831,835,838,841],[12,13,14,15,20],"p",{},"The engineer that gave the unfortunate command to ",[16,17,19],"a",{"href":18},"/blog/gitlab-dot-com-database-incident/","delete our primary database"," was not only on our minds but also of other people. He's known by the community as \"team-member-1\", as we referred to him by this expression in our public communications during the incident.",[12,22,23,24,28,29,33],{},"After we posted ",[16,25,27],{"href":26},"/blog/postmortem-of-database-outage-of-january-31/","the postmortem of the incident with GitLab.com",", we received notes from our community asking how was ",[30,31,32],"em",{},"team-member-1"," doing. We're here to tell you that.",[12,35,36],{},"We are still putting all our efforts into improving GitLab.com's infrastructure as a whole, to ensure this type of incident never happens again.",[38,39,41],"h2",{"id":40},"hugops","#HugOps",[12,43,44,45,49],{},"We were all really touched by the love our community sent us via ",[16,46,41],{"href":47,"rel":48},"https://twitter.com/i/moments/826818668948549632",[],":",[51,52,55,56,55,86],"div",{"className":53},[54],"row","\n  ",[51,57,62,63,55],{"className":58},[59,60,61],"col-md-6","col-sm-12","center","\n    ",[64,65,69,81,82],"blockquote",{"className":66,"dataLang":68},[67],"twitter-tweet","en",[12,70,72,75,76,80],{"lang":68,"dir":71},"ltr",[16,73,41],{"href":74},"https://twitter.com/hashtag/HugOps?src=hash"," to the ",[16,77,79],{"href":78},"https://twitter.com/gitlab","@gitlab"," team! Love your transparency. The only person who never breaks anything is the one who never does anything.","— Mindy Whitsitt (@MindyWhitsitt) ",[16,83,85],{"href":84},"https://twitter.com/MindyWhitsitt/status/827197361864720384","February 2, 2017",[51,87,62,89,55],{"className":88},[59,60,61],[64,90,92,100,101],{"className":91,"dataLang":68},[67],[12,93,94,95,99],{"lang":68,"dir":71},"All the ",[16,96,98],{"href":97},"https://twitter.com/hashtag/hugops?src=hash","#hugops"," in the world to the GitLab team for fixing their services. And *massive* respect for their communication about the issue.","— ma//:as (@mattiasgeniar) ",[16,102,85],{"href":103},"https://twitter.com/mattiasgeniar/status/826997025963122688",[12,105,106,49],{},[107,108,109,110],"strong",{},"At the end of the day, we are all ",[30,111,32],{},[51,113,55,115,55,166],{"className":114},[54],[51,116,62,118,62,130,62,152,55],{"className":117},[59,60,61],[64,119,121,126,127],{"className":120,"dataLang":68},[67],[12,122,123,124],{"lang":68,"dir":71},"Who is not the \"team-member-1\"? ",[16,125,41],{"href":74},"— Erkan Erol (@erkan_erol_) ",[16,128,85],{"href":129},"https://twitter.com/erkan_erol_/status/827040981677649921",[64,131,134,147,148],{"className":132,"dataConversation":133,"dataLang":68},[67],"none",[12,135,136,138,139,143,144,146],{"lang":68,"dir":71},[16,137,41],{"href":74}," to ",[16,140,142],{"href":141},"https://twitter.com/gitlabstatus","@gitlabstatus"," ",[16,145,79],{"href":78}," - we've all been there. You've got this! 💙🤖","— CircleCI (@circleci) ",[16,149,151],{"href":150},"https://twitter.com/circleci/status/826829739545415680","February 1, 2017",[64,153,155,162,163],{"className":154,"dataConversation":133,"dataLang":68},[67],[12,156,157,159,160],{"lang":68,"dir":71},[16,158,79],{"href":78}," welcome to the club:) You will be stronger than ever. Just keep on improving and never give up. 🤗 ",[16,161,98],{"href":97},"— Lemi Orhan Ergin (@lemiorhan) ",[16,164,151],{"href":165},"https://twitter.com/lemiorhan/status/826858037994483712",[51,167,62,169,55],{"className":168},[59,60,61],[64,170,172,187,188],{"className":171,"dataLang":68},[67],[12,173,175,143,179,143,183],{"lang":174,"dir":71},"und",[16,176,178],{"href":177},"https://twitter.com/hashtag/JeSuisTeamMember1?src=hash","#JeSuisTeamMember1",[16,180,182],{"href":181},"https://twitter.com/hashtag/GitLab?src=hash","#GitLab",[16,184,186],{"href":185},"https://t.co/bxvag3XdXV","pic.twitter.com/bxvag3XdXV","— kiru (@karmukis) ",[16,189,151],{"href":190},"https://twitter.com/karmukis/status/826875580465414145",[192,193,195],"h3",{"id":194},"support-from-our-community","Support from our community",[12,197,198,199,204],{},"The support our engineers received from our community was fantastic, people were appreciative of our ",[16,200,203],{"href":201,"rel":202},"https://handbook.gitlab.com/handbook/values/",[],"transparency"," in working on the solution. Even teams from other companies, who had been in that situation themselves, showed their support.",[51,206,55,208,55,227],{"className":207},[54],[51,209,62,211,55],{"className":210},[59,60,61],[64,212,214,223,224],{"className":213,"dataLang":68},[67],[12,215,216,217,219,220,222],{"lang":68,"dir":71},"Offering a heartfelt ",[16,218,98],{"href":97}," to my friends at ",[16,221,79],{"href":78},". Good people taking care of a tough situation. We are all here with you!","— Jono Bacon (@jonobacon) ",[16,225,151],{"href":226},"https://twitter.com/jonobacon/status/826828642151862272",[51,228,62,230,55],{"className":229},[59,60,61],[64,231,233,241,242],{"className":232,"dataLang":68},[67],[12,234,235,236,238,239],{"lang":68,"dir":71},"The ",[16,237,79],{"href":78}," handling of today's incident was exemplary. They were very transparent and up-front. We are all with team_member_1 ",[16,240,98],{"href":97},"— Markos Fragkakis (@fragkakis) ",[16,243,151],{"href":244},"https://twitter.com/fragkakis/status/826914947028418561",[51,246,55,248,55,280],{"className":247},[54],[51,249,62,251,62,264,55],{"className":250},[59,60,61],[64,252,254,260,261],{"className":253,"dataLang":68},[67],[12,255,256,257,259],{"lang":68,"dir":71},"Kudos got ",[16,258,79],{"href":78}," on their level of transparency.  I have a lot of respect for you...","— Ben Kuhl (@bkuhlorelse) ",[16,262,151],{"href":263},"https://twitter.com/bkuhlorelse/status/826797385410080768",[64,265,267,276,277],{"className":266,"dataLang":68},[67],[12,268,269,270,272,273,275],{"lang":68,"dir":71},"Whoah! Really big kudos for ",[16,271,79],{"href":78}," and the updates at ",[16,274,142],{"href":141}," ! Being honest about mistakes, transparency and the whole story!","— Rob Haverkamp (@rjrhaverkamp) ",[16,278,151],{"href":279},"https://twitter.com/rjrhaverkamp/status/826761189057236992",[51,281,62,283,62,299,55],{"className":282},[59,60,61],[64,284,286,295,296],{"className":285,"dataLang":68},[67],[12,287,288,289,291,292],{"lang":68,"dir":71},"This is next level corporate transparency. Kudos to ",[16,290,79],{"href":78},"! ",[16,293,294],{"href":294},"https://t.co/ZvHicD7TK3","— Thomas Chappelow (@tomchappelow) ",[16,297,151],{"href":298},"https://twitter.com/tomchappelow/status/826715341044772865",[64,300,302,310,311],{"className":301,"dataLang":68},[67],[12,303,304,305,307,308],{"lang":68,"dir":71},"Serious props and respect to the ",[16,306,79],{"href":78}," team during the recent incident. transparency++; you've all set a new standard ",[16,309,98],{"href":97},"— Laura Frank (@rhein_wein) ",[16,312,151],{"href":313},"https://twitter.com/rhein_wein/status/826875055703543808",[12,315,316,317,320],{},"❤️  ",[107,318,319],{},"Thank you all! We're very touched by your support!","  ❤️",[12,322,323],{},"The Codefresh team brought cookies to our Experience Center in San Francisco with a card saying:",[64,325,326],{},[12,327,328],{},[30,329,330],{},"Hey GitLab, We thought you could use a chance to destress a little. Don't sweat it we're rooting for you. We've all been there before and we have a lot of faith in you to work it out. You got THIS! From Dan, and the Codefresh Team",[12,332,333],{},"A group from Google came to our Experience Center and got our engineers $300 to spend on something to make them feel better after all of this was over:",[64,335,336],{},[12,337,338],{},[30,339,340],{},"Yay for you! We've all been there! :) From friends of yours at Google",[51,342,344,363],{"className":343},[54],[51,345,348],{"className":346},[59,60,347],"center-block",[12,349,350,355],{},[351,352],"img",{"alt":353,"src":354},"Google gift card","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398488/blog/Content%20Images/how-is-team-member-1-doing/google-gift.png",[356,357,358],"small",{},[30,359,360],{},[30,361,362],{},"Gift from Google",[51,364,366],{"className":365},[59,60,347],[12,367,368,372],{},[351,369],{"alt":370,"src":371},"Codefresh cookies","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398488/blog/Content%20Images/how-is-team-member-1-doing/colefresh-cookies.jpg",[356,373,374],{},[30,375,376],{},[30,377,378],{},"Gift from Codefresh",[12,380,316,381,320],{},[107,382,383],{},"Thank you Codefresh and Google!",[12,385,386,387,392],{},"The engineers involved have agreed that this extremely generous gift from Google will be spent on ",[16,388,391],{"href":389,"rel":390},"https://railsgirlssummerofcode.org/campaign/",[],"sponsoring Rails Girls events",". But the cookies were obviously eaten by the one who grabbed the pack! 😛",[12,394,395,396,399],{},"Needless to say, some special ",[107,397,398],{},"thank you"," swag is on its way to these amazing people that took the time to come to our boardroom and try to help us feel a bit better.",[38,401,403],{"id":402},"gitlab-values","GitLab Values",[12,405,406],{},"At GitLab we think that the people making the most mistakes frequently correlate with the people doing the most work. I certainly make a lot of mistakes every day. It is important not to double down on them but to acknowledge them and learn from it.",[12,408,409,410,414],{},"We make mistakes. What's different from person to person, organization to organization, is how to deal with them. What we ",[16,411,413],{"href":201,"rel":412},[],"value"," most at GitLab is:",[64,416,417],{},[418,419,420],"ul",{},[421,422,423],"li",{},[30,424,425,428],{},[107,426,427],{},"Transparency",": \"Don't be afraid to admit you made a mistake or were wrong. When something went wrong it is a great opportunity to say 'What’s the kaizen moment here?' and find a better way without hurt feelings.\"",[418,430,431,439],{},[421,432,433],{},[30,434,435,438],{},[107,436,437],{},"Collaboration",": \"Say sorry if you made a mistake apologize. Saying sorry is not a sign of weakness but one of strength. The people that do the most will likely make the most mistakes.\"",[421,440,441,446],{},[30,442,443,49],{},[107,444,445],{},"Behaviour",[418,447,448,453,458],{},[421,449,450],{},[30,451,452],{},"Be truthful and honest.",[421,454,455],{},[30,456,457],{},"Be dependable, reliable, fair, and respectful.",[421,459,460],{},[30,461,462],{},"Be committed, creative, inspiring, and passionate.",[12,464,465],{},"How could we value transparency if our team members were afraid of assuming their mistakes?",[64,467,468],{},[12,469,470,143,473,478],{},[30,471,472],{},"It is not our intent to have one of our team members implicated by the transparency. (...) We are very aware of the stress that such a mistake might cause and the rest of the team has been very supportive. (...) We recognize the risk to the company of being transparent, but your values are defined by what you do when it is hard.",[16,474,477],{"href":475,"rel":476},"https://news.ycombinator.com/item?id=13622645",[],"Sid Sijbrandij, CEO",".",[38,480,481],{"id":32},"Team-member-1",[12,483,484],{},"While we were putting the fire out, we received this comment:",[64,486,487],{},[12,488,489,492,493,498],{},[30,490,491],{},"The GitLab engineer (team-member-1) is one of the smartest people he's ever known - in fact, he's actually brilliant. So you can rest assured that the data loss wasn't caused by a an inexperienced kid."," (",[16,494,497],{"href":495,"rel":496},"https://news.ycombinator.com/item?id=13621016",[],"HN",")",[12,500,501],{},"And this thoughtful tweet:",[51,503,55,505],{"className":504},[61],[64,506,508,515,516],{"className":507,"dataLang":68},[67],[12,509,510,511],{"lang":68,"dir":71},"Pray for team-member-1 ",[16,512,514],{"href":513},"https://t.co/foQcWm0WJH","pic.twitter.com/foQcWm0WJH","— Rubén Fernández (@_rubenfa) ",[16,517,151],{"href":518},"https://twitter.com/_rubenfa/status/826785807495213058",[12,520,521],{},"We heard you Rubén! :)",[12,523,524,525,527],{},"Yes, ",[30,526,32],{}," is doing very well!",[12,529,530,531,533],{},"Coincidentally, just before the DB incident, ",[30,532,32],{}," had qualified for a promotion to senior developer. The outage did not change that decision.",[64,535,536],{},[12,537,538,541,542],{},[30,539,540],{},"Promotions are to be based on meeting the criteria of the role the individual is to be promoted in to (i.e. promote based on performance)"," - ",[16,543,546],{"href":544,"rel":545},"https://handbook.gitlab.com/handbook/people-group/promotions-transfers/",[],"GitLab PeopleOps Handbook",[12,548,549,550,555,556,558],{},"When we promote people at GitLab, or give a them a ",[16,551,554],{"href":552,"rel":553},"https://handbook.gitlab.com/handbook/total-rewards/incentives/#discretionary-bonuses",[],"bonus",", we share the reasons for that with the whole company. With the permission of ",[30,557,32],{},", this blog post is both the internal and external announcement of that promotion.",[192,560,562,563],{"id":561},"reasons-for-promoting-team-member-1","Reasons for promoting ",[30,564,32],{},[12,566,567,568,49],{},"Pablo Carranza (Production Lead), provided GitLab with the following reasons to promote ",[30,569,32],{},[51,571,575,578],{"className":572},[573,574],"panel","panel-gitlab-purple",[12,576,577],{},"Reasons",[51,579,582,592,595,789,799,810],{"className":580},[581],"panel-body",[12,583,584],{},[30,585,586,587,49],{},"Following what is expected out of a Senior Developer in the ",[16,588,591],{"href":589,"rel":590},"https://handbook.gitlab.com/job-description-library/engineering/backend-engineer/",[],"job description",[12,593,594],{},"Senior Developers are experienced developers who meet the following criteria:",[596,597,598,635,665,703,770],"ol",{},[421,599,600,603],{},[107,601,602],{},"Technical Skills",[418,604,605,611,617],{},[421,606,607,608],{},"Are able to write modular, well-tested, and maintainable code ",[30,609,610],{},"- I think this is out of the question here and we have enough samples",[421,612,613,614],{},"Know a domain really well and radiate that knowledge ",[30,615,616],{},"- He already got a bonus for how he shares his knowledge, he is always raising the bar here.",[421,618,619,620],{},"Contribute to one or more complementary projects ",[30,621,622,623,628,629,634],{},"- His contributions are numerous to all the GitLab ecosystem, including building the whole ",[16,624,627],{"href":625,"rel":626},"https://dashboards.gitlab.com",[],"performance monitoring metrics"," system that we use to understand why GitLab is slow. Including projects like ",[16,630,633],{"href":631,"rel":632},"https://gitlab.com/gitlab-org/allocations",[],"allocations"," that is used to track low level Ruby metrics",[421,636,637,640],{},[107,638,639],{},"Leadership",[418,641,642,659],{},[421,643,644,645],{},"Begins to show architectural perspective ",[30,646,647,648,653,654,478],{},"- He is involved in ",[16,649,652],{"href":650,"rel":651},"https://gitlab.com/gitlab-org/gitaly",[],"Gitaly"," since before it had this name, and architectural paradigm change that will affect GitLab profoundly. He is also heavily involved in ",[16,655,658],{"href":656,"rel":657},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6292",[],"whatever goes near the database",[421,660,661,662],{},"Proposing new ideas, performing feasibility analyses and scoping the work ",[30,663,664],{},"- This is what he is doing all the time, all of GitLab development community values his input and his opinion is highly valued.",[421,666,667,670],{},[107,668,669],{},"Code quality",[418,671,672,678,684,694],{},[421,673,674,675],{},"Leaves code in substantially better shape than before ",[30,676,677],{},"- Agreed, he does this. Refer to the links provided at the bottom",[421,679,680,681],{},"Fixes bugs/regressions quickly ",[30,682,683],{},"- He has even performed there operations in production itself providing hotfixes.",[421,685,686,687],{},"Monitors overall code quality/build failures - ",[30,688,689],{},[16,690,693],{"href":691,"rel":692},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7310",[],"MR",[421,695,696,697],{},"Creates test plans - ",[30,698,699],{},[16,700,693],{"href":701,"rel":702},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8191#note_20300210",[],[421,704,705,708],{},[107,706,707],{},"Communication",[418,709,710,716,734,740,764],{},[421,711,712,713],{},"Provides thorough and timely code feedback for peers - ",[30,714,715],{},"Refer to code quality section.",[421,717,718,719],{},"Able to communicate clearly on technical topics - ",[30,720,721,722,727,728,733],{},"He created our ",[16,723,726],{"href":724,"rel":725},"https://docs.gitlab.com/development/performance/",[],"performance"," and ",[16,729,732],{"href":730,"rel":731},"https://docs.gitlab.com/development/sidekiq/",[],"sidekiq"," style guidelines - Both these samples are pushing for improving the quality of GitLab as a whole, way beyond the scope of a single MR.",[421,735,736,737],{},"Keeps issues up-to-date with progress ",[30,738,739],{},"- He is a bar raiser here, check any of his issues, they are up to date all the time.",[421,741,742,743],{},"Helps guide other merge requests to completion - ",[30,744,745,746,751,752,757,758,763],{},"He does this leading to a ",[16,747,750],{"href":748,"rel":749},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7121",[],"successful"," merge and has the capacity to ",[16,753,756],{"href":754,"rel":755},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8044",[],"reject MRs"," depending on how they will impact GitLab (another sample on pushing back can be found ",[16,759,762],{"href":760,"rel":761},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7067",[],"here",").",[421,765,766,767],{},"Helps with recruiting ",[30,768,769],{},"- He is currently helping me to find a database specialist by reviewing job applications performing the initial filter.",[421,771,772,775],{},[107,773,774],{},"Performance & Scalability",[418,776,777,783],{},[421,778,779,780],{},"Excellent at writing production-ready code with little assistance ",[30,781,782],{},"- He has been leading the performance effort for the last year, I think this is out of the question - He owned moving to postgres 9.6 on his own, a massive undertaking that was performed without a single glitch.",[421,784,785,786],{},"Able to write complex code that can scale with a significant number of users ",[30,787,788],{},"- Same thing as before, he is the one paving the path for the rest of GitLab in this area. Definitely a bar riser.",[12,790,791],{},[30,792,793,794,798],{},"A final sample can be found ",[16,795,762],{"href":796,"rel":797},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8191/diffs#note_20288482",[]," where one of our backend leads asks him for support on how to perform a large migration without causing downtime.",[12,800,801],{},[30,802,803,804,809],{},"These samples are just the tipping point the work that he has been performing for quite a while already. This work got us to the situation where we can deploy the application with minimum downtime, even adding ",[16,805,808],{"href":806,"rel":807},"https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4911",[],"automation to detect when a migration will force us to cause downtime",", removing human judgment from the equation.",[12,811,812],{},[30,813,814],{},"His work is constantly impacting all the company in both depth and breath, I can find lots of samples on any of the items that are included in the job description, I can even find samples that match to the staff developer. Therefore I think that he has been behaving as a Senior Developer, and I ask that this behavior gets recognized and formalized by GitLab.",[192,816,818],{"id":817},"we-support-each-other","We support each other",[12,820,821],{},"For those developers involved in the outage, we made a special T-shirt:",[12,823,824],{},[351,825],{"alt":826,"src":827},"T-shirt back","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398488/blog/Content%20Images/how-is-team-member-1-doing/team-member-1-tshirt.jpg",[12,829,830],{},"This T-shirt has two purposes. It reminds us what happened and motivates us not to let this happen again. It was also meant to thank the team that handled the incident, for that reason only they have gotten one.",[38,832,834],{"id":833},"wrapping-up","Wrapping Up",[12,836,837],{},"At GitLab, we value most positive achievements and performance improvements of our team members, instead of focusing our attention on negative random situations.",[12,839,840],{},"Of course, we take situations like this very seriously, but we'd rather learn from them, and put all our efforts to avoid that they happen again, than punish honest and talented people for mistakes that can happen to anyone.",[64,842,843],{},[12,844,845,492,848,498],{},[30,846,847],{},"What doesn't kill you makes you stronger.",[16,849,497],{"href":850,"rel":851},"https://news.ycombinator.com/item?id=13621356",[],{"title":853,"searchDepth":854,"depth":854,"links":855},"",2,[856,860,861,866],{"id":40,"depth":854,"text":41,"children":857},[858],{"id":194,"depth":859,"text":195},3,{"id":402,"depth":854,"text":403},{"id":32,"depth":854,"text":481,"children":862},[863,865],{"id":561,"depth":859,"text":864},"Reasons for promoting team-member-1",{"id":817,"depth":859,"text":818},{"id":833,"depth":854,"text":834},"company","2017-03-17","People asked how team-member-1 is doing after the DB incident of Jan 31st - Feb 1st. We're here to tell you that.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666665/Blog/Hero%20Images/man-standing.jpg",{"excerpt":875},{"type":9,"value":876},[877,881,887],[12,878,14,879,20],{},[16,880,19],{"href":18},[12,882,23,883,28,885,33],{},[16,884,27],{"href":26},[30,886,32],{},[12,888,36],{},true,"/en-us/blog/how-is-team-member-1-doing",{"title":5,"description":869,"ogTitle":5,"ogDescription":869,"noIndex":872,"ogImage":873,"ogUrl":892,"ogSiteName":893,"ogType":894,"canonicalUrls":892},"https://about.gitlab.com/blog/how-is-team-member-1-doing","https://about.gitlab.com","article","how-is-team-member-1-doing","en-us/blog/how-is-team-member-1-doing","BlogPost","Xq-0sXa7K_cQ42hmVww_PbsGoTtD-yz12KjkL8I7wCg",{"logo":900,"freeTrial":905,"sales":910,"login":915,"items":920,"search":1245,"minimal":1276,"duo":1295,"switchNav":1304,"pricingDeployment":1315},{"config":901},{"href":902,"dataGaName":903,"dataGaLocation":904},"/","gitlab logo","header",{"text":906,"config":907},"Get free trial",{"href":908,"dataGaName":909,"dataGaLocation":904},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":911,"config":912},"Request a demo",{"href":913,"dataGaName":914,"dataGaLocation":904},"/sales/?contact-topic=request-demo","sales",{"text":916,"config":917},"Sign in",{"href":918,"dataGaName":919,"dataGaLocation":904},"https://gitlab.com/users/sign_in/","sign in",[921,950,1050,1055,1169,1223],{"text":922,"config":923,"menu":925},"Platform",{"dataNavLevelOne":924},"platform",{"type":926,"columns":927},"cards",[928,934,942],{"title":922,"description":929,"link":930},"The intelligent orchestration platform for DevSecOps",{"text":931,"config":932},"Explore our Platform",{"href":933,"dataGaName":924,"dataGaLocation":904},"/platform/",{"title":935,"description":936,"link":937},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":938,"config":939},"Meet GitLab Duo",{"href":940,"dataGaName":941,"dataGaLocation":904},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":943,"description":944,"link":945},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":946,"config":947},"Learn more",{"href":948,"dataGaName":949,"dataGaLocation":904},"/why-gitlab/","why gitlab",{"text":951,"left":889,"config":952,"menu":954},"Product",{"dataNavLevelOne":953},"solutions",{"type":955,"link":956,"columns":960,"feature":1029},"lists",{"text":957,"config":958},"View all Solutions",{"href":959,"dataGaName":953,"dataGaLocation":904},"/solutions/",[961,985,1008],{"title":962,"description":963,"link":964,"items":969},"Automation","CI/CD and automation to accelerate deployment",{"config":965},{"icon":966,"href":967,"dataGaName":968,"dataGaLocation":904},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[970,974,977,981],{"text":971,"config":972},"CI/CD",{"href":973,"dataGaLocation":904,"dataGaName":971},"/solutions/continuous-integration/",{"text":935,"config":975},{"href":940,"dataGaLocation":904,"dataGaName":976},"gitlab duo agent platform - product menu",{"text":978,"config":979},"Source Code Management",{"href":980,"dataGaLocation":904,"dataGaName":978},"/solutions/source-code-management/",{"text":982,"config":983},"Automated Software Delivery",{"href":967,"dataGaLocation":904,"dataGaName":984},"Automated software delivery",{"title":986,"description":987,"link":988,"items":993},"Security","Deliver code faster without compromising security",{"config":989},{"href":990,"dataGaName":991,"dataGaLocation":904,"icon":992},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[994,998,1003],{"text":995,"config":996},"Application Security Testing",{"href":990,"dataGaName":997,"dataGaLocation":904},"Application security testing",{"text":999,"config":1000},"Software Supply Chain Security",{"href":1001,"dataGaLocation":904,"dataGaName":1002},"/solutions/supply-chain/","Software supply chain security",{"text":1004,"config":1005},"Software Compliance",{"href":1006,"dataGaName":1007,"dataGaLocation":904},"/solutions/software-compliance/","software compliance",{"title":1009,"link":1010,"items":1015},"Measurement",{"config":1011},{"icon":1012,"href":1013,"dataGaName":1014,"dataGaLocation":904},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[1016,1020,1024],{"text":1017,"config":1018},"Visibility & Measurement",{"href":1013,"dataGaLocation":904,"dataGaName":1019},"Visibility and Measurement",{"text":1021,"config":1022},"Value Stream Management",{"href":1023,"dataGaLocation":904,"dataGaName":1021},"/solutions/value-stream-management/",{"text":1025,"config":1026},"Analytics & Insights",{"href":1027,"dataGaLocation":904,"dataGaName":1028},"/solutions/analytics-and-insights/","Analytics and insights",{"title":1030,"type":955,"items":1031},"GitLab for",[1032,1038,1044],{"text":1033,"config":1034},"Enterprise",{"icon":1035,"href":1036,"dataGaLocation":904,"dataGaName":1037},"Building","/enterprise/","enterprise",{"text":1039,"config":1040},"Small Business",{"icon":1041,"href":1042,"dataGaLocation":904,"dataGaName":1043},"Work","/small-business/","small business",{"text":1045,"config":1046},"Public Sector",{"icon":1047,"href":1048,"dataGaLocation":904,"dataGaName":1049},"Organization","/solutions/public-sector/","public sector",{"text":1051,"config":1052},"Pricing",{"href":1053,"dataGaName":1054,"dataGaLocation":904,"dataNavLevelOne":1054},"/pricing/","pricing",{"text":1056,"config":1057,"menu":1059},"Resources",{"dataNavLevelOne":1058},"resources",{"type":955,"link":1060,"columns":1064,"feature":1158},{"text":1061,"config":1062},"View all resources",{"href":1063,"dataGaName":1058,"dataGaLocation":904},"/resources/",[1065,1098,1125],{"title":1066,"items":1067},"Getting started",[1068,1073,1078,1083,1088,1093],{"text":1069,"config":1070},"Install",{"href":1071,"dataGaName":1072,"dataGaLocation":904},"/install/","install",{"text":1074,"config":1075},"Quick start guides",{"href":1076,"dataGaName":1077,"dataGaLocation":904},"/get-started/","quick setup checklists",{"text":1079,"config":1080},"Learn",{"href":1081,"dataGaLocation":904,"dataGaName":1082},"https://university.gitlab.com/","learn",{"text":1084,"config":1085},"Product documentation",{"href":1086,"dataGaName":1087,"dataGaLocation":904},"https://docs.gitlab.com/","product documentation",{"text":1089,"config":1090},"Best practice videos",{"href":1091,"dataGaName":1092,"dataGaLocation":904},"/getting-started-videos/","best practice videos",{"text":1094,"config":1095},"Integrations",{"href":1096,"dataGaName":1097,"dataGaLocation":904},"/integrations/","integrations",{"title":1099,"items":1100},"Discover",[1101,1106,1111,1116,1120],{"text":1102,"config":1103},"Customer success stories",{"href":1104,"dataGaName":1105,"dataGaLocation":904},"/customers/","customer success stories",{"text":1107,"config":1108},"Blog",{"href":1109,"dataGaName":1110,"dataGaLocation":904},"/blog/","blog",{"text":1112,"config":1113},"Demo Hub",{"href":1114,"dataGaName":1115,"dataGaLocation":904},"/demo-hub/","demo hub",{"text":1117,"config":1118},"The Source",{"href":1119,"dataGaName":1110,"dataGaLocation":904},"/the-source/",{"text":1121,"config":1122},"Remote",{"href":1123,"dataGaName":1124,"dataGaLocation":904},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1126,"items":1127},"Connect",[1128,1133,1138,1143,1148,1153],{"text":1129,"config":1130},"GitLab Services",{"href":1131,"dataGaName":1132,"dataGaLocation":904},"/services/","services",{"text":1134,"config":1135},"Contribute",{"href":1136,"dataGaName":1137,"dataGaLocation":904},"https://contributors.gitlab.com","contribute",{"text":1139,"config":1140},"Community",{"href":1141,"dataGaName":1142,"dataGaLocation":904},"/community/","community",{"text":1144,"config":1145},"Forum",{"href":1146,"dataGaName":1147,"dataGaLocation":904},"https://forum.gitlab.com/","forum",{"text":1149,"config":1150},"Events",{"href":1151,"dataGaName":1152,"dataGaLocation":904},"/events/","events",{"text":1154,"config":1155},"Partners",{"href":1156,"dataGaName":1157,"dataGaLocation":904},"/partners/","partners",{"config":1159,"title":1162,"text":1163,"link":1164},{"background":1160,"textColor":1161},"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":1165,"config":1166},"Read the latest",{"href":1167,"dataGaName":1168,"dataGaLocation":904},"/whats-new/","whats new",{"text":1170,"config":1171,"menu":1172},"Company",{"dataNavLevelOne":867},{"type":955,"columns":1173},[1174],{"items":1175},[1176,1181,1187,1189,1193,1198,1203,1208,1213,1218],{"text":1177,"config":1178},"About",{"href":1179,"dataGaName":1180,"dataGaLocation":904},"/company/","about",{"text":1182,"config":1183,"footerGa":1186},"Jobs",{"href":1184,"dataGaName":1185,"dataGaLocation":904},"/jobs/","jobs",{"dataGaName":1185},{"text":1149,"config":1188},{"href":1151,"dataGaName":1152,"dataGaLocation":904},{"text":639,"config":1190},{"href":1191,"dataGaName":1192,"dataGaLocation":904},"/company/team/e-group/","leadership",{"text":1194,"config":1195},"Handbook",{"href":1196,"dataGaName":1197,"dataGaLocation":904},"https://handbook.gitlab.com/","handbook",{"text":1199,"config":1200},"Investor relations",{"href":1201,"dataGaName":1202,"dataGaLocation":904},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1204,"config":1205},"Trust Center",{"href":1206,"dataGaName":1207,"dataGaLocation":904},"/security/","trust center",{"text":1209,"config":1210},"AI Transparency Center",{"href":1211,"dataGaName":1212,"dataGaLocation":904},"/ai-transparency-center/","ai transparency center",{"text":1214,"config":1215},"Newsletter",{"href":1216,"dataGaName":1217,"dataGaLocation":904},"/company/contact/#contact-forms","newsletter",{"text":1219,"config":1220},"Press",{"href":1221,"dataGaName":1222,"dataGaLocation":904},"/press/","press",{"text":1224,"config":1225,"menu":1226},"Contact us",{"dataNavLevelOne":867},{"type":955,"columns":1227},[1228],{"items":1229},[1230,1235,1240],{"text":1231,"config":1232},"Talk to sales",{"href":1233,"dataGaName":1234,"dataGaLocation":904},"/sales/","talk to sales",{"text":1236,"config":1237},"Support portal",{"href":1238,"dataGaName":1239,"dataGaLocation":904},"https://support.gitlab.com/hc/en-us","support portal",{"text":1241,"config":1242},"Customer portal",{"href":1243,"dataGaName":1244,"dataGaLocation":904},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1246,"login":1247,"suggestions":1254},"Close",{"text":1248,"link":1249},"To search repositories and projects, login to",{"text":1250,"config":1251},"gitlab.com",{"href":918,"dataGaName":1252,"dataGaLocation":1253},"search login","search",{"text":1255,"default":1256},"Suggestions",[1257,1259,1263,1265,1269,1273],{"text":935,"config":1258},{"href":940,"dataGaName":935,"dataGaLocation":1253},{"text":1260,"config":1261},"Code Suggestions (AI)",{"href":1262,"dataGaName":1260,"dataGaLocation":1253},"/solutions/code-suggestions/",{"text":971,"config":1264},{"href":973,"dataGaName":971,"dataGaLocation":1253},{"text":1266,"config":1267},"GitLab on AWS",{"href":1268,"dataGaName":1266,"dataGaLocation":1253},"/partners/technology-partners/aws/",{"text":1270,"config":1271},"GitLab on Google Cloud",{"href":1272,"dataGaName":1270,"dataGaLocation":1253},"/partners/technology-partners/google-cloud-platform/",{"text":1274,"config":1275},"Why GitLab?",{"href":948,"dataGaName":1274,"dataGaLocation":1253},{"freeTrial":1277,"mobileIcon":1282,"desktopIcon":1287,"secondaryButton":1290},{"text":1278,"config":1279},"Start free trial",{"href":1280,"dataGaName":909,"dataGaLocation":1281},"https://gitlab.com/-/trials/new/","nav",{"altText":1283,"config":1284},"Gitlab Icon",{"src":1285,"dataGaName":1286,"dataGaLocation":1281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1283,"config":1288},{"src":1289,"dataGaName":1286,"dataGaLocation":1281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1291,"config":1292},"Get Started",{"href":1293,"dataGaName":1294,"dataGaLocation":1281},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":1296,"mobileIcon":1300,"desktopIcon":1302},{"text":1297,"config":1298},"Learn more about GitLab Duo",{"href":940,"dataGaName":1299,"dataGaLocation":1281},"gitlab duo",{"altText":1283,"config":1301},{"src":1285,"dataGaName":1286,"dataGaLocation":1281},{"altText":1283,"config":1303},{"src":1289,"dataGaName":1286,"dataGaLocation":1281},{"button":1305,"mobileIcon":1310,"desktopIcon":1312},{"text":1306,"config":1307},"/switch",{"href":1308,"dataGaName":1309,"dataGaLocation":1281},"#contact","switch",{"altText":1283,"config":1311},{"src":1285,"dataGaName":1286,"dataGaLocation":1281},{"altText":1283,"config":1313},{"src":1314,"dataGaName":1286,"dataGaLocation":1281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1316,"mobileIcon":1321,"desktopIcon":1323},{"text":1317,"config":1318},"Back to pricing",{"href":1053,"dataGaName":1319,"dataGaLocation":1281,"icon":1320},"back to pricing","GoBack",{"altText":1283,"config":1322},{"src":1285,"dataGaName":1286,"dataGaLocation":1281},{"altText":1283,"config":1324},{"src":1289,"dataGaName":1286,"dataGaLocation":1281},{"title":1326,"titleMobile":1327,"button":1328,"config":1333},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":946,"config":1329},{"href":1330,"dataGaName":1331,"dataGaLocation":1332},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":1334,"disabled":872},"release",{"data":1336},{"text":1337,"source":1338,"edit":1344,"contribute":1349,"config":1354,"items":1358,"minimal":1568},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":1339,"config":1340},"View page source",{"href":1341,"dataGaName":1342,"dataGaLocation":1343},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1345,"config":1346},"Edit this page",{"href":1347,"dataGaName":1348,"dataGaLocation":1343},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1350,"config":1351},"Please contribute",{"href":1352,"dataGaName":1353,"dataGaLocation":1343},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":78,"facebook":1355,"youtube":1356,"linkedin":1357},"https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1359,1406,1460,1504,1536],{"title":1051,"links":1360,"subMenu":1375},[1361,1365,1370],{"text":1362,"config":1363},"View plans",{"href":1053,"dataGaName":1364,"dataGaLocation":1343},"view plans",{"text":1366,"config":1367},"Why Premium?",{"href":1368,"dataGaName":1369,"dataGaLocation":1343},"/pricing/premium/","why premium",{"text":1371,"config":1372},"Why Ultimate?",{"href":1373,"dataGaName":1374,"dataGaLocation":1343},"/pricing/ultimate/","why ultimate",[1376],{"title":1377,"links":1378},"Contact Us",[1379,1382,1384,1386,1391,1396,1401],{"text":1380,"config":1381},"Contact sales",{"href":1233,"dataGaName":914,"dataGaLocation":1343},{"text":1236,"config":1383},{"href":1238,"dataGaName":1239,"dataGaLocation":1343},{"text":1241,"config":1385},{"href":1243,"dataGaName":1244,"dataGaLocation":1343},{"text":1387,"config":1388},"Status",{"href":1389,"dataGaName":1390,"dataGaLocation":1343},"https://status.gitlab.com/","status",{"text":1392,"config":1393},"Terms of use",{"href":1394,"dataGaName":1395,"dataGaLocation":1343},"/terms/","terms of use",{"text":1397,"config":1398},"Privacy statement",{"href":1399,"dataGaName":1400,"dataGaLocation":1343},"/privacy/","privacy statement",{"text":1402,"config":1403},"Cookie preferences",{"dataGaName":1404,"dataGaLocation":1343,"id":1405,"isOneTrustButton":889},"cookie preferences","ot-sdk-btn",{"title":951,"links":1407,"subMenu":1416},[1408,1412],{"text":1409,"config":1410},"DevSecOps platform",{"href":933,"dataGaName":1411,"dataGaLocation":1343},"devsecops platform",{"text":1413,"config":1414},"AI-Assisted Development",{"href":940,"dataGaName":1415,"dataGaLocation":1343},"ai-assisted development",[1417],{"title":1418,"links":1419},"Topics",[1420,1425,1430,1435,1440,1445,1450,1455],{"text":1421,"config":1422},"CICD",{"href":1423,"dataGaName":1424,"dataGaLocation":1343},"/topics/ci-cd/","cicd",{"text":1426,"config":1427},"GitOps",{"href":1428,"dataGaName":1429,"dataGaLocation":1343},"/topics/gitops/","gitops",{"text":1431,"config":1432},"DevOps",{"href":1433,"dataGaName":1434,"dataGaLocation":1343},"/topics/devops/","devops",{"text":1436,"config":1437},"Version Control",{"href":1438,"dataGaName":1439,"dataGaLocation":1343},"/topics/version-control/","version control",{"text":1441,"config":1442},"DevSecOps",{"href":1443,"dataGaName":1444,"dataGaLocation":1343},"/topics/devsecops/","devsecops",{"text":1446,"config":1447},"Cloud Native",{"href":1448,"dataGaName":1449,"dataGaLocation":1343},"/topics/cloud-native/","cloud native",{"text":1451,"config":1452},"AI for Coding",{"href":1453,"dataGaName":1454,"dataGaLocation":1343},"/topics/devops/ai-for-coding/","ai for coding",{"text":1456,"config":1457},"Agentic AI",{"href":1458,"dataGaName":1459,"dataGaLocation":1343},"/topics/agentic-ai/","agentic ai",{"title":1461,"links":1462},"Solutions",[1463,1465,1467,1472,1476,1479,1483,1486,1488,1491,1494,1499],{"text":995,"config":1464},{"href":990,"dataGaName":995,"dataGaLocation":1343},{"text":984,"config":1466},{"href":967,"dataGaName":968,"dataGaLocation":1343},{"text":1468,"config":1469},"Agile development",{"href":1470,"dataGaName":1471,"dataGaLocation":1343},"/solutions/agile-delivery/","agile delivery",{"text":1473,"config":1474},"SCM",{"href":980,"dataGaName":1475,"dataGaLocation":1343},"source code management",{"text":1421,"config":1477},{"href":973,"dataGaName":1478,"dataGaLocation":1343},"continuous integration & delivery",{"text":1480,"config":1481},"Value stream management",{"href":1023,"dataGaName":1482,"dataGaLocation":1343},"value stream management",{"text":1426,"config":1484},{"href":1485,"dataGaName":1429,"dataGaLocation":1343},"/solutions/gitops/",{"text":1033,"config":1487},{"href":1036,"dataGaName":1037,"dataGaLocation":1343},{"text":1489,"config":1490},"Small business",{"href":1042,"dataGaName":1043,"dataGaLocation":1343},{"text":1492,"config":1493},"Public sector",{"href":1048,"dataGaName":1049,"dataGaLocation":1343},{"text":1495,"config":1496},"Education",{"href":1497,"dataGaName":1498,"dataGaLocation":1343},"/solutions/education/","education",{"text":1500,"config":1501},"Financial services",{"href":1502,"dataGaName":1503,"dataGaLocation":1343},"/solutions/finance/","financial services",{"title":1056,"links":1505},[1506,1508,1510,1512,1515,1517,1520,1522,1524,1526,1528,1530,1532,1534],{"text":1069,"config":1507},{"href":1071,"dataGaName":1072,"dataGaLocation":1343},{"text":1074,"config":1509},{"href":1076,"dataGaName":1077,"dataGaLocation":1343},{"text":1079,"config":1511},{"href":1081,"dataGaName":1082,"dataGaLocation":1343},{"text":1084,"config":1513},{"href":1086,"dataGaName":1514,"dataGaLocation":1343},"docs",{"text":1107,"config":1516},{"href":1109,"dataGaName":1110,"dataGaLocation":1343},{"text":1518,"config":1519},"What's new",{"href":1167,"dataGaName":1168,"dataGaLocation":1343},{"text":1102,"config":1521},{"href":1104,"dataGaName":1105,"dataGaLocation":1343},{"text":1121,"config":1523},{"href":1123,"dataGaName":1124,"dataGaLocation":1343},{"text":1129,"config":1525},{"href":1131,"dataGaName":1132,"dataGaLocation":1343},{"text":1134,"config":1527},{"href":1136,"dataGaName":1137,"dataGaLocation":1343},{"text":1139,"config":1529},{"href":1141,"dataGaName":1142,"dataGaLocation":1343},{"text":1144,"config":1531},{"href":1146,"dataGaName":1147,"dataGaLocation":1343},{"text":1149,"config":1533},{"href":1151,"dataGaName":1152,"dataGaLocation":1343},{"text":1154,"config":1535},{"href":1156,"dataGaName":1157,"dataGaLocation":1343},{"title":1170,"links":1537},[1538,1540,1542,1544,1546,1548,1552,1557,1559,1561,1563],{"text":1177,"config":1539},{"href":1179,"dataGaName":867,"dataGaLocation":1343},{"text":1182,"config":1541},{"href":1184,"dataGaName":1185,"dataGaLocation":1343},{"text":639,"config":1543},{"href":1191,"dataGaName":1192,"dataGaLocation":1343},{"text":1194,"config":1545},{"href":1196,"dataGaName":1197,"dataGaLocation":1343},{"text":1199,"config":1547},{"href":1201,"dataGaName":1202,"dataGaLocation":1343},{"text":1549,"config":1550},"Sustainability",{"href":1551,"dataGaName":1549,"dataGaLocation":1343},"/sustainability/",{"text":1553,"config":1554},"Diversity, inclusion and belonging (DIB)",{"href":1555,"dataGaName":1556,"dataGaLocation":1343},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1204,"config":1558},{"href":1206,"dataGaName":1207,"dataGaLocation":1343},{"text":1214,"config":1560},{"href":1216,"dataGaName":1217,"dataGaLocation":1343},{"text":1219,"config":1562},{"href":1221,"dataGaName":1222,"dataGaLocation":1343},{"text":1564,"config":1565},"Modern Slavery Transparency Statement",{"href":1566,"dataGaName":1567,"dataGaLocation":1343},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1569},[1570,1573,1576],{"text":1571,"config":1572},"Terms",{"href":1394,"dataGaName":1395,"dataGaLocation":1343},{"text":1574,"config":1575},"Cookies",{"dataGaName":1404,"dataGaLocation":1343,"id":1405,"isOneTrustButton":889},{"text":1577,"config":1578},"Privacy",{"href":1399,"dataGaName":1400,"dataGaLocation":1343},[1580],{"id":1581,"title":7,"body":871,"config":1582,"content":1584,"description":871,"extension":1588,"meta":1589,"navigation":889,"path":1590,"seo":1591,"stem":1592,"__hash__":1593},"blogAuthors/en-us/blog/authors/marcia-ramos.yml",{"template":1583},"BlogAuthor",{"name":7,"config":1585},{"headshot":1586,"ctfId":1587},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Marcia-Ramos","yml",{},"/en-us/blog/authors/marcia-ramos",{},"en-us/blog/authors/marcia-ramos","UrFu-iLS1mEkxVCheaz27cAjfZXeLI9U1n5dGSOHXY4",[1595,1603,1610],{"title":1596,"description":1597,"heroImage":1598,"category":867,"date":1599,"authors":1600,"slug":1602,"externalUrl":871},"Why GitLab signed the Open Weights and American AI Leadership letter","GitLab supports customer choice, data privacy, and AI model neutrality, empowering teams to run secure, cost-effective, local solutions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785333264/ww4mlighwlvvzgnmbe6w.png","2026-07-29",[1601],"Bill Staples","open-weight-model-letter",{"title":1604,"description":1605,"heroImage":1606,"category":867,"date":1607,"authors":1608,"slug":1609,"externalUrl":871},"GitLab Act 2","A letter to our customers and our investors.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png","2026-05-11",[1601],"gitlab-act-2",{"title":1611,"description":1612,"heroImage":1613,"category":867,"date":1614,"authors":1615,"slug":1617,"externalUrl":871},"GitLab named a 2026 Omdia Universe Leader","Omdia's 2026 report on AI-assisted software development ranked 19 vendors. Here is what GitLab's top scores mean for engineering teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-13",[1616],"Rebecca Carter","gitlab-named-a-2026-omdia-universe-leader",{"promotions":1619},[1620,1634,1646,1658],{"id":1621,"categories":1622,"header":1624,"text":1625,"button":1626,"image":1631},"ai-modernization",[1623],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1627,"config":1628},"Get your AI maturity score",{"href":1629,"dataGaName":1630,"dataGaLocation":1110},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1632},{"src":1633},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1635,"categories":1636,"header":1638,"text":1625,"button":1639,"image":1643},"devops-modernization",[1637,1444],"product","Are you just managing tools or shipping innovation?",{"text":1640,"config":1641},"Get your DevOps maturity score",{"href":1642,"dataGaName":1630,"dataGaLocation":1110},"/assessments/devops-modernization-assessment/",{"config":1644},{"src":1645},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1647,"categories":1648,"header":1650,"text":1625,"button":1651,"image":1655},"security-modernization",[1649],"security","Are you trading speed for security?",{"text":1652,"config":1653},"Get your security maturity score",{"href":1654,"dataGaName":1630,"dataGaLocation":1110},"/assessments/security-modernization-assessment/",{"config":1656},{"src":1657},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1659,"paths":1660,"header":1663,"text":1664,"button":1665,"image":1670},"github-azure-migration",[1661,1662],"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":1666,"config":1667},"See how GitLab compares to GitHub",{"href":1668,"dataGaName":1669,"dataGaLocation":1110},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1671},{"src":1645},{"header":1673,"blurb":1674,"button":1675,"secondaryButton":1680},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1676,"config":1677},"Get your free trial",{"href":1678,"dataGaName":909,"dataGaLocation":1679},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1380,"config":1681},{"href":1233,"dataGaName":914,"dataGaLocation":1679},1786803749542]