Editor Extensions: Multi-Platform Group

We own and maintain code editor extensions for JetBrains, Visual Studio, Neovim & Eclipse IDEs, as well as contributing to the Language Server bringing GitLab’s core features and AI capabilities directly into developer workflows.

πŸš€ Vision

We bring GitLab’s core features and AI capabilities directly into developer workflows, unlocking productivity by making GitLab accessible in the tools developers use every day.

Note: Along with the Editor Extensions: VS Code team, we are responsible for all aspects of the product categories that fall under the Editor Extensions group of the AI-Powered stage of the DevOps lifecycle.


πŸ‘¨β€πŸ’» Team Members

Name Role
Amr ElhusseinyAmr Elhusseiny Engineering Manager
Andrei ZubovAndrei Zubov Senior Frontend Engineer, Create:Editor Extensions
Anna SpringfieldAnna Springfield Senior Backend Engineer, Create:Code Creation
Bohdan ParkhomchukBohdan Parkhomchuk Backend Engineer, Create:Editor Extensions
Erran CareyErran Carey Staff Fullstack Engineer, AI Powered:Editor Extensions
Jean-Gabriel DoyonJean-Gabriel Doyon Backend Engineer
Karl JamoralinKarl Jamoralin Backend Engineer
Laura IonelLaura Ionel Senior Backend Engineer
Tomas VikTomas Vik Staff Fullstack Engineer, Create:Editor Extensions

🀝 Stable counterparts

Below are our stable counterparts

Name Role
Dasha AdushkinaDasha Adushkina Senior Product Manager
Meg CorrenMeg Corren Product Manager
Sam ReissSam Reiss Senior Product Designer
Matthew PetersenMatthew Petersen Senior Product Analyst

πŸ’¬ Where to find us

Slack

Shared Calendar

Editor Extensions Shared Calendar (Calendar ID: c_673d889354d021f7fa9f20a003b5867185a9bf12989b5eaacbc8b537cc9ef27c@group.calendar.google.com)


πŸ’» Scope

Our team owns the following products

  1. GitLab Extension for JetBrains
    1. Repo
    2. Docs
    3. Backlog
    4. Slack Channel: #f_jetbrains_plugin
  2. GitLab Extension for Visual Studio
    1. Repo
    2. Docs
    3. Backlog
    4. Slack Channel: #f_visual_studio_extension
  3. GitLab Extension for Eclipse
    1. Repo
    2. Docs
    3. Backlog
    4. Slack Channel: #f_eclipse_plugin
  4. GitLab Extension for Neovim
    1. Repo
    2. Docs
    3. Backlog
    4. Slack Channel: #f_neovim_plugin

As well as co-own with the Editor Extensions: VS Code group

  1. GitLab Language Server
    1. Repo
    2. Backlog
    3. Slack Channel: #f_language_server

πŸ“š How we work

Something about how we take this as an iterative approach

Issues’ state

We use the issue Status field to indicate state, following the Product Development Flow

Expand for more details

. To keep things simple, we focus on the main states below and optionally use others when appropriate.

  • New β†’ Not yet prioritized or refined.

  • Planning breakdown β†’ Needs team attention soon (within ~1–2 months); gather scope, risks/deps, acceptance criteria.

  • Ready for development β†’ Immediate priority; clear scope; should be picked up next and ideally completed within ~2 weeks.

  • In dev β†’ Assigned DRI(s), milestone set, work in progress.

  • In review β†’ Implementation complete; MR opened and under review/verification.

  • Blocked β†’ Cannot proceed due to a dependency or external constraint; comment the blocker and next check-in date.

  • Closed β†’ Done (or closed as duplicate/won’t fix) with outcome noted.

Note: We chose Planning breakdown & Ready for development as these statues exist on both Issues and Tasks, letting us build one unified set of boards and embedded tables with a single status filter easily.

Issues Boards

Weekly Issues’ refinement

  • Purpose: Keep our backlog focused and up-to-date
    • We re-prioritize and adapt to the changing requirements
    • Create clarity about what customer support issues we need to implement
    • Give everyone a chance to surface and champion issues (new/urgent bugs, tech improvements or debt)
  • Format: 3 stage process described in the “Flow” section below
  • Cadence: Every week
  • Output: Up-to-date Rolling Backlog + possible weekly updates to the milestone planning issue
Expand for more details

Rolling Backlog Wiki Page

This rolling backlog page is the output of this refinement process, it serves as a visible, prioritized, and team-reviewed top-of-backlog list for every scope we own (could be the next 1-2 months of work).

Note: We also take into account most thumbed up issues to make sure we also capture community feedback.


