Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Tools and Tips

A lot of tools we use are described in the rest of the handbook (GitLab, Google Docs, 1Password, etc.). This section is for tools that don't fit elsewhere.

2FA debugging

If 2FA stops working unexpectedly (no new phone or computer) it's usually because of improperly configured date & time on either device. Make sure that "Automatic Date & Time" is enabled on both devices. If they're already enabled try toggling them off and on again to force an update. If this doesn't work, request that ITOps reset your 2FA setting.

Links for finding the settings:

For Android there's no definitive link, since most vendors have different UIs for their settings. But in the Settings-app, look for "Date & Time" and there should be a "Automatic Date & Time" toggle.


Adblockers are handy browser extensions/plugins that can block advertising, prevent user tracking, and other security-related features. A couple of popular ones the Security Team approves and recommends are:

Ad Privacy

Sharing your screen to get your idea across can be very productive, but having personalized ads show up on a webpage may be undesirable. Shut off interest based ads by setting your preferences. Google Ad Settings, AdChoices


Alfred is an application launcher and productivity tool for macOS. The core app is free to download and use, but the paid Powerpack enables more powerful searching, a fantastic clipboard history feature, app integrations, easy access to shell commands, and more. It's a great tool for developers and general productivity enthusiasts alike. The clipboard history feature is nicely integrated with many tools, and for example will forget passwords copied from 1Password after they have been pasted.

If you'd like to share your calendar with e.g. your partner you can use the 'Share with specific people' feature and set the permissions to 'See only free/busy (hide details)':{query}{query}&stp=1


Bear (Free) is a clean writing tool for notes and long-form writing. Ulysses $5/month is also a great choice. (free trial) provides music specially designed to help you focus, relax, meditate, recharge, sleep (great for plane rides). It's not just music though. They use scientifically validated brainwave manipulations to get results. It is AMAZING and really does work. Make sure to use with headphones, and give it 10-15 minutes for your brain to get used to it. ($6.95/$15.99/$47.40 per month/quarter/year)

Browser Plugins/Extensions

In general, if a particular application or browser extension (sometimes called a plugin) is referenced in the handbook, it is considered "approved". For example, 1Password is centered around the browser extension. Another application is Zoom, which has a scheduler extension. However, be sure to search for specific information about the application, in case the desktop version is recommended and the browser extension is not (e.g. Grammarly).

If you wish to use an extension not referenced in the handbook, consider the following before installing and using it:


Calendly connects to your Google Calendar so people outside GitLab can easily book a time with you. If you are scheduling a meeting with a GitLab team-member, please use Google Calendar and follow handbook guidance when scheduling a meeting.

  1. Set up a Calendly account.
  2. Link it to your GitLab Google Calendar to make it possible for people to schedule a call with you.
  3. Get your personal meeting room URL by going to Zoom meeting settings, selecting the Personal Meeting Room tab, and copying the value of Join URL (do not use Copy the invitation).
  4. Set up the 45 minute time slot with the following event description text (replacing text in {} with your information):

    This will be a Zoom Meeting at {Zoom personal meeting room URL}

    Question? Please email me. {your GitLab email}

  5. Set the event name to 45 Minute Meeting.
  6. Change the event link to 45min.
  7. The event description needs to be copied to the 15, 30 and 60 minute meetings as well.
  8. If you intend to use any of the other event types, make sure to add this to their event descriptions as well.
  9. For people outside of GitLab Inc, send them your Calendly link that links directly to the 45 minute time slot: "Are any of the times on convenient for you? If so please book one, if not please let me know what times are good for you and we'll find an alternative."
  10. Update your availability on Calendy Event Types by clicking the action cog and then the edit option on an event type (For Example: 15 minute meeting) and in the event details clicking on the "When can people book this event?" section then clicking the "Availability" section. Here you can set your working hours during which you want to accept meetings, and on the "Advanced" tab you can set the minimum scheduling notice you want enforced. Although Calendy does synchronize with Google Calendar to show your availability you may wish to set extra restrictions in Calendy. You can use the "Copy Availability From" option on all the other events you have configured one event.

Keep in mind that unlike normal Google Calendar events, Calendly events are not automatically synchronized between both parties when changes are made. If an event needs to be cancelled or modified, make sure to use Calendly to do so.

Change your username at

STEP 1: Request your new username

STEP 2: Create a new account with your new username

STEP 3: Let's have some fun (kidding, this is critical!)

STEP 4: Move your projects (or not)

That's it! Don't forget to update your username on the team page and on the Marketing Handbook, in case you're a Marketing Team member.

Check which process occupies a given port

When the GitLab Development Kit cannot start using the ./run command and Unicorn terminates because port 3000 is already in use, you will have to check what process is using it. Running sudo lsof -i -n -P | grep TCP | grep 3000 will yield the offender so this process can be killed. It might be wise to alias this command in your .bash_profile or equivalent for your shell.


Clocker (Free / macOS Only) adds a clean and distraction free world clock to your menu bar so you can check on your fellow teammates across different timezones.

Create gifs

We have a dedicated section for that in the handbook.

Disabling macOS Notification Center

During a presentation or screen share, you might want to disable your notifications on macOS to prevent distractions or possible embarrassment.

The Notification Center can be quickly disabled by Option-Clicking the menu bar icon in the top right of your screen. This disables notifications until the next day. Option-Click again to re-enable immediately. Alternatively, click on the Notification Center icon, then scroll up to reveal the "Do Not Disturb" toggle.

If your laptop is a MacBook with a Touch Bar, note that you can assign a handy "Do Not Disturb" button on your Control Strip. In System Preferences, navigate to Keyboard settings and click "Customize Control Strip…" to add this.

