GitLab 101

GitLab 101

During the monthly GitLab 101 call with new hires and the CEO where we talk about the following topics. This is a zoom call (please make sure there is no Google Hangout link in the invite). The agenda is below, urls are expanded so you can click on them when we paste this in the calendar invite:

  1. Overview of the GitLab history
  2. Our values
  3. Everyone introduces themselves using the order in the calendar invite. What do you do at GitLab? Why did you join GitLab? What do you enjoy in your private life (quirky details are encouraged, also feel free to introduce your significant other and/or pets)? Did you already have 10 virtual coffee breaks? If you already had 10 are you open to more?
  4. Team structure
  5. How we work
  6. Q&A, which results in the FAQ on, this is done by a people-ops person that also joins the call.

Frequently Asked Questions about the GitLab Culture

Q: understand that one of the two largest telecommunications operators in the United States wanted to copy our handbook?

We feel that there are definitely some parts that companies can take home from our handbook, but a handbook should be specific on what you do, not on what you wanna be. Every company will be able to fill out their own handbook over time.

Q: What could slow us down with making sure the enterprise edition is successful?

Losing the interest of the open source community. If someone wants to make a contribution for CE and decides not to merge it because it’s an EE feature for example. Saas will be very important; it will be the largest part of revenue in 2019 A great example of this is Netflix. Everyone knew that video on demand was the future. Netflix however started shipping dvds over mail. They knew that it would get them a database of content that people would want to watch on demand. Timing is everything. GitHub is longer around, but we feel it’s still early. Tools don’t collaborate and we can try to do a better job than our competition.

Q: If an EE customer wants to pay for us to develop a specific feature, how do we manage this?

It’s great someone wants to pay to have a feature built, it means they really need it. However, we will not make a custom version of GitLab, even is running on EE, we move faster that way. Working this was minimizes technical complexity to determine features to follow after, it’s a trade off to make. This doesn’t mean that no is always going to stay no. Dmitriy was against open projects. We keep an open mind for improvements.

Q: What do you think are the things that could slow us down in the future that we should be aware of as a team and product?

A few things have come up, and we feel the best example is proposing 2 month release cycle. The argument was that we have a lot of bug fixes every time and it would give us more time to make a feature. We don’t feel that is the case. We aim to make the absolute smallest thing possible other wise it will slow you down. We would love to work on a 2 week release cycle but that should be another conversation.

Q: Do we split up cost on how we invest our cash?

It’s hard to be open about financials; it’s easy when everything is going well but very hard when it’s not. We try to be open to our team as we go along but it will hurt being open to the outside world about this in the future.

Q: Why do we work on Gogs, since it looks kind of similar to what we do at GitLab?

Gogs has a similarity with the core function of GitLab. Many times with competitors, we feel we can do the same, we can make that feature, we can add it to GitLab. What Gogs does is similar to GitLab but with less CPU and memory which is very difficult for us. Since it can host repositories for personal projects of a few people we feel it’s complementary to GitLab since we don’t service that target audience. There is still a place in the market for this tool and it’s genuinely useful so let’s make sure it’s a great tool for people to use. If you’re using GitLab and want to downgrade or are using Gogs and need more, the integration is simple and easy.

Q: When do you feel we should do an IPO?

Basically you can do an IPO when you have $100 million in Annual Recurring Revenue (ARR). After we cross that threshold we can start thinking about IPO, before that we’re too small.

Q: Do you feel 2020 is very aggressive timing for an IPO?

It's aggressive, it's possible, and it's realistic. Having a goal gives us clarity on what we need to achieve. Our ambition is clear, and we want to be a growing and independent company. We are in an enormous market, and we're winning that market.

Q: What do you feel are the challenges in becoming the number one solution that companies standardize on?

If we can make a product that is strong with all features from idea to production, and it works well, then you have a chance. It should have benefits that you can only have with an integrated product, such as Cycle Analytics.

Q: Is it worth investing in trying to win the open source market from our competitors?

Our plan is to start with becoming the most popular tool for people’s own git hosting service; we’ve managed that so far. Secondly we want to get to be the one with the most revenue. Thirdly we want to become the most popular tool for hosting private repos. Once we’ve reached that we want to be the most popular tool for hosting public repos and lastly we want to be the number one tool for people to host not code but books, tech papers, visual models. movies etc. More info on this is on our strategy page

Q: Doesn't constant iteration sometimes lead to shipping lower quality work and a worse product?

We know that iteration is painful. If you're doing iteration correctly, it should be painful. However, if we take smaller steps and ship smaller simpler features, we get feedback sooner. Instead of spending time working on the wrong feature or going in the wrong direction, we can ship the smallest product, receive fast feedback, and course correct.

Q: What were the biggest challenges you faced as a team as a result of Y Combinator?

We became much more comfortable with a much faster pace. This changed the way we thought about what we can achieve in a short timeframe. If we think something takes too long, we need to change our idea of what we can accomplish. There is always an opportunity to do something smaller and imperfect but that still makes a difference.

Q: Where do you draw your inspiration for our values?

We take inspiration from other companies, and we always go for the boring solutions. Just like the rest of our work, we continually adjust our values and try to always make them better. We used to have more values, but it was difficult to remember them all, so we condensed them and gave sub-values and created an acronym. Everyone is welcome to suggest on how to improve them.

Q: How did the handbook start?

The handbook started when there were only 10 people, to make sharing information efficient and easy. People won't see emails about process changes that were sent before the joined, and most of the people who will eventually join GitLab have not joined yet, so we need to have the information accessible to everyone.

Q: I read that GitLab is not a democracy but everyone is encouraged to contribute, ask questions, and challenge. How do you view that hierarchy, and how are decisions made from the top-down?

There's a trade-off between speed and breadth when making decisions. A lot of companies try to find the ideal trade-off between speed and breadth. But you can keep trying this since every time you move towards one side you move away from the other. At GitLab we solve this trade-off by distinguishing between two phases in the decision making process, the data gathering phase and the conclusion phase. During the data gathering phase we allow everyone to give their data and point of view. We are on the extreme side since we not only ask people in the hierarchy to contribute, as well as the rest of the company, but we also open it up to people outside of the company to contribute as well. In other companies a wide breadth of opinions causes a problem during the conclusion phase. This because there are many opinions and it takes a long time to reach consensus. At GitLab, we give authority to the person who has to do the work and their chain of command. They are experts and they make the decisions and will have to live with them. If they make a mistake, at least it's something they chose and will be motivated to fix. This way we have the best of both worlds, we get a huge breadth while also having a speedy process. Everyone can contribute, but at the same time we want results and encourage ownership.