--- title: "How is team-member-1 doing?" author: Marcia Ramos author_gitlab: marcia author_twitter: XMDRamos categories: company image_title: '/images/unsplash/man-standing.jpg' description: "People asked how team-member-1 is doing after the DB incident of Jan 31st - Feb 1st. We're here to tell you that." ee_cta: false --- The engineer that gave the unfortunate command to [delete our primary database](/blog/2017/02/01/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. After we posted [the postmortem of the incident with GitLab.com](/blog/2017/02/10/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. 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. ## #HugOps We were all really touched by the love our community sent us via [#HugOps](https://twitter.com/i/moments/826818668948549632):
**At the end of the day, we are all _team-member-1_**:
### Support from our community The support our engineers received from our community was fantastic, people were appreciative of our [transparency](/handbook/values/) in working on the solution. Even teams from other companies, who had been in that situation themselves, showed their support.
❤️  **Thank you all! We're very touched by your support!**  ❤️ {: .alert .alert-gitlab-purple .text-center} {::options parse_block_html="true" /} The Codefresh team brought cookies to our Experience Center in San Francisco with a card saying: > _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_ 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: > _Yay for you! We've all been there! :) From friends of yours at Google_
![Google gift card](/images/blogimages/how-is-team-member-1-doing/google-gift.png){: .center-block}*Gift from Google*
![Codefresh cookies](/images/blogimages/how-is-team-member-1-doing/colefresh-cookies.jpg){: .center-block}*Gift from Codefresh*
{::options parse_block_html="false" /} ❤️  **Thank you Codefresh and Google!**  ❤️ {: .alert .alert-gitlab-purple .text-center} The 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! 😛 Needless 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. ## GitLab Values 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. We make mistakes. What's different from person to person, organization to organization, is how to deal with them. What we [value](/handbook/values/) most at GitLab is: > - _**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."_ - _**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."_ - _**Behaviour**:_ - _Be truthful and honest._ - _Be dependable, reliable, fair, and respectful._ - _Be committed, creative, inspiring, and passionate._ How could we value transparency if our team members were afraid of assuming their mistakes? > _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). ## Team-member-1 While we were putting the fire out, we received this comment: > _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)) And this thoughtful tweet:

Pray for team-member-1 pic.twitter.com/foQcWm0WJH

— RubĂŠn FernĂĄndez (@_rubenfa) February 1, 2017
We heard you RubĂŠn! :) Yes, _team-member-1_ is doing very well! Coincidentally, just before the DB incident, _team-member-1_ had qualified for a promotion to senior developer. The outage did not change that decision. > _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-operations/#promotions) When 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. ### Reasons for promoting _team-member-1_ [Pablo Carranza](/company/team/#psczg) (Production Lead), provided GitLab with the following reasons to promote _team-member-1_: {::options parse_block_html="true" /}
Reasons {: .panel-heading}
_Following what is expected out of a Senior Developer in the [job description](/job-families/engineering/developer/):_ Senior Developers are experienced developers who meet the following criteria: 1. **Technical Skills** * Are able to write modular, well-tested, and maintainable code _- I think this is out of the question here and we have enough samples_ * 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._ * 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_ 2. **Leadership** * 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)._ * 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._ 3. **Code quality** * Leaves code in substantially better shape than before _- Agreed, he does this. Refer to the links provided at the bottom_ * Fixes bugs/regressions quickly _- He has even performed there operations in production itself providing hotfixes._ * Monitors overall code quality/build failures - _[MR](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7310)_ * Creates test plans - _[MR](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8191#note_20300210)_ 4. **Communication** * Provides thorough and timely code feedback for peers - _Refer to code quality section._ * Able to communicate clearly on technical topics - _He created our [performance](http://docs.gitlab.com/ee/development/performance.html) and [sidekiq](http://docs.gitlab.com/ee/development/sidekiq_style_guide.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._ * 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._ * 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))._ * Helps with recruiting _- He is currently helping me to find a database specialist by reviewing job applications performing the initial filter._ 5. **Performance & Scalability** * 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._ * 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._ _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._  _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._ _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._
{::options parse_block_html="false" /} ### We support each other For those developers involved in the outage, we made a special T-shirt: ![T-shirt back](/images/blogimages/how-is-team-member-1-doing/team-member-1-tshirt.jpg){: .center-block} 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. ## Wrapping Up At GitLab, we value most positive achievements and performance improvements of our team members, instead of focusing our attention on negative random situations. 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. > _What doesn't kill you makes you stronger._ ([HN](https://news.ycombinator.com/item?id=13621356)) ---- Do you like our values? Love GitLab as much as we do? [Join us](/jobs/)! ---- [Cover image](https://unsplash.com/?photo=mGYxAWITqMg) by [Jason Blackeye](https://unsplash.com/@jeisblack), licensed under [CC0 1.0](https://unsplash.com/license). {:.note}