Display current git branch in the console

By adding this small configuration you will be able to view the git branch that you are using currently. If you are not inside a git repository, it only displays the username and the current directory.


Add the following lines in your .bash_profile

git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
export PS1="\u@\[\033[32m\]\w\[\033[33m\]\$(git_branch)\[\033[00m\]\$ "

Doing the following, makes the changes to get reflected in you current terminal:

source ~/.bashrc


On macOS Catalina, ZSH is the default shell. By installing Oh My ZSH!, the git plugin is automatically loaded and shows the current git branch.

Another option would be:

Add the following lines in your ~/.zshrc

git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
PROMPT="%n@%d~%f%\$(parse_git_branch) %# "

The changes will show on the next terminal or inmediatly by running.

. ~/.zshrc

The changes will show on the next terminal or inmediatly by running.

. ~/.zshrc

Flash (Do NOT Use)

Flash: Due to security flaws, we strongly recommend not using Adobe Flash. Certainly do not install it on your local machine. But even the Google Chrome plugin that let's you see embedded Flash content in websites can pose a security hazard. If you have not already, go to your Chrome Flash Settings and disable Flash. For further context, note that Google Chrome is removing Flash support soon, and while the plugin is better than a local install of Flash, it still leaves vulnerabilities for zero-day attacks.


If you find yourself switching to websites you find distracting, especially during periods that require focus, and you worry it may affect your productivity, consider using Freedom. Their browser extensions, mobile apps, and desktop apps block distracting websites and apps for the duration of a configurable session. If you find yourself typing f and hitting enter from muscle memory, you will not be scrolling through endless pages of photos of your friends' lunches.

GitLab team-members' resources

The GitLab team-member resources project has a wiki for sharing among GitLab team-members.

It's for topics like parenting where people may want to share knowledge, but the handbook is not the best fit.

GitLab team-members' setups

For engineers interested in using Linux, please see our Linux tools page.

@tipyn's home office equipment and macOS setup

Google Analytics

Google Analytics (GA) is an essential tool for making data-driven decisions. It receives data from both and websites. Read through the Online Marketing Handbook for more information on GA.

For example, you can look at the GA data to analyze how visited is a certain page, in a period of your choice. You can also look at the GA referrals data to understand where the users are coming from and where they go when they leave a certain page.

To see the data for a specific page:

To find the referrals for a certain page, continue from the steps above.

Google Calendar

Finding a time

Please make use of the Find a Time tab in Google Calendar, especially when scheduling events with teammates in other parts of the world:

Google Calendar - Find a Time

Find a Time presents a new or existing event's time for all participants, adjusting for time zones as appropriate. To use Find a Time:

  1. Create a new event or modify an existing event.
  2. Click the "Find a Time" tab. Invited guests will be presented in the availability table and represented by a column.
    • Areas outside of someone's working hours (9:00 AM - 5:00 PM by default) are represented in light grey.
    • Guests who are optional will not appear in the availability table by default. You can add them by checking their name in the "Guests" area on the right hand side.

GitLab Availability Calendar

The GitLab Availability Calendar has been deprecated to allow for GitLab to scale effectively. We have created tools and tips for managing your time off.

GitLab Team Meetings Calendar

The GitLab Team Meetings Calendar is available to all team members and can be found in your calendars list. You can find the details for the Company Calls, Group Conversations, 101s, and other teams' meetings here, so you can attend a different team's meeting and ask questions, learn about what they're working on, and get to know the rest of the GitLab functional groups. These meetings are open to everyone in GitLab. If you are creating a new team meeting, please copy it to the GitLab Team Meetings calendar, and reach out to the People Experience team by pinging @people_exp in the #peopleops Slack channel with any questions or requests. Please reach out to the People Experience team for any requests and changes to the GitLab Team Meetings calendar.

To copy an event to this calendar:

  1. Open this calendar's settings from the Google Calendar sidebar.
  2. Find the style Calendar ID under "Integrate calendar".
  3. Finally, invite this calendar as a guest to your existing event.

Managing invite responses

Add a filter to remove invites responses from your inbox with the following query:

*.ics subject:("invitation" OR "accepted" OR "rejected" OR "updated" OR "canceled event" OR "declined") when where calendar who organizer

Modifying Events

Please click 'Guests can modify event' so people can update the time in the calendar instead of having to reach out via other channels. You can configure this to be checked by default under Event Settings.)

Google Calendar - Guests can modify events setting

Restore Deleted Calendar Items

