Support Engineer Bootcamp - Thiago Presa

We need to keep iterating on this checklist so please submit MR's for any improvements that you can think of. The file is located in source/handbook/support/onboarding/checklist/index.html.md in the www-gitlab-com project. If an item does not start with a role or name of someone else, it's yours to do.

Goal of this entire checklist: Set a clear path for Support Engineer training

Stage 0: Complete general onboarding to have all necessary accounts and permissions

  • Done with Stage 0

Typically completed within first week

  1. General expectations: it is expected that you will start to tackle Stages 0, 1, 2, and 3 as early as your first week, but you are not expected to complete all items for some number of weeks. We believe that you often learn best and fastest by diving into (relatively easy) tickets, and learning by doing. However, this has to be balanced with making time to learn some of the tougher topics. The expectation is therefore that you are sufficiently advanced in your onboarding by the end of your first week, that you can answer 2-5 "simple" tickets. Over the following weeks, your manager will set higher targets for the number and difficulty of tickets to be tackled, but you should always have about 2-3 hrs per day to spend on working through this bootcamp. Some days it will be less, some days it will be more, depending on ticket load and how deep "in the zone" you are in either the bootcamp or the tickets you are responding to; but an average of 2-3 hrs per day should allow you to complete everything through to the end of Stage 6 within about four weeks.
  2. General Onboarding Checklist: this should have been created for you on the People Ops issue tracker when you were hired.
    1. Finish every item on that list starting with New team member: until you are waiting for someone to answer a question or do something before you can continue that list.
    2. Start with Stage 1 here, but also with the first steps in Stage 2 and Stage 3.
    3. Check back daily on what was blocking you on your General Onboarding Checklist until that list is completely done, then focus on this one.

Stage 1: Become familiar with git and GitLab basics

  • Done with Stage 1

Typically started in first week, completed by end of second week

If you are already comfortable with using Git and GitLab and you will be able to retain a good amount of information by just reading and watching through, that is okay. But if you see a topic that is completely new to you, stop the video and try it out for yourself before continuing.

  1. Let your manager know you're ready to be assigned a trainer.
  2. Just quickly check on your Zendesk account to make sure that is ready for you when you need it.
  3. Add a profile picture to your Zendesk account
  4. Let your manager know if for some reason you were not able to create an account on Zendesk.
  5. Under your profile on Zendesk, it should read Agent. If it reads Light Agent, inform your manager.
  6. Get familiar with our support workflows
  7. Sentry (used for 500 errors)
    1. Log into Sentry and choose "Sign in with GitLab".
    2. View the teams and select "Join existing team". Then Request access to all the teams.

Cover these topics on the GitLab University:

  1. Under the topic of Git
  2. About Version Control
  3. Try Git
  4. Under the topic of GitLab Basics
  5. All the GitLab Basics that you don't feel comfortable with. If you get stuck, see the linked videos under GLB in GitLab University
  6. GitLab Flow
  7. Take a look at how the different GitLab versions compare
  8. Any of these that you don't feel comfortable with in the user training we use for our customers.
  9. env_setup.md
  10. feature_branching.md
  11. explore_gitlab.md
  12. stash.md
  13. git_log.md
  14. For the rest of the topics in user training, just do a quick read over the file names so you start remembering where to find them.
  15. Get familiar with the services GitLab offers
  16. The differences between CE and EE
  17. GitHost

Stage 2. Installation and Administration basics.

  • Done with Stage 2

Typically started in first week, completed by end of third week

Goals

  • Get your development machine set up.
  • Familiarize yourself with the codebase
  • Be prepared to reproduce issues that our users encounter.
  • Be comfortable with the different installation options of GitLab and configure LDAP.
  • Have an installation available for reproducing customer bug reports.
  1. Check back on your Zendesk account if you are not yet an Agent.
  2. Manager: Add team member to to the GitLab Support Google Calendar.

Set up your development machine

  1. Install the GDK
  2. Add OpenLDAP to your GDK installation.

Installations

You will keep one installation continually updated on Digital Ocean (managed through terraform), just like many of our clients. But you need to choose where you would like to test other installations. TODO: We need to list some benefits of each choice here.

  1. Manager: Add new team member to the dev-resources project.
  2. Use terraform to create a new test instance.
    1. Clone the dev-resources project.
    2. Read up on how to create a new instance.
    3. Create a new file and name it <your-full-name>.tf in a new branch. You can copy another team member's file and modify it or you can create your own from scratch. If you have any issues or questions ask in the #support channel.
    4. After you've created it, open up a merge request and if the tests pass then merge it.
  3. Set up your test environments
  4. Choose your preferred test environment between Local VM's or Digital Ocean and put it in a comment below.

Installation from source is not common but will give you a greater understanding of the components that we employ and how everything fits together.

  1. Perform each of the following Installation Methods on your preferred test environment you chose above:
  2. Install via Omnibus
  3. Populate with some test data: User account, Project, Issue
  4. Backup using our Backup rake task
  5. Install via Docker
  6. Restore backup to your Docker VM using our Restore rake task
  7. Version 7 from Source
  8. You can check this box but this one never stops as long as you are a Support Engineer for GitLab. Keep this installation up-to-date as patch and version releases become available, just like our customers would.
  9. Ask as many questions as you can think of on the #support chat channel

Stage 3. Customer Interaction through Zendesk

  • Done with Stage 3

Typically started in first week, and completed by the end of the fourth week

Goals

  • Have a good understanding of ticket flow through Zendesk and how to interact with our various channels
  • See some common issues that our customers are facing and how to resolve them.

