[{"data":1,"prerenderedAt":715},["ShallowReactive",2],{"/en-us/blog/how-is-team-member-1-doing/":3,"navigation-en-us":32,"banner-en-us":460,"footer-en-us":477,"Marcia Ramos":687,"next-steps-en-us":700},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":22,"_id":25,"_type":26,"title":27,"_source":28,"_file":29,"_stem":30,"_extension":31},"/en-us/blog/how-is-team-member-1-doing","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 is team-member-1 doing?","People asked how team-member-1 is doing after the DB incident of Jan 31st - Feb 1st. We're here to tell you that.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666665/Blog/Hero%20Images/man-standing.jpg","https://about.gitlab.com/blog/how-is-team-member-1-doing","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How is team-member-1 doing?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2017-03-17\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21},[18],"Marcia Ramos","2017-03-17","\nThe engineer that gave the unfortunate command to [delete our primary database](/blog/gitlab-dot-com-database-incident/) 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.\n\nAfter we posted [the postmortem of the incident with GitLab.com](/blog/postmortem-of-database-outage-of-january-31/), we received notes from our community asking how was _team-member-1_ doing. We're here to tell you that.\n\nWe are still putting all our efforts into improving GitLab.com's infrastructure as a whole, to ensure this type of incident never happens again.\n\n\u003C!-- more -->\n\n## #HugOps\n\nWe were all really touched by the love our community sent us via [#HugOps](https://twitter.com/i/moments/826818668948549632):\n\n\u003Cdiv class=\"row\">\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">\u003Ca href=\"https://twitter.com/hashtag/HugOps?src=hash\">#HugOps\u003C/a> to the \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> team! Love your transparency. The only person who never breaks anything is the one who never does anything.\u003C/p>&mdash; Mindy Whitsitt (@MindyWhitsitt) \u003Ca href=\"https://twitter.com/MindyWhitsitt/status/827197361864720384\">February 2, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">All the \u003Ca href=\"https://twitter.com/hashtag/hugops?src=hash\">#hugops\u003C/a> in the world to the GitLab team for fixing their services. And *massive* respect for their communication about the issue.\u003C/p>&mdash; ma//:as (@mattiasgeniar) \u003Ca href=\"https://twitter.com/mattiasgeniar/status/826997025963122688\">February 2, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n\u003C/div>\n\n**At the end of the day, we are all _team-member-1_**:\n\n\u003Cdiv class=\"row\">\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">Who is not the &quot;team-member-1&quot;? \u003Ca href=\"https://twitter.com/hashtag/HugOps?src=hash\">#HugOps\u003C/a>\u003C/p>&mdash; Erkan Erol (@erkan_erol_) \u003Ca href=\"https://twitter.com/erkan_erol_/status/827040981677649921\">February 2, 2017\u003C/a>\u003C/blockquote>\n    \u003Cblockquote class=\"twitter-tweet\" data-conversation=\"none\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">\u003Ca href=\"https://twitter.com/hashtag/HugOps?src=hash\">#HugOps\u003C/a> to \u003Ca href=\"https://twitter.com/gitlabstatus\">@gitlabstatus\u003C/a> \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> - we&#39;ve all been there. You&#39;ve got this! 💙🤖\u003C/p>&mdash; CircleCI (@circleci) \u003Ca href=\"https://twitter.com/circleci/status/826829739545415680\">February 1, 2017\u003C/a>\u003C/blockquote>\n    \u003Cblockquote class=\"twitter-tweet\" data-conversation=\"none\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">\u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> welcome to the club:) You will be stronger than ever. Just keep on improving and never give up. 🤗 \u003Ca href=\"https://twitter.com/hashtag/hugops?src=hash\">#hugops\u003C/a>\u003C/p>&mdash; Lemi Orhan Ergin (@lemiorhan) \u003Ca href=\"https://twitter.com/lemiorhan/status/826858037994483712\">February 1, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"und\" dir=\"ltr\">\u003Ca href=\"https://twitter.com/hashtag/JeSuisTeamMember1?src=hash\">#JeSuisTeamMember1\u003C/a> \u003Ca href=\"https://twitter.com/hashtag/GitLab?src=hash\">#GitLab\u003C/a> \u003Ca href=\"https://t.co/bxvag3XdXV\">pic.twitter.com/bxvag3XdXV\u003C/a>\u003C/p>&mdash; kiru (@karmukis) \u003Ca href=\"https://twitter.com/karmukis/status/826875580465414145\">February 1, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n\u003C/div>\n\n### Support from our community\n\nThe support our engineers received from our community was fantastic, people were appreciative of our [transparency](https://handbook.gitlab.com/handbook/values/) in working on the solution. Even teams from other companies, who had been in that situation themselves, showed their support.\n\n\u003Cdiv class=\"row\">\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">Offering a heartfelt \u003Ca href=\"https://twitter.com/hashtag/hugops?src=hash\">#hugops\u003C/a> to my friends at \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a>. Good people taking care of a tough situation. We are all here with you!\u003C/p>&mdash; Jono Bacon (@jonobacon) \u003Ca href=\"https://twitter.com/jonobacon/status/826828642151862272\">February 1, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">The \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> handling of today&#39;s incident was exemplary. They were very transparent and up-front. We are all with team_member_1 \u003Ca href=\"https://twitter.com/hashtag/hugops?src=hash\">#hugops\u003C/a>\u003C/p>&mdash; Markos Fragkakis (@fragkakis) \u003Ca href=\"https://twitter.com/fragkakis/status/826914947028418561\">February 1, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n\u003C/div>\n\u003Cdiv class=\"row\">\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">Kudos got \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> on their level of transparency.  I have a lot of respect for you...\u003C/p>&mdash; Ben Kuhl (@bkuhlorelse) \u003Ca href=\"https://twitter.com/bkuhlorelse/status/826797385410080768\">February 1, 2017\u003C/a>\u003C/blockquote>\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">Whoah! Really big kudos for \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> and the updates at \u003Ca href=\"https://twitter.com/gitlabstatus\">@gitlabstatus\u003C/a> ! Being honest about mistakes, transparency and the whole story!\u003C/p>&mdash; Rob Haverkamp (@rjrhaverkamp) \u003Ca href=\"https://twitter.com/rjrhaverkamp/status/826761189057236992\">February 1, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n  \u003Cdiv class=\"col-md-6 col-sm-12 center\">\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">This is next level corporate transparency. Kudos to \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a>! \u003Ca href=\"https://t.co/ZvHicD7TK3\">https://t.co/ZvHicD7TK3\u003C/a>\u003C/p>&mdash; Thomas Chappelow (@tomchappelow) \u003Ca href=\"https://twitter.com/tomchappelow/status/826715341044772865\">February 1, 2017\u003C/a>\u003C/blockquote>\n    \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">Serious props and respect to the \u003Ca href=\"https://twitter.com/gitlab\">@gitlab\u003C/a> team during the recent incident. transparency++; you&#39;ve all set a new standard \u003Ca href=\"https://twitter.com/hashtag/hugops?src=hash\">#hugops\u003C/a>\u003C/p>&mdash; Laura Frank (@rhein_wein) \u003Ca href=\"https://twitter.com/rhein_wein/status/826875055703543808\">February 1, 2017\u003C/a>\u003C/blockquote>\n  \u003C/div>\n\u003C/div>\n\n❤️ &nbsp;**Thank you all! We're very touched by your support!**&nbsp; ❤️\n{: .alert .alert-gitlab-purple .text-center}\n\n{::options parse_block_html=\"true\" /}\n\nThe Codefresh team brought cookies to our Experience Center in San Francisco with a card saying:\n\n> _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_\n\nA 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:\n\n> _Yay for you! We've all been there! :) From friends of yours at Google_\n\n\u003Cdiv class=\"row\">\n\u003Cdiv class=\"col-md-6 col-sm-12 center-block\">\n\n![Google gift card](https://about.gitlab.com/images/blogimages/how-is-team-member-1-doing/google-gift.png){: .center-block}\u003Csmall>\u003Cem>*Gift from Google*\u003C/em>\u003C/small>\n\n\u003C/div>\n\u003Cdiv class=\"col-md-6 col-sm-12 center-block\">\n\n![Codefresh cookies](https://about.gitlab.com/images/blogimages/how-is-team-member-1-doing/colefresh-cookies.jpg){: .center-block}\u003Csmall>\u003Cem>*Gift from Codefresh*\u003C/em>\u003C/small>\n\n\u003C/div>\n\u003C/div>\n\n{::options parse_block_html=\"false\" /}\n\n❤️ &nbsp;**Thank you Codefresh and Google!**&nbsp; ❤️\n{: .alert .alert-gitlab-purple .text-center}\n\nThe engineers involved have agreed that this extremely generous gift from Google will be spent on [sponsoring Rails Girls events](https://railsgirlssummerofcode.org/campaign/). But the cookies were obviously eaten by the one who grabbed the pack! 😛\n\nNeedless to say, some special **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.\n\n## GitLab Values\n\nAt 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.\n\nWe make mistakes. What's different from person to person, organization to organization, is how to deal with them. What we [value](https://handbook.gitlab.com/handbook/values/) most at GitLab is:\n\n> - _**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.\"_\n- _**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.\"_\n- _**Behaviour**:_\n  - _Be truthful and honest._\n  - _Be dependable, reliable, fair, and respectful._\n  - _Be committed, creative, inspiring, and passionate._\n\nHow could we value transparency if our team members were afraid of assuming their mistakes?\n\n> _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._ [Sid Sijbrandij, CEO](https://news.ycombinator.com/item?id=13622645).\n\n## Team-member-1\n\nWhile we were putting the fire out, we received this comment:\n\n> _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._ ([HN](https://news.ycombinator.com/item?id=13621016))\n\nAnd this thoughtful tweet:\n\n\u003Cdiv class=\"center\">\n  \u003Cblockquote class=\"twitter-tweet\" data-lang=\"en\">\u003Cp lang=\"en\" dir=\"ltr\">Pray for team-member-1 \u003Ca href=\"https://t.co/foQcWm0WJH\">pic.twitter.com/foQcWm0WJH\u003C/a>\u003C/p>&mdash; Rubén Fernández (@_rubenfa) \u003Ca href=\"https://twitter.com/_rubenfa/status/826785807495213058\">February 1, 2017\u003C/a>\u003C/blockquote>\n\u003C/div>\n\nWe heard you Rubén! :)\n\nYes, _team-member-1_ is doing very well!\n\nCoincidentally, just before the DB incident, _team-member-1_ had qualified for a promotion to senior developer. The outage did not change that decision.\n\n> _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)_ - [GitLab PeopleOps Handbook](/handbook/people-group/promotions-transfers/)\n\nWhen we promote people at GitLab, or give a them a [bonus](/handbook/incentives/#discretionary-bonuses), we share the reasons for that with the whole company. With the permission of _team-member-1_, this blog post is both the internal and external announcement of that promotion.\n\n### Reasons for promoting _team-member-1_\n\n[Pablo Carranza](/company/team/#psczg) (Production Lead), provided GitLab with the following reasons to promote _team-member-1_:\n\n{::options parse_block_html=\"true\" /}\n\n\u003Cdiv class=\"panel panel-gitlab-purple\">\n\nReasons\n{: .panel-heading}\n\n\u003Cdiv class=\"panel-body\">\n\n_Following what is expected out of a Senior Developer in the [job description](https://handbook.gitlab.com/job-families/engineering/backend-engineer/):_\n\nSenior Developers are experienced developers who meet the following criteria:\n\n1.  **Technical Skills**\n    *   Are able to write modular, well-tested, and maintainable code _- I think this is out of the question here and we have enough samples_\n    *   Know a domain really well and radiate that knowledge _- He already got a bonus for how he shares his knowledge, he is always raising the bar here._\n    *   Contribute to one or more complementary projects _- His contributions are numerous to all the GitLab ecosystem, including building the whole [performance monitoring metrics](https://dashboards.gitlab.com) system that we use to understand why GitLab is slow. Including projects like [allocations](https://gitlab.com/gitlab-org/allocations) that is used to track low level Ruby metrics_\n2.  **Leadership**\n    *   Begins to show architectural perspective _- He is involved in [Gitaly](https://gitlab.com/gitlab-org/gitaly) since before it had this name, and architectural paradigm change that will affect GitLab profoundly. He is also heavily involved in [whatever goes near the database](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6292)._\n    *   Proposing new ideas, performing feasibility analyses and scoping the work _- This is what he is doing all the time, all of GitLab development community values his input and his opinion is highly valued._\n3.  **Code quality**\n    *   Leaves code in substantially better shape than before _- Agreed, he does this. Refer to the links provided at the bottom_\n    *   Fixes bugs/regressions quickly _- He has even performed there operations in production itself providing hotfixes._\n    *   Monitors overall code quality/build failures - _[MR](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7310)_\n    *   Creates test plans - _[MR](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8191#note_20300210)_\n4.  **Communication**\n    *   Provides thorough and timely code feedback for peers - _Refer to code quality section._\n    *   Able to communicate clearly on technical topics - _He created our [performance](https://docs.gitlab.com/ee/development/performance.html) and [sidekiq](https://docs.gitlab.com/ee/development/sidekiq/index.html) style guidelines - Both these samples are pushing for improving the quality of GitLab as a whole, way beyond the scope of a single MR._\n    *   Keeps issues up-to-date with progress _- He is a bar raiser here, check any of his issues, they are up to date all the time._\n    *   Helps guide other merge requests to completion - _He does this leading to a [successful](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7121) merge and has the capacity to [reject MRs](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8044) depending on how they will impact GitLab (another sample on pushing back can be found [here](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7067))._\n    *   Helps with recruiting _- He is currently helping me to find a database specialist by reviewing job applications performing the initial filter._\n5.  **Performance & Scalability**\n    *   Excellent at writing production-ready code with little assistance _- 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._\n    *   Able to write complex code that can scale with a significant number of users _- Same thing as before, he is the one paving the path for the rest of GitLab in this area. Definitely a bar riser._\n\n_A final sample can be found [here](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._ \n\n_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 [automation to detect when a migration will force us to cause downtime](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4911), removing human judgment from the equation._\n\n_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._\n\n\u003C/div>\n\u003C/div>\n\n{::options parse_block_html=\"false\" /}\n\n### We support each other\n\nFor those developers involved in the outage, we made a special T-shirt:\n\n![T-shirt back](https://about.gitlab.com/images/blogimages/how-is-team-member-1-doing/team-member-1-tshirt.jpg){: .center-block}\n\nThis 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.\n\n## Wrapping Up\n\nAt GitLab, we value most positive achievements and performance improvements of our team members, instead of focusing our attention on negative random situations.\n\nOf 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.\n\n> _What doesn't kill you makes you stronger._ ([HN](https://news.ycombinator.com/item?id=13621356))\n","company",{"slug":23,"featured":6,"template":24},"how-is-team-member-1-doing","BlogPost","content:en-us:blog:how-is-team-member-1-doing.yml","yaml","How Is Team Member 1 Doing","content","en-us/blog/how-is-team-member-1-doing.yml","en-us/blog/how-is-team-member-1-doing","yml",{"_path":33,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"data":35,"_id":456,"_type":26,"title":457,"_source":28,"_file":458,"_stem":459,"_extension":31},"/shared/en-us/main-navigation","en-us",{"logo":36,"freeTrial":41,"sales":46,"login":51,"items":56,"search":387,"minimal":418,"duo":437,"pricingDeployment":446},{"config":37},{"href":38,"dataGaName":39,"dataGaLocation":40},"/","gitlab logo","header",{"text":42,"config":43},"Get free trial",{"href":44,"dataGaName":45,"dataGaLocation":40},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":47,"config":48},"Talk to sales",{"href":49,"dataGaName":50,"dataGaLocation":40},"/sales/","sales",{"text":52,"config":53},"Sign in",{"href":54,"dataGaName":55,"dataGaLocation":40},"https://gitlab.com/users/sign_in/","sign in",[57,101,199,204,309,368],{"text":58,"config":59,"cards":61,"footer":84},"Platform",{"dataNavLevelOne":60},"platform",[62,68,76],{"title":58,"description":63,"link":64},"The most comprehensive AI-powered DevSecOps Platform",{"text":65,"config":66},"Explore our Platform",{"href":67,"dataGaName":60,"dataGaLocation":40},"/platform/",{"title":69,"description":70,"link":71},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":72,"config":73},"Meet GitLab Duo",{"href":74,"dataGaName":75,"dataGaLocation":40},"/gitlab-duo/","gitlab duo ai",{"title":77,"description":78,"link":79},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":80,"config":81},"Learn more",{"href":82,"dataGaName":83,"dataGaLocation":40},"/why-gitlab/","why gitlab",{"title":85,"items":86},"Get started with",[87,92,97],{"text":88,"config":89},"Platform Engineering",{"href":90,"dataGaName":91,"dataGaLocation":40},"/solutions/platform-engineering/","platform engineering",{"text":93,"config":94},"Developer Experience",{"href":95,"dataGaName":96,"dataGaLocation":40},"/developer-experience/","Developer experience",{"text":98,"config":99},"MLOps",{"href":100,"dataGaName":98,"dataGaLocation":40},"/topics/devops/the-role-of-ai-in-devops/",{"text":102,"left":103,"config":104,"link":106,"lists":110,"footer":181},"Product",true,{"dataNavLevelOne":105},"solutions",{"text":107,"config":108},"View all Solutions",{"href":109,"dataGaName":105,"dataGaLocation":40},"/solutions/",[111,136,160],{"title":112,"description":113,"link":114,"items":119},"Automation","CI/CD and automation to accelerate deployment",{"config":115},{"icon":116,"href":117,"dataGaName":118,"dataGaLocation":40},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[120,124,128,132],{"text":121,"config":122},"CI/CD",{"href":123,"dataGaLocation":40,"dataGaName":121},"/solutions/continuous-integration/",{"text":125,"config":126},"AI-Assisted Development",{"href":74,"dataGaLocation":40,"dataGaName":127},"AI assisted development",{"text":129,"config":130},"Source Code Management",{"href":131,"dataGaLocation":40,"dataGaName":129},"/solutions/source-code-management/",{"text":133,"config":134},"Automated Software Delivery",{"href":117,"dataGaLocation":40,"dataGaName":135},"Automated software delivery",{"title":137,"description":138,"link":139,"items":144},"Security","Deliver code faster without compromising security",{"config":140},{"href":141,"dataGaName":142,"dataGaLocation":40,"icon":143},"/solutions/security-compliance/","security and compliance","ShieldCheckLight",[145,150,155],{"text":146,"config":147},"Application Security Testing",{"href":148,"dataGaName":149,"dataGaLocation":40},"/solutions/application-security-testing/","Application security testing",{"text":151,"config":152},"Software Supply Chain Security",{"href":153,"dataGaLocation":40,"dataGaName":154},"/solutions/supply-chain/","Software supply chain security",{"text":156,"config":157},"Software Compliance",{"href":158,"dataGaName":159,"dataGaLocation":40},"/solutions/software-compliance/","software compliance",{"title":161,"link":162,"items":167},"Measurement",{"config":163},{"icon":164,"href":165,"dataGaName":166,"dataGaLocation":40},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[168,172,176],{"text":169,"config":170},"Visibility & Measurement",{"href":165,"dataGaLocation":40,"dataGaName":171},"Visibility and Measurement",{"text":173,"config":174},"Value Stream Management",{"href":175,"dataGaLocation":40,"dataGaName":173},"/solutions/value-stream-management/",{"text":177,"config":178},"Analytics & Insights",{"href":179,"dataGaLocation":40,"dataGaName":180},"/solutions/analytics-and-insights/","Analytics and insights",{"title":182,"items":183},"GitLab for",[184,189,194],{"text":185,"config":186},"Enterprise",{"href":187,"dataGaLocation":40,"dataGaName":188},"/enterprise/","enterprise",{"text":190,"config":191},"Small Business",{"href":192,"dataGaLocation":40,"dataGaName":193},"/small-business/","small business",{"text":195,"config":196},"Public Sector",{"href":197,"dataGaLocation":40,"dataGaName":198},"/solutions/public-sector/","public sector",{"text":200,"config":201},"Pricing",{"href":202,"dataGaName":203,"dataGaLocation":40,"dataNavLevelOne":203},"/pricing/","pricing",{"text":205,"config":206,"link":208,"lists":212,"feature":296},"Resources",{"dataNavLevelOne":207},"resources",{"text":209,"config":210},"View all resources",{"href":211,"dataGaName":207,"dataGaLocation":40},"/resources/",[213,246,268],{"title":214,"items":215},"Getting started",[216,221,226,231,236,241],{"text":217,"config":218},"Install",{"href":219,"dataGaName":220,"dataGaLocation":40},"/install/","install",{"text":222,"config":223},"Quick start guides",{"href":224,"dataGaName":225,"dataGaLocation":40},"/get-started/","quick setup checklists",{"text":227,"config":228},"Learn",{"href":229,"dataGaLocation":40,"dataGaName":230},"https://university.gitlab.com/","learn",{"text":232,"config":233},"Product documentation",{"href":234,"dataGaName":235,"dataGaLocation":40},"https://docs.gitlab.com/","product documentation",{"text":237,"config":238},"Best practice videos",{"href":239,"dataGaName":240,"dataGaLocation":40},"/getting-started-videos/","best practice videos",{"text":242,"config":243},"Integrations",{"href":244,"dataGaName":245,"dataGaLocation":40},"/integrations/","integrations",{"title":247,"items":248},"Discover",[249,254,258,263],{"text":250,"config":251},"Customer success stories",{"href":252,"dataGaName":253,"dataGaLocation":40},"/customers/","customer success stories",{"text":255,"config":256},"Blog",{"href":257,"dataGaName":5,"dataGaLocation":40},"/blog/",{"text":259,"config":260},"Remote",{"href":261,"dataGaName":262,"dataGaLocation":40},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":264,"config":265},"TeamOps",{"href":266,"dataGaName":267,"dataGaLocation":40},"/teamops/","teamops",{"title":269,"items":270},"Connect",[271,276,281,286,291],{"text":272,"config":273},"GitLab Services",{"href":274,"dataGaName":275,"dataGaLocation":40},"/services/","services",{"text":277,"config":278},"Community",{"href":279,"dataGaName":280,"dataGaLocation":40},"/community/","community",{"text":282,"config":283},"Forum",{"href":284,"dataGaName":285,"dataGaLocation":40},"https://forum.gitlab.com/","forum",{"text":287,"config":288},"Events",{"href":289,"dataGaName":290,"dataGaLocation":40},"/events/","events",{"text":292,"config":293},"Partners",{"href":294,"dataGaName":295,"dataGaLocation":40},"/partners/","partners",{"backgroundColor":297,"textColor":298,"text":299,"image":300,"link":304},"#2f2a6b","#fff","Insights for the future of software development",{"altText":301,"config":302},"the source promo card",{"src":303},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":305,"config":306},"Read the latest",{"href":307,"dataGaName":308,"dataGaLocation":40},"/the-source/","the source",{"text":310,"config":311,"lists":312},"Company",{"dataNavLevelOne":21},[313],{"items":314},[315,320,326,328,333,338,343,348,353,358,363],{"text":316,"config":317},"About",{"href":318,"dataGaName":319,"dataGaLocation":40},"/company/","about",{"text":321,"config":322,"footerGa":325},"Jobs",{"href":323,"dataGaName":324,"dataGaLocation":40},"/jobs/","jobs",{"dataGaName":324},{"text":287,"config":327},{"href":289,"dataGaName":290,"dataGaLocation":40},{"text":329,"config":330},"Leadership",{"href":331,"dataGaName":332,"dataGaLocation":40},"/company/team/e-group/","leadership",{"text":334,"config":335},"Team",{"href":336,"dataGaName":337,"dataGaLocation":40},"/company/team/","team",{"text":339,"config":340},"Handbook",{"href":341,"dataGaName":342,"dataGaLocation":40},"https://handbook.gitlab.com/","handbook",{"text":344,"config":345},"Investor relations",{"href":346,"dataGaName":347,"dataGaLocation":40},"https://ir.gitlab.com/","investor relations",{"text":349,"config":350},"Trust Center",{"href":351,"dataGaName":352,"dataGaLocation":40},"/security/","trust center",{"text":354,"config":355},"AI Transparency Center",{"href":356,"dataGaName":357,"dataGaLocation":40},"/ai-transparency-center/","ai transparency center",{"text":359,"config":360},"Newsletter",{"href":361,"dataGaName":362,"dataGaLocation":40},"/company/contact/","newsletter",{"text":364,"config":365},"Press",{"href":366,"dataGaName":367,"dataGaLocation":40},"/press/","press",{"text":369,"config":370,"lists":371},"Contact us",{"dataNavLevelOne":21},[372],{"items":373},[374,377,382],{"text":47,"config":375},{"href":49,"dataGaName":376,"dataGaLocation":40},"talk to sales",{"text":378,"config":379},"Get help",{"href":380,"dataGaName":381,"dataGaLocation":40},"/support/","get help",{"text":383,"config":384},"Customer portal",{"href":385,"dataGaName":386,"dataGaLocation":40},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":388,"login":389,"suggestions":396},"Close",{"text":390,"link":391},"To search repositories and projects, login to",{"text":392,"config":393},"gitlab.com",{"href":54,"dataGaName":394,"dataGaLocation":395},"search login","search",{"text":397,"default":398},"Suggestions",[399,401,405,407,411,415],{"text":69,"config":400},{"href":74,"dataGaName":69,"dataGaLocation":395},{"text":402,"config":403},"Code Suggestions (AI)",{"href":404,"dataGaName":402,"dataGaLocation":395},"/solutions/code-suggestions/",{"text":121,"config":406},{"href":123,"dataGaName":121,"dataGaLocation":395},{"text":408,"config":409},"GitLab on AWS",{"href":410,"dataGaName":408,"dataGaLocation":395},"/partners/technology-partners/aws/",{"text":412,"config":413},"GitLab on Google Cloud",{"href":414,"dataGaName":412,"dataGaLocation":395},"/partners/technology-partners/google-cloud-platform/",{"text":416,"config":417},"Why GitLab?",{"href":82,"dataGaName":416,"dataGaLocation":395},{"freeTrial":419,"mobileIcon":424,"desktopIcon":429,"secondaryButton":432},{"text":420,"config":421},"Start free trial",{"href":422,"dataGaName":45,"dataGaLocation":423},"https://gitlab.com/-/trials/new/","nav",{"altText":425,"config":426},"Gitlab Icon",{"src":427,"dataGaName":428,"dataGaLocation":423},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":425,"config":430},{"src":431,"dataGaName":428,"dataGaLocation":423},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":433,"config":434},"Get Started",{"href":435,"dataGaName":436,"dataGaLocation":423},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":438,"mobileIcon":442,"desktopIcon":444},{"text":439,"config":440},"Learn more about GitLab Duo",{"href":74,"dataGaName":441,"dataGaLocation":423},"gitlab duo",{"altText":425,"config":443},{"src":427,"dataGaName":428,"dataGaLocation":423},{"altText":425,"config":445},{"src":431,"dataGaName":428,"dataGaLocation":423},{"freeTrial":447,"mobileIcon":452,"desktopIcon":454},{"text":448,"config":449},"Back to pricing",{"href":202,"dataGaName":450,"dataGaLocation":423,"icon":451},"back to pricing","GoBack",{"altText":425,"config":453},{"src":427,"dataGaName":428,"dataGaLocation":423},{"altText":425,"config":455},{"src":431,"dataGaName":428,"dataGaLocation":423},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":461,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"title":462,"button":463,"image":468,"config":472,"_id":474,"_type":26,"_source":28,"_file":475,"_stem":476,"_extension":31},"/shared/en-us/banner","is now in public beta!",{"text":464,"config":465},"Try the Beta",{"href":466,"dataGaName":467,"dataGaLocation":40},"/gitlab-duo/agent-platform/","duo banner",{"altText":469,"config":470},"GitLab Duo Agent Platform",{"src":471},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753720689/somrf9zaunk0xlt7ne4x.svg",{"layout":473},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":478,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"data":479,"_id":683,"_type":26,"title":684,"_source":28,"_file":685,"_stem":686,"_extension":31},"/shared/en-us/main-footer",{"text":480,"source":481,"edit":487,"contribute":492,"config":497,"items":502,"minimal":675},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":482,"config":483},"View page source",{"href":484,"dataGaName":485,"dataGaLocation":486},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":488,"config":489},"Edit this page",{"href":490,"dataGaName":491,"dataGaLocation":486},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":493,"config":494},"Please contribute",{"href":495,"dataGaName":496,"dataGaLocation":486},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":498,"facebook":499,"youtube":500,"linkedin":501},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[503,526,582,611,645],{"title":58,"links":504,"subMenu":509},[505],{"text":506,"config":507},"DevSecOps platform",{"href":67,"dataGaName":508,"dataGaLocation":486},"devsecops platform",[510],{"title":200,"links":511},[512,516,521],{"text":513,"config":514},"View plans",{"href":202,"dataGaName":515,"dataGaLocation":486},"view plans",{"text":517,"config":518},"Why Premium?",{"href":519,"dataGaName":520,"dataGaLocation":486},"/pricing/premium/","why premium",{"text":522,"config":523},"Why Ultimate?",{"href":524,"dataGaName":525,"dataGaLocation":486},"/pricing/ultimate/","why ultimate",{"title":527,"links":528},"Solutions",[529,534,536,538,543,548,552,555,559,564,566,569,572,577],{"text":530,"config":531},"Digital transformation",{"href":532,"dataGaName":533,"dataGaLocation":486},"/topics/digital-transformation/","digital transformation",{"text":146,"config":535},{"href":148,"dataGaName":146,"dataGaLocation":486},{"text":135,"config":537},{"href":117,"dataGaName":118,"dataGaLocation":486},{"text":539,"config":540},"Agile development",{"href":541,"dataGaName":542,"dataGaLocation":486},"/solutions/agile-delivery/","agile delivery",{"text":544,"config":545},"Cloud transformation",{"href":546,"dataGaName":547,"dataGaLocation":486},"/topics/cloud-native/","cloud transformation",{"text":549,"config":550},"SCM",{"href":131,"dataGaName":551,"dataGaLocation":486},"source code management",{"text":121,"config":553},{"href":123,"dataGaName":554,"dataGaLocation":486},"continuous integration & delivery",{"text":556,"config":557},"Value stream management",{"href":175,"dataGaName":558,"dataGaLocation":486},"value stream management",{"text":560,"config":561},"GitOps",{"href":562,"dataGaName":563,"dataGaLocation":486},"/solutions/gitops/","gitops",{"text":185,"config":565},{"href":187,"dataGaName":188,"dataGaLocation":486},{"text":567,"config":568},"Small business",{"href":192,"dataGaName":193,"dataGaLocation":486},{"text":570,"config":571},"Public sector",{"href":197,"dataGaName":198,"dataGaLocation":486},{"text":573,"config":574},"Education",{"href":575,"dataGaName":576,"dataGaLocation":486},"/solutions/education/","education",{"text":578,"config":579},"Financial services",{"href":580,"dataGaName":581,"dataGaLocation":486},"/solutions/finance/","financial services",{"title":205,"links":583},[584,586,588,590,593,595,597,599,601,603,605,607,609],{"text":217,"config":585},{"href":219,"dataGaName":220,"dataGaLocation":486},{"text":222,"config":587},{"href":224,"dataGaName":225,"dataGaLocation":486},{"text":227,"config":589},{"href":229,"dataGaName":230,"dataGaLocation":486},{"text":232,"config":591},{"href":234,"dataGaName":592,"dataGaLocation":486},"docs",{"text":255,"config":594},{"href":257,"dataGaName":5,"dataGaLocation":486},{"text":250,"config":596},{"href":252,"dataGaName":253,"dataGaLocation":486},{"text":259,"config":598},{"href":261,"dataGaName":262,"dataGaLocation":486},{"text":272,"config":600},{"href":274,"dataGaName":275,"dataGaLocation":486},{"text":264,"config":602},{"href":266,"dataGaName":267,"dataGaLocation":486},{"text":277,"config":604},{"href":279,"dataGaName":280,"dataGaLocation":486},{"text":282,"config":606},{"href":284,"dataGaName":285,"dataGaLocation":486},{"text":287,"config":608},{"href":289,"dataGaName":290,"dataGaLocation":486},{"text":292,"config":610},{"href":294,"dataGaName":295,"dataGaLocation":486},{"title":310,"links":612},[613,615,617,619,621,623,625,629,634,636,638,640],{"text":316,"config":614},{"href":318,"dataGaName":21,"dataGaLocation":486},{"text":321,"config":616},{"href":323,"dataGaName":324,"dataGaLocation":486},{"text":329,"config":618},{"href":331,"dataGaName":332,"dataGaLocation":486},{"text":334,"config":620},{"href":336,"dataGaName":337,"dataGaLocation":486},{"text":339,"config":622},{"href":341,"dataGaName":342,"dataGaLocation":486},{"text":344,"config":624},{"href":346,"dataGaName":347,"dataGaLocation":486},{"text":626,"config":627},"Sustainability",{"href":628,"dataGaName":626,"dataGaLocation":486},"/sustainability/",{"text":630,"config":631},"Diversity, inclusion and belonging (DIB)",{"href":632,"dataGaName":633,"dataGaLocation":486},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":349,"config":635},{"href":351,"dataGaName":352,"dataGaLocation":486},{"text":359,"config":637},{"href":361,"dataGaName":362,"dataGaLocation":486},{"text":364,"config":639},{"href":366,"dataGaName":367,"dataGaLocation":486},{"text":641,"config":642},"Modern Slavery Transparency Statement",{"href":643,"dataGaName":644,"dataGaLocation":486},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":646,"links":647},"Contact Us",[648,651,653,655,660,665,670],{"text":649,"config":650},"Contact an expert",{"href":49,"dataGaName":50,"dataGaLocation":486},{"text":378,"config":652},{"href":380,"dataGaName":381,"dataGaLocation":486},{"text":383,"config":654},{"href":385,"dataGaName":386,"dataGaLocation":486},{"text":656,"config":657},"Status",{"href":658,"dataGaName":659,"dataGaLocation":486},"https://status.gitlab.com/","status",{"text":661,"config":662},"Terms of use",{"href":663,"dataGaName":664,"dataGaLocation":486},"/terms/","terms of use",{"text":666,"config":667},"Privacy statement",{"href":668,"dataGaName":669,"dataGaLocation":486},"/privacy/","privacy statement",{"text":671,"config":672},"Cookie preferences",{"dataGaName":673,"dataGaLocation":486,"id":674,"isOneTrustButton":103},"cookie preferences","ot-sdk-btn",{"items":676},[677,679,681],{"text":661,"config":678},{"href":663,"dataGaName":664,"dataGaLocation":486},{"text":666,"config":680},{"href":668,"dataGaName":669,"dataGaLocation":486},{"text":671,"config":682},{"dataGaName":673,"dataGaLocation":486,"id":674,"isOneTrustButton":103},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",[688],{"_path":689,"_dir":690,"_draft":6,"_partial":6,"_locale":7,"content":691,"config":695,"_id":697,"_type":26,"title":18,"_source":28,"_file":698,"_stem":699,"_extension":31},"/en-us/blog/authors/marcia-ramos","authors",{"name":18,"config":692},{"headshot":693,"ctfId":694},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Marcia-Ramos",{"template":696},"BlogAuthor","content:en-us:blog:authors:marcia-ramos.yml","en-us/blog/authors/marcia-ramos.yml","en-us/blog/authors/marcia-ramos",{"_path":701,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"header":702,"eyebrow":703,"blurb":704,"button":705,"secondaryButton":709,"_id":711,"_type":26,"title":712,"_source":28,"_file":713,"_stem":714,"_extension":31},"/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":42,"config":706},{"href":707,"dataGaName":45,"dataGaLocation":708},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":47,"config":710},{"href":49,"dataGaName":50,"dataGaLocation":708},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",1758326238243]