Editor Extensions: Multi-Platform Group
π 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 Elhusseiny
|
Engineering Manager |
Andrei Zubov
|
Senior Frontend Engineer, Create:Editor Extensions |
Anna Springfield
|
Senior Backend Engineer, Create:Code Creation |
Bohdan Parkhomchuk
|
Backend Engineer, Create:Editor Extensions |
Erran Carey
|
Staff Fullstack Engineer, AI Powered:Editor Extensions |
Jean-Gabriel Doyon
|
Backend Engineer |
Karl Jamoralin
|
Backend Engineer |
Laura Ionel
|
Senior Backend Engineer |
Tomas Vik
|
Staff Fullstack Engineer, Create:Editor Extensions |
π€ Stable counterparts
Below are our stable counterparts
| Name | Role |
|---|---|
Dasha Adushkina
|
Senior Product Manager |
Meg Corren
|
Product Manager |
Sam Reiss
|
Senior Product Designer |
Matthew Petersen
|
Senior Product Analyst |
π¬ Where to find us
Slack
- Team:
- Projects
- Language Server: #f_language_server
- JetBrains extension: #f_jetbrains_plugin
- Visual Studio extension: #f_visual_studio_extension
- Eclipse extension: ##f_eclipse_plugin
- Neovim extension: #f_neovim_plugin
Shared Calendar
Editor Extensions Shared Calendar (Calendar ID: c_673d889354d021f7fa9f20a003b5867185a9bf12989b5eaacbc8b537cc9ef27c@group.calendar.google.com)
π» Scope
Our team owns the following products
- GitLab Extension for JetBrains
- Repo
- Docs
- Backlog
- Slack Channel: #f_jetbrains_plugin
- GitLab Extension for Visual Studio
- Repo
- Docs
- Backlog
- Slack Channel: #f_visual_studio_extension
- GitLab Extension for Eclipse
- Repo
- Docs
- Backlog
- Slack Channel: #f_eclipse_plugin
- GitLab Extension for Neovim
- Repo
- Docs
- Backlog
- Slack Channel: #f_neovim_plugin
As well as co-own with the Editor Extensions: VS Code group
- GitLab Language Server
- Repo
- Backlog
- 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
-
EM & PM async weekly pre-pass: prepare for the next 2 steps
- Some issues sources to consider
- Rolling Backlog
- Slack pings, team discussions
- Recent triage-reports issues, for example, Bugs Prioritization, Triage Report, Feature flags requiring attention
- Add the label workflow::scheduling to the issues to discuss in step #3 (EM + PM Sync call)
- Update issues as needed to make sure Rolling Backlog is up-to-date.
- Some issues sources to consider
-
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:
- Review the current priorities in Rolling Backlog
- Weigh in: Add/Change the following as needed (including for new issues you want to push):
- Status:
Planning breakdown: Should be on our radar, within the next 2-3 milestones or so - Status:
Ready for development: Ideally should done this milestone - Label: workflow::schedulingt: Immediate priority, should be picked up next (or at least should be discussed this week)
- ~“workflow::scheduling”
- Status:
- Comment & tag EM + PM if you change any of the above with reasoning
- Notes:
- Don’t spend time deep investigating any issue at this point, just high level overview of the priorities is enough
- Comment in the relevant issue itself or in the rolling backlog issue if your comment is more relevant there
- Link to references to specific GitLab resources to improve discoverability.
-
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:
- Up-to-date milestone planning issue
- Updated issues fields:
status,milestone, and labels to includedeliverable
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
- 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
- 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
- EM + PM update the milestone planning issue, if needed, reflecting latest changes, that could include for example:
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 effort2- week of effort3- week and a half of effort
Notes:
- Everything with a base weight above
3should be a spike that will result in one or more issues with estimated weight. - These are estimates for someone familiar with the codebase/system, you can add extra weight
1or2to the base weight if you are new to the team/codebase/system. - Weights are assigned in planning flow, step #2
π Useful Links
-
Planning
-
Dashboard & Monitoring
-
Miscellaneous
- Weekly Sync Meeting Agenda
- Editor Extensions playlist on the GitLab Unfiltered YouTube channel
3da2382b)
Amr Elhusseiny
Andrei Zubov
Anna Springfield
Bohdan Parkhomchuk
Erran Carey
Jean-Gabriel Doyon
Karl Jamoralin
Laura Ionel
Tomas Vik
Dasha Adushkina
Meg Corren
Matthew Petersen