Initial Zendesk training

  1. Complete Zendesk Agent training (allow 40 minutes for completion)
  2. Navigate to Zendesk university and register.
    1. You'll receive an email with information on accessing the Zendesk course
  3. Proceed to complete the "Agents: Agent Essentials" course
  4. Review additional Zendesk resources
  5. UI Overview
  6. Updating Tickets
  7. Working w/ Tickets Read: avoiding agent collision.

Learn about the Support process

Zendesk is our Support Centre and our main communication line with our customers. We communicate with customers through several other channels too, see the support handbook for the full list.

  1. Ask different people in your team if they would be willing to do a 45 minute pairing session with you as they answer tickets on Zendesk, thinking out loud as much as they can and answering your questions. Continue with the rest of the list while you wait for these to get scheduled. Create an issue in the support issue tracker (use the "Ticket Pairing" template) and make comments and notes in the issue about the tickets you solve and the things you learn.
  2. call with cindy
  3. call with harish
  4. call with lee
  5. call with abuerer
  6. call with ___
  7. Dive into our ZenDesk support process by reading how to handle tickets
  8. Learn about the hot queue.
  9. Start getting real world experience by handling real tickets, all the while gaining further experience with the Product.
  10. Proceed on to Regular email Support tickets
    1. Here you will find tickets from our GitLab EE Customers and GitLab CE Users
    2. Tickets here are extremely varied and often very technical
    3. You should be prepared for these tickets, given the knowledge gained from previous tiers and your training
  11. Check out your colleagues' responses
    1. Hop on to the #support-live-feed channel in Slack and see the tickets as they come in and are updated
    2. Read through about 20 old tickets that your colleagues have worked on and their responses

Learn about the Escalation process for Issues

Some tickets need specific knowledge or a deep understanding of a particular component and will need to be escalated to a Senior Support Engineer or Developer

  1. Read about creating issues and issue prioritazion
  2. Take a look at the GitLab.com Team page to find the resident experts in their fields

Learn about raising issues and fielding feature proposals

  1. Understand what's in the pipeline and proposed features at GitLab: Direction Page
  2. Practice searching issues and filtering using labels to find existing feature proposals and bugs
  3. If raising a new issue always provide a relevant label and a link to the relevant ticket in Zendesk
  4. Add customer labels for those issues relevant to our subscribers
  5. Take a look at the existing issue templates to see what is expected
  6. Raise issues for bugs in a manner that would make the issue easily reproducible. A Developer or a contributor may work on your issue.
  7. Schedule a 45 minute call with your trainer where you share your screen with them while you answer tickets on Zendesk, they give you feedback and answer your questions. The goal with this call is for your trainer to pass on tactical knowledge about the ticket handling process. Repeat this step a few times if that seems useful.

Congratulations. You now have your Zendesk Wings!

From now on you can spend most of your work time answering tickets on Zendesk, try to set aside 2 hours per day to make it through Stage 4-6 of this list. Never hesitate to ask as many questions as you can think of on the #support chat channel

Stage 4. Customer Calls

  • Done with Stage 4

Typically start this in week 2 or 3, complete by end of week 4.

Goal Gain experience in scheduling and participating in calls with customers.

Look at the GitLab Support Google Calendar to find customer calls you can listen in on. Contact the person leading the call to check if it is okay for you to jump in on the call, and if they could stay on with you for a few minutes after the call, for you to ask them a few questions about things you didn't understand, and them to ask you a few questions to make sure you understood the items they want you to take away.

  1. Manager: make sure that the new team member has a "Pro" account within the GitLab team account on Zoom.us.
  2. Start arranging to pair on calls with other Support Engineers. Aim to cover two of each type of call. Comment on this issue with the type of call you were in, who it was with, and the link to the relevant ticket (if one exists)
    1. Learn about Cisco WebEx
    2. Information gathering calls and diagnosis calls
    3. It's good to find out how new and prospective customers are going to be using the product and how they will set up their infrastructure
    4. When email isn't enough we may need to hop on a call and do some debugging along side the customer
    5. These paired calls are a great learning experience
    6. call with dwalker
    7. call with abuerer
    8. call with dblessing
  3. Reverse Shadowing (Lead calls with a GitLab Support Engineer giving you feedback and support)
    1. call with ___
    2. call with ___
    3. call with ___
    4. call with ___

Stage 5. Gathering Diagnostics

  • Done with Stage 5

Typically do this around the third week.

Goal Understand the gathering of diagnostics for GitLab instances

  1. Learn about the GitLab checks that are available
    1. Environment Information and maintenance checks
    2. GitLab check
    3. Omnibus commands
      1. Status
      2. Starting and stopping services
      3. Starting a rails console
  2. Ping the Support Lead to provide you admin access to GitLab.com, so that you can resolve user issues there. Create an admin user account for this purpose.

Stage 6. On Call Duty

  • Done with Stage 6

Typically to be completed by the end of the first month.

Goal Aim to become a fully-fledged Support Engineer!

  1. Read about on-call duty, in the handbook. On that page, the Customer Emergency On-Call Rotation section applies to Support Engineers, not the Production Team section.
  2. Schedule time with a Senior Support Engineer, to have them show you how to respond to Customer Emergencies.
  3. Ping the Support Lead to add you to PagerDuty, and familiarize yourself with the interface and the functionality.
  4. Sign up on PagerDuty with the link that will be emailed to you, and install the app on your phone.

Stage 7. Optional Advanced GitLab Topics

Discuss with your training manager if you should stop here and close your issue or continue. Also discuss which of the advanced topics should be followed. Do not just do all of them as they might not be relevant to what customers need right now and can be a significant time investment.

These are some of GitLab's more advanced features. You can make use of GitLab.com to understand the features from an end-user perspective and then use your own instance to understand setup and configuration of the feature from an Administrative perspective

Edited by Thiago Presa