Flow

  1. EM & PM async weekly pre-pass: prepare for the next 2 steps

    1. Some issues sources to consider
    2. Add the label workflow::scheduling to the issues to discuss in step #3 (EM + PM Sync call)
    3. Update issues as needed to make sure Rolling Backlog is up-to-date.
  2. Team async bi-weekly review (timebox ~1 hour):

    • EM will create an issue to trigger this review and assign all engineers, example issue, please unassign yourself when you finish review
    • Occurs every 2 weeks, to avoid taking too much of the team’s focus each week.
    • Goals:
      • Ensure everyone on the team weighs in on the priorities.
      • Advance tech improvements or tech debt issues.
      • Flag issues that should be given higher importance.
      • Identify issues that are no longer needed or should be de-prioritized.
    • How to Participate:
      1. Review the current priorities in Rolling Backlog
      2. Weigh in: Add/Change the following as needed (including for new issues you want to push):
        1. Status: Planning breakdown: Should be on our radar, within the next 2-3 milestones or so
        2. Status: Ready for development: Ideally should done this milestone
        3. Label: workflow::schedulingt: Immediate priority, should be picked up next (or at least should be discussed this week)
        4. ~“workflow::scheduling”
      3. Comment & tag EM + PM if you change any of the above with reasoning
    • Notes:
      1. Don’t spend time deep investigating any issue at this point, just high level overview of the priorities is enough
      2. Comment in the relevant issue itself or in the rolling backlog issue if your comment is more relevant there
      3. Link to references to specific GitLab resources to improve discoverability.
  3. EM + PM weekly sync call: Focus on the label workflow::scheduling, read team comments, confirm ranking, make trade-offs, and pick target deliverables for the next 1-2 weeks.

    • Meeting should be scheduled on the shared team calendar and recorded, we will also use zoom transcript so team can have transparency on the reasoning and arguments behind changing an issue priority or order and add it to the planning issue.
    • Once every month use this call will be used to create a milestone planning issue that can be subject to change with the next refinement)
    • EM is responsible for assigning the agreed on & updated deliverables
    • Output: Update the milestone planning issue weekly + EM to assign updated priority issues
      • Once a month, before the start of the milestone, the discussion will span a bigger number of tickets in preparation for creating a new milestone planning issue

How to Participate (for non-team members)

If you want to bring an issue to the attention of the team, please create an issue, if no issue exist yet, then reach out on #g_editor-extensions

Monthly Planning

  • Purpose: Define and scope what we’ll deliver in the current milestone
    • Plan monthly to shape product priorities, but revisit weekly to stay adaptive to fast-changing AI requirements, quality focus, and urgent user needs
  • Format: 2 stage process described in the “Flow” section below
  • Cadence: Every month + possible weekly updates
  • Output:
Expand for more details

Milestone Planning Issues

We use Milestone Planning Issues to define our goals for the current/upcoming milestone. The PM and EM are responsible for aligning on the goals. The planning issues are created automatically every month.


Flow

  1. Fill Initial milestone planning issue
    • PM drives the goals of the milestone, in alignment with EM
    • All the output of the previous issues refinement is taken into consideration
    • Should be done before the milestone starts
  2. Weekly updates after the weekly issues refinement
    • EM + PM update the milestone planning issue, if needed, reflecting latest changes, that could include for example:
      • Urgent bugs that came up
      • Needing to adopt another AI engineering team work into the IDEs
      • Flagged tech debt
    • EM aligns with the team to assign Deliverable & Stretch labels and ensure issues status, weight & milestone are assigned reflecting the latest priorities
      • Possibly in weekly 1:1 or async

Difference between Milestone Planning Issue & Rolling Backlog Wiki Page

  • Rolling backlog: a list of all prioritized issues, providing visibility into the top of our backlog, which can span several months of work.
  • Milestone planning issue: a subset from the rolling backlog backlog, the issues we prioritized from the backlog to implement in the current milestone.

Team sync meetings

We have a sync meeting once per week. This is collaborative meeting between this team and the Editor Extensions: VS Code team

  • Recordings are uploaded to the Editor Extensions Category playlist on GitLab Unfiltered.
  • The timing of the call alternate every week between APAC/AMER & EMEA/AMER so everyone in both team in different timezones can join sync conveniently at least every other call, and everyone can contribute async as well every week
  • Weekly Sync Meeting Agenda, agenda is open, everyone in the team is invited to bring relevant topics to align on

Weekly async updates

Team members post weekly async updates on the in progress issues using the Dev Check-in (editor-extensions) comment template

Issues’ labels

Some of the labels we use to track our work across different projects

Label Description
Editor Extensions::JetBrains JetBrains IDE plugin features, and maintenance.
Editor Extensions::Visual Studio Visual Studio IDE plugin features, and maintenance.
Editor Extensions::Neovim Neovim IDE plugin features, and maintenance.
Editor Extensions::Eclipse Eclipse IDE plugin features, and maintenance.
Editor Extensions::Language Server Shared LSP features, maintenance, and IDE-parity efforts.
Editor Extensions::All Cross-cutting items impacting multiple editor extensions.
Deliverable Committed items for the milestone / must-ship work.

Issues’ weight

We use three weights to give a rough estimate of the issue’s complexity. The weight is made out of two parts:

  • 1 - day or two of effort
  • 2 - week of effort
  • 3 - week and a half of effort

Notes:

  1. Everything with a base weight above 3 should be a spike that will result in one or more issues with estimated weight.
  2. These are estimates for someone familiar with the codebase/system, you can add extra weight 1 or 2 to the base weight if you are new to the team/codebase/system.
  3. Weights are assigned in planning flow, step #2