Frontend interview guide
GitLab
The all-remote DevOps platform. Vue/TypeScript. Deep culture of async handbook-first collaboration.
Frontend engineers interviewing at GitLab — mostly Vue 3 / TypeScript across the merge-request, CI, and project surfaces.
Last reviewed 2026-10-04
What they emphasise
- Async-first collaboration — every process is in the public handbook, and the loop reflects that culture.
- Vue 3 depth — Composition API, reactivity model, ergonomics of refs vs reactive. React experience is accepted but not a shortcut.
- DevOps-shaped product thinking — CI logs, pipeline DAGs, diff viewers, large repositories.
- Values-based interview — six CREDIT values plus Iteration, surfaced throughout the loop.
The loop, round by round
5 rounds. Durations and formats are typical, not guaranteed — confirm the loop shape with your recruiter in the screen.
Round 1
Recruiter screen
~30 minVideo callWhat it covers
- Candidate motivation, remote-fit, time-zone compatibility.
- Clarify the team you're interviewing with and the level.
- GitLab handbook orientation — they expect you to have at least browsed it.
What they're looking for
- Preparation visible in the first five minutes — a candidate who has read the handbook stands out immediately.
- A clear, honest reason for wanting an all-remote role.
Round 2
Technical interview
60 minLive coding on CoderPad or your own IDE on videoWhat it covers
- A Vue 3 / TypeScript problem — building a component or extending one. Reactivity, props/emits, composition.
- Candidates experienced in React are welcome; you'll be asked to describe how your usual mental model maps onto Vue's.
- A short logic/data-manipulation round is possible depending on the team.
What they're looking for
- Working, idiomatic Vue — not React with Vue syntax.
- Thinking about reactivity trade-offs out loud: when to use `ref` vs `reactive`, when `computed` is the right primitive.
Round 3
Technical panel / system design
60 minOpen discussion, often with a shared whiteboardWhat it covers
- A frontend system-design prompt — commonly in GitLab's domain: a diff viewer, a pipeline UI, a large project tree, a real-time log tail.
- Scaling concerns, large files, many users, and operational realities.
What they're looking for
- The design holds up against the realities of the GitLab domain — large repos, long-running jobs, logs that are not toy-size.
- Specific library knowledge where it matters — IntersectionObserver, Web Workers, virtualization, CRDTs — rather than hand-waving.
Round 4
Behavioural / values
45–60 minConversationWhat it covers
- GitLab values round — Collaboration, Results, Efficiency, Diversity-Inclusion-Belonging, Iteration, Transparency (CREDIT).
- Specific stories from your work — remote-collaboration stories carry weight.
- Public evidence (open source, blog posts, conference talks) is often cited back at you by the interviewer.
What they're looking for
- Comfort working async and in writing. Candidates whose stories are all synchronous meetings read as a culture-mismatch.
- A specific example of iteration — "we shipped the small version in a week, learned Y, then shipped the real version in a month".
Round 5
Hiring manager
30–45 minConversationWhat it covers
- Team shape, scope of the role, what you'd be working on in the first 90 days.
- Your questions.
What they're looking for
- Specific questions about the team's current frontend problems.
- A real sense of what you want to work on, grounded in the specific team.
What each level expects
The bar you're being measured against — plus the failure modes candidates most often trip on at that level.
SDE 2 / mid
~2–4 yearsOwns small features end to end with light guidance.
What they expect
- Clean Vue 3 / TypeScript, understands reactivity well enough to debug it.
- Writes merge requests small enough to review in under 30 minutes.
- Collaborates asynchronously by default — writes clear PR descriptions and docs.
Common failure modes
- React muscle memory leaking into Vue code — treating `reactive` like `useState`, missing that mutating a nested property is already reactive.
- In the behavioural round, framing everything as synchronous meetings — GitLab's whole model is async-first.
Senior
~5–8 yearsOwns a technical area, mentors mid engineers, writes handbook pages that outlive them.
What they expect
- A system-design round where domain specifics show through — "a 50 000-line diff needs these three techniques" rather than generic virtualization talk.
- Visible async-collaboration leadership — leading an initiative via public RFCs rather than meetings.
- A behavioural story that cites measurable iteration — not just 'we tried, then we tried harder'.
Common failure modes
- Showing up as a strong Mid in the system-design round — ability to code but not to lead the discussion.
- No concrete example of 'I was wrong, I learned, I changed what I did' — iteration is a value, and the lack of a self-correction story reads as insufficient.
Staff
~8+ yearsTechnical direction across teams; drives multi-quarter initiatives.
What they expect
- Cross-team influence evidenced by shipped work, not opinions.
- A design discussion that reads as peer-to-peer — the interviewer finishes less sure which of you was leading.
- A specific philosophy of software with evidence — not abstractions, patterns you have put into practice.
Common failure modes
- Treating the loop as a Senior+ loop. The Staff bar is about leverage: your work making other engineers measurably more productive.
- No visible writing in the handbook-style — Staff candidates are expected to be comfortable with public, long-form, written argument.
How to crack it
Day-of advice. The specific moves that separate offers from no-offers when the content is already in your head.
- 1Read the GitLab Handbook. Not all of it — but the engineering section and the Hiring page. You will be asked about it indirectly.
- 2Build a small Vue 3 project if your production background is React. Specifically something with reactivity, computed, and a composable or two.
- 3Prep a diff viewer or a pipeline-DAG prototype as your system-design rehearsal. The domain is the point.
- 4For the behavioural round, pre-write stories that explicitly use the CREDIT values as headings. Rehearse to under 2 minutes each.
- 5Prepare one real question about async culture — what the team does differently in the all-remote model, how handbook-first changes code review, how iteration shows up in day-to-day work.
How to master it (over months, not days)
The longer-horizon work. These are the habits that pay off at Senior+ bars where cramming visibly fails.
- Contribute to GitLab itself — it's open source. The MR that gets reviewed by a GitLab engineer is better preparation than any mock interview.
- Pick one of their public pain areas (diffs, pipelines, project trees) and build a prototype. Learn by shipping.
- Practise writing async — public RFCs, long-form PR descriptions, blog posts. The writing muscle is what makes handbook-first culture work.
- Follow one GitLab engineer whose work you admire on Mastodon or their blog. Pattern-match on how they communicate.
- Learn one Web Platform primitive deeply (IntersectionObserver, Workers, Streams) — the GitLab domain uses these for real.
Resources
On-site content for the technical prep, plus short-list of external links worth your time.
- lessonDesign a Code Review Diff ViewerGitLab-shape prompt walked end to end.
- lessonDesign a CI/CD Pipeline DashboardPipeline UI, log tail, run history.
- lessonVirtualization for Large Lists
- lessonCode splitting and bundle budgets
- externalGitLab Handbook — HiringRead this before the recruiter screen.
- externalGitLab engineering blog