(This assumes you are using Google's new Calendar).

When you have accidentally deleted something from the Team Meetings calendar, you can recover it by:


We recommend you set your Google Calendar access permissions to 'Make available for GitLab - See all event details'. Consider marking the following appointments as 'Private':

There are several benefits and reasons to sharing your calendar with everyone at GitLab:

  1. Transparency is one of our values and sharing what you work on is in line with our message of "be open about as many things as possible".
  2. Due to our timezone differences, there are small windows of time where our availabilities overlap. If other members need to schedule a new meeting, seeing the details of recurring meetings (such as 1-1s) will allow for more flexibility in scheduling without needing to wait for a confirmation from the team member. This speaks to our value to be more efficient.

Google Calendar - make calendar available setting

If you'd like to share your calendar with e.g. your partner you can use the 'Share with specific people' feature and set the permissons to 'See only free/busy (hide details)':

Share with specific people

Speedy Meetings

Enable speedy meetings to automatically provide a buffer at the end of events you schedule. This thoughtfully allows participants with back-to-back events the opportunity to use the restroom or grab a cup of coffee without being late to their next function.

Google Calendar - Enable speedy meetings

World Clock

Add as many time zone world clock as you wish by going to Settings -> World Clock.

Google Calendar - World Clock

Google Cloud Platform

See the Engineering handbook for a listing of cloud resources and how to gain access to them.

Google Drive/Docs

First, an important message - Don't use Google Drive/Apps (unless you have to)

We would be remiss if we didn't start this section off with this IMPORTANT message: Your default storage place for information that needs to persist and be available to others in the company should be ON THE WEBSITE/IN THE COMPANY HANDBOOK and not in Google Drive and Google Apps files!! This is from the top. This is how we operate, because Google Docs/Apps can only be found and contributed to by team members, and not by users, customers, advocates, future employees, Google handbook searches, or developers.

Which files and rules to using Google Drive/Apps

Having said that, there is content which doesn’t make sense to be created on the website directly (eg. large collections of data in tables, spreadsheets for calculations, etc) or for which Google Drive storage makes sense. For these, when creating or storing files in Google Drive, the web/handbook should have a link to this content and effectively be the index for finding things of relevance that are stored in the Google drive.

There are a few ways to do this to maintain proper levels of privacy:

Rarely, but sometimes, it is appropriate to store files in Google Drive but NOT let those outside GitLab see it. In general, this is when there is information which we need to keep, but which we are under obligation to not share. Examples of this are:

Everything else should be viewable by the public, although not necessarily editable by them. Examples of this content are:

Following are some tips for how to use Google Drive for the instances where it makes sense to.

Keeping it organized

It is important that we not just throw files into random or general places in the shared Google Drives. Doing so makes it harder for others to find and work with the content. Here are some guidelines to organizing the Google Drive content:

Using Google Drive

For starters, when your GitLab Google company account is created you automatically get a Google Drive with unlimited storage allocation in your own "home" directory (called My Drive). You can get to it by:

  1. (optional) Login to your GitLab account in your browser (if you are using Chrome)
  2. Open your web browser to
  3. If you're not already logged in as your GitLab account (Chrome users should be) then login to Google using your GitLab account
  4. This will take you to your Google Drive (called My Drive) which is like your home directory. If you create Google files using Google Apps and don't specify where to store them, they will be put in this home directory.

This is great for storing your own working files. As already stated, this should never be the final resting place for shared files that are meant to be used by the rest of the company (or beyond).

Existing GitLab Google Drive repositories

There are a few Google Drive repositories of GitLab shared files (there might be more, please add if not listed here):

How do you use these? You don't have to remember these URL's. To add these links to your Google Drive My Drive directory, do the following:

Add to Drive Animation

  1. Make sure you are logged into your GitLab account in Google Drive in your browser
  2. Open the link of interest (from above) to go to that directory
  3. Find the directory path across the top (under the "Search Drive" field)
  4. Find the name of directory in that path that you want to add to your drive (eg. Sales)
  5. Click on the down arrow next to it
  6. From the resulting pop-up menu, select "Add to My Drive"
  7. From now on you can get to that directory by first going to your drive ( and then opening that link

Adding Google Drive to your Mac

To really make your Google Drive easier to access, you can have your Google Drive show up on your Mac Finder as a regular drive. With this it is easier to store and view files such as videos, analyst reports (PDFs), etc.

Here's how to do this:

Download Drive Sync Animation

  1. Make sure you are logged into your GitLab account in Google Drive in your browser
  2. Go to your Google Drive (
  3. Click on the "Settings" icon (Gear) to the right of the search field
  4. From the resulting menu, select "Download Drive File Stream for Mac"
  5. It might pull up a new page/tab and use your personal login. If it does this you won't see "Download & install Drive File Stream" on the page. Switch to your GitLab account.
  6. Download and install

Google Docs Pro Tips

  1. Quickly create a new Google Doc in chrome: type "" in the chrome address bar. Likewise "" for a Google Sheet etc…
  2. While in a document with many other editors, click on the image or icon of any user at the top of the document to move focus to their cursor and what they are typing in the document. This is great when someone is speaking about something they are typing on a video call and you are not sure where they are in the document.

Google Forms

Use these Gitlab branded form templates when creating internal or external surveys or forms. Make a copy of the form and only edit the copy; do not edit the template itself.

Google Hangouts

Computers with older CPUs (pre-2016/Skylake) may be missing hardware acceleration for VP9. In Chrome, this can cause excessive CPU due to use of the codec. On macOS switching to Safari or using h264ify (Chrome Web Store) solves this since it will use h264 that is hardware accelerated.

To check the status of acceleration on Chrome, see the "Video Encode" option in about://gpu (type the address about://gpu directly into the browsers address bar as the hyperlink will not work).

Google Mail (Gmail)


If you use the archive function, you normally return to your overview. With Auto-advance you can select whether to advance to the next or previous message. "Auto-advance" can be enabled from the Advanced section under Settings. This reveals the Auto-advance settings in the General section under Settings. The default setting of showing the previous (older) message is usually preferred.

Email signature

Set up an email signature which includes your full name and job title so people can quickly know what you do.


Note: You can copy and paste the template below to use it in your own signature.

John Doe Frontend Engineer | GitLab


Apply label on mention

It might be useful to add a Gmail filter that adds a label to any GitLab notification email in which you are specifically mentioned, as opposed to a notification that you received simply because you were subscribed to the issue or merge request.

  1. Search for @your_gitlab_username.
  2. Click the down arrow on the right side of the search field.
  3. Click Create filter with this search.
  4. Check Apply the label: and select a label to add, or create a new one, such as "Mentioned".
  5. Check Also apply filter to matching conversations.
  6. Click Create filter.

Apply label to all GitLab-generated emails

GitLab issues and merge requests can generate a lot of email notifications depending on your settings and how in-demand your attention is. It can be useful to apply a label to these generated emails and move them out of your immediate inbox.

  1. Search for
  2. Click the down arrow on the right side of the search field.
  3. Click Create filter with this search.
  4. Check Skip the Inbox (Archive it).
  5. Check Apply the label: and select a label to add, or create a new one, such as "".
  6. Check Also apply filter to matching conversations.
  7. Click Create filter.

You can learn more about how to use Gmail filters to organize your inbox in Productivity Hack video. To import downloaded filter export go to Gmail => Settings => Filters and Blocked Addresses => Import filters.

Keyboard shortcuts

Keyboard shortcuts only work if you've turned them on in Gmail Settings.

Steps below:

Here are some shortcuts you can use

Split screen

List your inbox and preview mails in one view with this configuration change:

Google Slides

Use this general GitLab branded slide template when creating slide decks for internal and external use. Make a copy of the slide deck and only edit the copy; please do not edit the template itself.

Updating your slide deck theme

Here are a few quick steps for updating your slide decks to match the most recent template:

  1. In the top toolbar click Theme which will open the Themes panel (on the right-hand side). Change theme in Google Slides
  2. At the bottom of the Themes panel, click Import theme.
  3. In the Import theme dialog box type GitLab deck template into the search field.
  4. Find the GitLab-Deck-Template and click the Select button in the bottom left to apply the theme to your slide deck.
  5. Minor adjustments may be needed once the new theme is applied; the 'Layout' button in the toolbar will help you find the right slide layout for your content.


Grammarly is a good tool for those who want to feel more comfortable drafting written communication in English (American or British). There is a free and premium version.

Warning: Grammarly browser extensions are discouraged, Grammarly will have access to everything you type in your browser, and they have had a security problem. If you want to use it to check non-confidential text manually, you should download the desktop version instead.


Link your GitLab email address to an easily recognizable photo of yourself on GitLab, Slack, and Gravatar. It is company policy to use a photo, and not an avatar, a stock photo, or something with sunglasses for any of your GitLab accounts, as we have a lot of GitLab team-members and our brains are comfortable with recognizing people; let's use them.


We have a central account for managing licenses of JetBrains' products like RubyMine or GoLand. If you want to use one of their products, please log an Access Request and select the best option for your situation (single user, bulk user, etc.) and assign to the System Provisioner listed in the Tech Stack for this system. Once your Access Request has been approved, you will receive a link with which you can redeem your license. Make sure to use your company email address when creating your Jetbrains account. If at some point in the future you do not want to use the product anymore, please notify us via, so that we can assign the license to someone else.

Useful plugins:

Keeping You Awake

Keeping You Awake (Free & Open Source) is a macOS utility application that can prevent your Mac from entering sleep mode for a predefined duration or as long as it is activated.


Krisp will mute background noise when you're in a noisy environment so you can hear and be heard more easily on calls.

Lock Screen on your Mac Menu Bar

  1. Open up the Keychain Access application
  2. In the menu bar (next to the apple logo), click on Keychain Access
  3. Click on Preferences
  4. Check the box Show keychain status in menu bar
  5. The lock icon should now show up on your menu bar

You can lock your screen by clicking the lock icon on the menu bar and clicking Lock Screen

Lock Screen on your Mac Touch Bar

  1. Open System Preferences > Keyboard
  2. Click Customize Touch Bar
  3. Drag the Screen Lock icon to the Touch Bar
  4. Done!

Lock Screen on your Mac with Alfred

With enabling Alfred and e.g. replacing Spotlight's Cmd + Space shortcut, you can do speedy locking with your keyboard:

  1. Press Cmd + Space.
  2. Type in lock. After repeating this for a while, you can just type l.
  3. Enter to lock the screen.

Long haul flights

Note: you have to pay for these items yourself.


Loom (Free) is a handy Chrome plugin tool for video walkthroughs. Nice tool for demo recordings and internal/external documentation.

Mac Tips

Here are some useful tips if you are new to Mac. Even if you are not new, these keyboard shortcuts may come in handy.

If you are switching from Windows to Mac, these tips may be useful.


Page counts are determined through a simple two-step process:

  1. Count the number of words in the handbook. This can be done by running find source/handbook -type f | xargs wc -w from the root directory of the repository.
  2. Submit the word count to WordCounter for conversion to a page count.


Mermaid is a tool that allows us to create flowcharts, graphs, diagrams, Gantt charts, etc. within GitLab! Check out the examples in the GitLab docs on how to use Mermaid. You can also use the live mermaid editor to check your work!


If you install MobileDay (Free) on your phone and give it access to your Google Calendar it can dial into conference calls for you. It is very good at detecting the number and password from the calendar invite.

One Tab

One Tab (Free) tames tabs into a list which can be sorted and exported.


Paste for macOS is a clipboard manager that stores everything you copy and optionally syncs across all your devices. It allows you to organize frequently copied data in pinboards, so that you do not need to copy the same data over and over, provides search, multiple paste and has nice visual user interface. It really increases your productivity.

Pomodoro Technique

The Pomodoro Technique is a simple time management process that can be used to boost productivity by dividing time into "work" and "break" intervals. In brief, each half-hour block of time is divided into a 25 minute work session followed by a 5 minute break session. Do this twice per hour until the day is done and marvel at how much you've finished.

Various Chrome extensions, Firefox add-ons, mobile apps, desktop apps, and even fancy physical alarm clocks are available to help you track your intervals, but you can use almost any timer you have on hand—even and especially that cute little tomato timer in your kitchen.

Prototyping in the browser

Sometimes you only need to capture small textual or visual changes in a web page as part of a bug report or a feature proposal. You can use development tools that are usually built-in in most browsers which allow you to select and edit page element attributes as well as move around page elements like buttons or links.

You can also make the entire web page editable, using the designMode attribute, by typing document.designMode="on"; in the development tools console or creating a bookmarklet by dragging the button below to your Bookmarks Bar.

Edit page

RSS Feed Reader

If you would like to receive daily notifications on newly opened issues, the chrome extension RSS Feed Reader is an excellent tool for accomplishing this task. After installing the extension, access the project page you are interested in following, under the project issues click on the "Subscribe to RSS feed" button which you can find in the top right corner of the page.

Screen capture / screenshots

On a mac, there are a few screen shot key shortcuts that can be very helpful:

In the case of command + shift + 3 and command + shift + 4, if you also hold your control key (so, command + shift + contol + 3), your screen shot will be in your clipboard which means you can paste it with command + v in a lot of applications.

If you have a screen shot in your clipboard, you can open the Preview and then create an image from the clipboard using the File -> New from clipboard.

Minimizing Google Chrome's resource usage

To minimize Google Chrome browser's memory and CPU usage, you can enable Tab Freeze which suspends tabs after five minutes of inactivity.

Searching GitLab Like a pro

On this page we give you many tips on how to search GitLab documentation, issues, merge requests and many more. There are Advanced Solutions like using the site: technique and creating search engine shortcuts in your browser.

SessionBox (Chrome, Firefox 51+, Opera)

SessionBox is a browser extension that helps you deal with multiple sessions. It binds a particular session to a tab. This is particularly useful for testing with different users in the same browser.


ShareX (Free / Windows only) is the ultimate screen capture toolbox for Windows, which includes many different options to record your screen and automate your workflow with automatic uploading, resizing and much more.

Shell aliases

Use command aliases in your shell to speed up your workflow. Take a look at these aliases and others in Sid's dotfiles project. For example, by adding the following to your .bash_profile or equivalent for your shell, you can just type s to checkout the master branch of this website, pull the latest changes, and open the repository in Sublime Text:

alias gco='git checkout'
alias gl='git pull --prune'
alias gca='git commit -a'
alias gp='git push origin HEAD'
alias www='cd ~/Dropbox/Repos/www-gitlab-com/source'
alias s='www;subl .;gco master;gl'

After editing, you can just type gca to commit all of your changes, followed by gp to push them to the remote branch.


$4.99 tool for macOS that lets you set a hotkey (e.g. fn) to mute your microphone ("push-to-talk" or "push-to-mute"). Never again will you have to switch your window focus to Google Hangouts or Zoom to speak or mute. The icon will show the current state of your mic input (x means muted). With a right click (or your configured hotkey) you can switch from push to talk to push to mute. Don't forget to unblock your mic in Zoom/Google Hangouts immediately after joining. Be warned that page up with fn+down arrow will activate it. Use space for page down instead of fn+up arrow. Warning: Check your headset compatility before purchase. Many usb headsets are unmutable.

Shush alternative for Linux

If you use Linux (e.g. Arch, Ubuntu or Fedora) you can create a system-wide keyboard shortcut to mute/unmute your mic. Please note that it only works for Linux distributions which use ALSA for sounds (most popular Linux distributions use ALSA). All you need to do is go to your desktop environment's Keyboard Settings and create a custom shortcut with the command amixer set Capture toggle and assign a key combination of your choice (e.g. Pause Break key). Once this is done, you can mute/unmute your mic using the assigned keyboard shortcut while you're in any application. Refer to this original answer on Askubuntu to learn more.


Simplenote is a free, open source note taking app which is cross platform, and syncs across all devices.


Do Not Disturb Hours

Slack now supports "Do Not Disturb Hours" so you won't be pinged in the middle of the night or while you are dealing with family matters. You can set your "Do Not Disturb Hours" by clicking on the bell at the top of the left pane in the Slack app. You also have the option of snoozing for 20 minutes or up to 24 hours. Note: Do Not Disturb can be overridden in the event of an emergency. See Slack documentation for more information.

Browse Channels

You can browse all available GitLab channels by clicking on "Channels" on the left pane in the Slack app. From there, you can see every channel, who created it, and how many members there are. Feel free to ask for recommendations from other team members for their favorite channels. Every team member is automatically added to company-announcements, where announcements are made and information for the entire company is shared. There are also a few default channels that every new hire is added to, such as: #celebrations, #new_labbers, #questions, #random, & #thanks; these channels are optional, but we think they are a great place for team members to interact and get to know each other.

Channels Access

In addition to GitLab team-members, designated groups such as the Core Team members and advisors outside of GitLab may be granted access to our Slack channels. However, internal channels that start with #a_ will be restricted to GitLab team-members who have been invited to those channels only. Any confidential conversations regarding our customers should be restricted only to #a_ channels. The rationale for internal channels is that it could be a breach of many of our contracts for third parties to have knowledge of GitLab customers. This is especially the case when third parties could be customers' competitors.

Slack Status

Slack allows you to set your status for your fellow GitLab team members by using your choice of standard messages such as "Away" and "Lunch" or a custom message and your choice of emoji. If you're off work for a holiday or vacation you can update your status by using PTO Ninja. This is a great way to let your team know whether you are available.

To have your Slack status automatically set to "In a meeting" based on your Google Calendar, add the Google Calendar app to your Slack account.


There are multiple ways to invite people into a Slack channel. The easiest way is to use the invite command by typing /invite @jenny. Avoid inviting people through a mention message. E.g. @jenny as it can create a message that distracts others.

Quick Switcher

Quick Switcher is a great feature to know about if you want to get productive with Slack. As the name suggests, it allows you to switch between channels and direct messages quickly. Invoke it with Cmd + k on Mac or Ctrl + k on Windows or Linux and start typing the name of the person to chat with or the channel you are interested in. You can then navigate the suggestions with and keys and hit enter to select.

Hide conversations with no unread activity

With lots of channels and direct messages, Slack can become overwhelming. To help keep track of activity on Slack, and to simplify the interface, consider hiding conversations with no unread activity.

Minimize Visual Distractions

Animated images and emoji can add meaning to conversation, but they can also be distracting. If you would prefer to have static images and emoji, disable the animation. For details, see Manage animated images and emoji.

Sort channels and direct messages with stars

To sort direct messages and channels, open the direct message or channel and click on the star icon. For details, see Star channel or direct message.

Slack has a built-in feature to Unfurl links included in messages posted to Slack. This will post a preview of the link alongside the message. You can remove the unfurled preview of the link by hitting the "x" in the top-left of the preview. This will then prompt you to confirm removing the attachment, which you can hit "Yes, remove".

Unfurl attachment removal

In the confirmation prompt you may also see a checkbox to "Disable future attachments from this website". As a workspace admin if you select the disable option this will blacklist the link/domain across the workspace and will impact every user. If you do happen to blacklist a link or a domain, they can be modified in the Workspace admin portal under Settings & Permissions.

Change Group DMs to Private Channels

If you are in a group direct message with multiple people, you can change it to a private channel, in order to avoid extra pings and allow additional team members to be added or removed to the channel.

Custom theme

The interface colors can be customized in Slack. This is especially useful when using multiple slack accounts, setting up different themes makes it really easy to differentiate them instantly. The theme selector is available under Preferences > Themes.

In order to setup a Gitlab theme, send yourself the following message: #643685,#634489,#FC6D26,#ffffff,#71558f,#ffffff,#FCA326,#e24329, and press the Switch sidebar theme button.

Slack Apps

Many applications can integrate with Slack. Recommended apps:

  1. Google Calendar - By integrating your calendar with Slack, you'll get notifications about meetings directly in Slack. Most important - 1 minute before a meeting begins, you'll receive a message with the meeting info, including a link to join meetings that are occurring in Zoom. You can set up the integration by typing /gcal into any message field.

Slack Reminders

Slack reminders help you to remember things without having to keep it all in your head. You can set reminders for yourself or other team members. You will receive a notification at the specified time.

You can use natural language with the /remind command. Type /remind help to get some tips. For full information on Slack reminders see the Slack help.

Status Clock (UTC)

Status Clock is a free, easy tool to place a second clock into the macOS Menu Bar, e.g. for showing the UTC time. Perfect for anyone doing sysadmin work or tasks that require referencing UTC (or any secondary timezone).

Sublime text

Putting the following in Preferences.sublime-settings - User will among other things ensure that if you open the www-gitlab-com website you're not opening the output files by accident:

    "font_size": 18,
    "spell_check": true,
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "folder_exclude_patterns": ["public"]

Teampaper Snap

Teampaper Snap (Free / Mac only) is the ultimate screen capture tool for Mac to voice your thoughts on anything you can see on a screen.

Tool Specific Tips


TripMode ($7.99) lets you control which apps can use the internet. Especially useful when you're working on a cellular/metered connection.


Quitter (Free) will switch off apps for you after some period of inactivity. Consider using this to hide Slack after a while to reduce your urge to check new messages all the time.

Visual help to differentiate between GitLab servers

If you are working on multiple GitLab instances and want to have a visual differentiation, you can change the default Navigation theme to a different color.


If people want to use Webex instead of Zoom consider installing their native app. Before attending a Webex meeting you can test to ensure your Webex is setup correctly by joining a test meeting. With the in-browser plugin the screen sharing sometimes doesn't work.


Whereby allows you to instantly create a free video chat room for up to 4 participants with no login and no installation. It also offers a free reliable mobile video conference app.

Wi-Fi usage

When using unsecured Wi-Fi, consider a personal VPN. We don't have a corporate VPN but consider purchasing one if you travel for GitLab or use unknown networks often. Two popular choices include ExpressVPN and NordVPN, with the former having a slight edge in an internal poll of the Security Team.

Remember that if your job has restrictions based upon geolocation (for example supporting customers with specific data restrictions and country-based access), a personal VPN may not be the best choice as often the VPN vendor routes traffic through other countries. If this restriction applies to you, consider tethering. Tethering is when you set up your mobile phone as a hotspot and connect your laptop up to it via Wi-Fi, avoiding the unsecured Wi-Fi network. There is more information here on the subject, and as long as your data plan supports it, you should be good to go. Double check before international travel, as it may be supported but have hidden costs.

When connecting to a network with a captive portal, most websites will not load as modern sites use HTTPS, and captive portals interrupt that process. Your device will try and compensate for this, but it can be tough to manage manually. If you have trouble, try connecting to first, which is intentionally only HTTP and will load the captive portal.

Window Resizing/Arrangement Tools


Rectangle is a free, open source windows move and resize in macOS using keyboard shortcuts or snap areas (based on the no longer supported Spectacle).


Divvy allows you to quickly and efficiently “divvy up” your screen into exact portions and save arrangements to shortcuts and keybinds.


WorkFrom is a crowd-sourced resource of coffee shops and other such places that are remote-work friendly.


To set up a Zoom meeting, sign up for your default Zoom Pro account in Okta, and share the link for your "personal meeting room" with your participants. Please make sure that you customize your Personal link to be gitlab.firstnamelastname under profile > personal link.

Tip: Zoom can be minimized during a meeting (cmd-m on macOS) to a small window staying on top of all applications. This tip is very handy when using a small screen: it allows to see the participant(s) and use other applications at the same time without worrying about the screen layout.

Adding your title to your name

Since Zoom doesn't display the job title field during meetings, it is recommended that you add your job title as part of your last name in the last name field. For example, if your name is Art VanDelay and your role is Engineer, you can write first name: Art and last name: VanDelay - Engineer.

Your personal link is a great way to provide a consistent, easy-to-read-and-remember meeting room for colleagues and customers. However, there are some drawbacks to reusing the same meeting, such as participants joining an ongoing meeting when two are scheduled back to back. In some cases it may be better to use a unique meeting link.

Here are some good use cases for the personal link:

Here are some good use cases for a unique link:

Use your best judgement on when to use each type of link. Not all situations will fit cleanly into any of the given scenarios, and your needs may vary.

Recording in Zoom

In order to be able to record your Zoom meetings you must first enable recordings in your Zoom profile. You can access this page at You need to be signed in to have the ability to record.

To auto-record meetings set up cloud recording. You can also configure Zoom to save to the cloud automatically. Go to "My Meeting Settings" and find the "Recording" section, then click on "Cloud Recording". Setting the topic of the meeting is important, otherwise all meetings will be recorded with a generic name. Once recording is complete, your videos will not appear in the “Recordings” section of your Zoom account. Your recordings will automatically be saved to a folder on Google Drive under "GitLab Videos".

Consider setting your default recording view to "Gallery view". To do this: 1. Login to 1. Click the Settings tab on the left side bar, then the Recording tab on the top horizontal options. 1. Make sure you have Record gallery view with shared screen selected 1. Unselect Record active speaker with shared screen and Record active speaker, gallery view and shared screen separately. Remember to save.

You can also read through General information on recording on the zoom support here

Our Zoom account has End-to-End Encryption enabled. This may impact performance, so if you run into any issues, let People Ops know.

If there is a meeting active, a new meeting cannot start until the host ends the meeting or all participants leave. The People Ops or IT Ops teams can force end a meeting can force end a meeting by logging into Zoom with the credentials in 1Password, going to My Meetings, finding the meeting they would like to end, then selecting "End." This will allow the next meeting to begin.

How to identify the meeting host with the permission to record

You can use one of the below methods to find this information after joining the meeting.

  1. Via participants sidebar.
    1. Navigate to the participants icon on the bottom of the window.
    2. You will be presented with the list of participants on the right panel of the window.
    3. The host will be listed in parentheses at the end of their name. (A resize of the participants window may be needed).
  2. Via meeting info pop-up.
    1. Navigate to the upper left corner, where you will be presented with an i icon.
    2. Select the icon to locate the meeting host who will have the ability to record the call.

How to share a presentation in Zoom

At some point, you may need to give a slide presentation using Zoom. Ideally, you should be able to see your speaker notes while participants see your slide show. This is fairly easy to do with two monitors by using presenter view and sharing the monitor which contains the slides. If you have only one monitor, it is still possible using the following steps:

  1. Open your slide deck in Google Slides. Make sure to close any other tabs you may have open. Participants will be able to see these tabs when it comes time to present.
  2. Select Presenter view. This will make your presentation take up the entire window for participants, but not your entire monitor. If you want to switch to this view from the standard Present view you can simply press the a key.
  3. Hover near the bottom of your presentation and you will see a pop up menu. From this menu, select the Toggle Full Screen option, third button from the right, next to settings. This will end full screen mode without leaving the presenter view.
  4. To see your speaker notes, hover at the bottom of your presentation window again and select Presenter View from the menu.
  5. You will now have a presenter view pop-up window which allows you to see your speaker notes as well as advance the slides.
  6. In another browser window enter the Zoom meeting room.
  7. Once in the meeting, select Share Screen from the options at the bottom of the screen.
  8. Do not share your desktop. From the options, select the browser window containing your Google Slides deck. This will allow you to share just the browser window containing your slides.
  9. If you would also like to see the Zoom chat, hover your cursor at the top of the screen containing your Zoom meeting. A menu will appear, from this menu select More > Chat.
  10. Position the windows any way you need to see the presentation and speaker notes.
  11. Make sure to change slides using the presenter view pop up window. This will advance the presentation for your viewers as well as advancing your speaker notes.

If you would like to practice presenting, you can do so using your own private Zoom room.

  1. Open the Zoom app and click Start with video.
  2. Click Record.
  3. Repeat the steps above.
  4. Stop and watch the recording. You'll see what the participants would see.

How to test audio and video in Zoom

Before using Zoom for the first time, it is recommended to test your audio as well as test your video. Zoom even has its own test that you can utilize to ensure everything is set up correctly.

Set up a shortcut for muting in Zoom

Sometimes you need a hot key to mute/unmute, even when Zoom is not the selected window. Follow these steps to set it up:

  1. Navigate to Zoom > Preferences > Keyboard Shortcuts
  2. Tick the box for Enable Global Shortcut to Mute/Unmute My Audio.
  3. You can map it to any keyboard shortcut such as F1 (Cmd 1).

Enabling the "Waiting Room" for your Personal Meeting Room

For GitLabbers that are interviewing candidates, it's a good practice to enable the Waiting Room feature for your personal meeting room to prevent others from joining (in the event of back-to-back meetings, for example). There are a few steps to get this enabled for personal meetings:

  1. Open up "Zoom Settings" in the app, then click the link "Advanced zoom settings" which will open in the browser.
  2. Find the option "waiting room" under "In Meeting (Advanced)" and enable it for all participates. Note: This will enable the waiting room but NOT for the personal meeting
  3. Navigate to the sidebar link "Meetings" and select the top tab "Personal Meeting Room".
  4. Click "Edit this meeting" and check the "Waiting Room" box.

Now all meetings that use your Personal Meeting ID (PMI) will require you to "admit" anyone who joins the meeting.

Zoom on Linux using FOSS (Firejail)

While Zoom works on Linux, the application is not free software. As a result, some might be wary of running this directly on their computer. One way of running Zoom without worrying about what it does is to use firejail.

To use Zoom with Firejail, first install Zoom or download the archive. Zoom offers standalone binaries that you can download should your distribution not have a package for Zoom. Once installed, install firejail.

Once both firejail and Zoom are installed we need two things:

  1. A firejail profile for Zoom
  2. A directory we can use as the home directory for Zoom, preventing it from messing with your home directory

You can use the following firejail profile and store it in ~/.config/firejail/zoom.profile:

noblacklist ~/.config/zoomus.conf

include /etc/firejail/zoom.local
include /etc/firejail/
include /etc/firejail/
include /etc/firejail/

whitelist ~/.zoom

caps.drop all
protocol unix,inet,inet6,netlink


Next we need a home directory for Zoom. For this example we'll use /opt/zoom/home:

sudo mkdir -p /opt/zoom/home
sudo chown -R $USER /opt/zoom

With this in place we can start Zoom using firejail as follows:

firejail --quiet --profile=~/.config/firejail/zoom.profile --private=/opt/zoom/home /path/to/zoom/ZoomLauncher

Note that you must start the ZoomLauncher binary and not the shell script wrapper called zoom.

Using a phone to connect to audio

Especially when talking with customers, it's good to make a good impression! One way is to use a phone to dial in, which can increase reliability of your audio connection and reduce latency. In general, a landline has the lowest latency, a mobile phone is next, and internet audio is variable. Here are some tips for quick and effective telephone connections to Zoom meetings.

Virtual background

Using a green screen, you can create virtual backgrounds so that you don't have to worry about what's behind you while on a video call and you can use a nice background.

  1. In your Zoom In Meeting (Advanced) settings, enable Virtual background
  2. In your Zoom application on your computer, open settings and click on the Virtual Background setting
  3. Select a background you want to use, or click the [+] to add a picture from your computer.
  4. A video on how to set up a Virtual Background with Zoom is available here

External webcams and DSLRs

It is possible to achieve high quality video output with a professional bokeh effect by using a DSLR or external webcam. External webcams are generally a good alternative to your built in Macbook webcam as they allow for more control such as advanced color and light correction including white balance and contrast adjustments. External webcams also allow you to crop your live image concentrating on a certain part of your video i.e. your face.

  1. An up to date list of Mac compatible external webcams can be found here.
  2. Setting up a DSLR to work as a webcam with your Mac can be quite complicated and will generally require additional hardware such as adapters. A simple video tutorial of how to set up your DSLR as a webcam with your Mac can be found here.

Considerations when presenting on Zoom

Maintaining audience engagement

Check in with your Audience: There are multiple stages throughout your Zoom presentation or video conference which are prime points to engage the audience with a simple check-in.

Involve the remote audience when presenting

There are a number of simple methods presenters can use to involve the participants throughout your presentation.

Keeping a Remote Audience on Track

Remember to Breathe

Harness the power of pausing to help people keep up and absorb what you’re sharing is even more important in a removed presenting environment. That’s because, without an audience in front of us, we tend to speed up and truncate our pauses even more. So be extra mindful of this and of your audience. At the end of the day, listeners lost means a missed opportunity to get your message across.

Make the participant experience an enjoyable one

Video calling via Zoom and other technologies is incredibly useful and convenient but can make presentations dull and boring for both the audience and the presenter. For this reason, it’s even more important to find ways to build rapport and to have fun and inject some humor into the meeting (if possible). It’s important that you give yourself, and the audience, the permission to have some banter and moments of ‘lightness’ during the presentation. Don’t take the entire experience too seriously or you’ll bleed the presentation dry of any interactivity.

Therefore it is good to allow your natural personality to shine through. This will refresh the presentation with an air of genuine spirit, much needed when your audience is remote and cannot interact with you in person. Remember, if you sound like you’re enjoying hosting the meeting, the audience is more likely to enjoy listening to it.

Zoom and silencing the Chrome "Open Zoom Meetings" popup

Video calling with Zoom and Chrome often has the annoying popup before every call where you have to click the popup "Open Zoom Meetings". There used to be a checkbox in Chrome that you could select in order to tell Chrome to Always open thse types of links in the assocated app - Zoom. The checkbox option was removed in Chrome in September 2019 according to this Chrome support thread, this meant that every time you started a Zoom meeting from Chrome, you would have to click the popup and 'Open Zoom Meetings' a second time for the meeting to actually start the meeting.

In the above Chrome support thread, the following macOS solution is listed:

For macOS:

Open Terminal and enter:

defaults write ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true

Quit and restart Chrome to see the checkbox

Once you do this, when you start your next Zoom meeting, just check the box to always trust Zoom and you'll never see it again.

Google Calendar Add-on for Zoom

To make it easy to set up Zoom sessions for your calendar events, enable the Google Calendar add-on for Zoom. This adds a dropdown option right inside of Google Calendar to add Zoom to the event. When users view the event, they will see specially formatted Zoom details that includes the link to the meeting, and a clickable phone number if they are dialing in. The add-on will also follow your preferences in your Zoom account for using your personal link or a unique link.