As a Senior Software Engineer on the Duo CLI functional team, part of the
Developer Clients group within GitLab's AI Clients stage, you'll design and build tools that bring GitLab Duo into developers' daily terminal workflows. You'll shape AI-assisted experiences across GitLab Duo CLI and its supporting infrastructure, working mainly in TypeScript across the frontend and backend and making key architectural decisions about the CLI's future direction. You'll also have opportunities to contribute across Developer Clients, including our JetBrains plugin in Kotlin and our VS Code extension in TypeScript, when shared features, components, or cross-platform consistency call for it.You'll provide technical leadership by breaking down complex problems, aligning on long-term direction, and maintaining a high bar for code quality, performance, and reliability. You'll collaborate closely with engineers across Developer Clients and the wider AI Clients stage, including the Duo Client SDK and Duo Chat groups, to make GitLab Duo fast, intuitive, and deeply integrated wherever developers work.Some examples of our projects:
Duo CLIGitLab Language ServerGitLab Duo plugin for JetBrains IDEsGitLab Duo extension for VS CodeWhat you’ll doOwn the design, development, and evolution of GitLab Duo CLI features from problem definition with Product through implementation, rollout, and iteration, measuring success through feature usage and feedback.Build interactive terminal experiences in TypeScript, with careful command and flag design, clear output formatting, scripting-friendly behavior, and backward compatibility.Drive reliability, observability, and performance improvements for the CLI, measuring progress through reliability and performance metrics while reducing technical debt as the product and its usage grow.Collaborate with Product, Design, and engineers across Developer Clients and the wider AI Clients stage to align technical decisions with GitLab's broader strategy.Champion product quality, security, and developer experience through thoughtful reviews and mentorship.Contribute to IDE extension work across the group when useful, including the JetBrains plugin in Kotlin and the VS Code extension in TypeScript.What you’ll bringStrong proficiency in TypeScript and an interest in developer tooling and command-line interface design.Experience building or maintaining command-line tools or other developer-facing tooling, including command and flag design, terminal user interfaces, output formatting, scripting-friendly behavior, and backward compatibility.Experience owning technical problems end to end, making sound architectural trade-offs, and guiding other engineers through code reviews and mentorship.Clear written and spoken English communication skills and comfort working in a fully remote, largely asynchronous environment.Alignment with GitLab's values and commitment to an inclusive culture.Experience with IDE extension development, such as JetBrains plugins in Kotlin or VS Code extensions, and understanding of the Language Server Protocol (LSP), language servers, or editor integrations are helpful but not required.About the teamOur broader Developer Clients group includes the VS Code and JetBrains functional teams. We hold a weekly sync and encourage engineers to collaborate across team boundaries when it benefits the shared developer experience. We're fully remote and work largely asynchronously, partnering closely with Product, Design, and engineering teams across AI Clients to align on long-term architecture and deliver iterative improvements.How GitLab Supports Full-Time Employees
Benefits to support your health, finances, and well-beingFlexible Paid Time Off Team Member Resource GroupsEquity Compensation & Employee Stock Purchase PlanGrowth and Development FundParental Leave Please note that we welcome interest from candidates with varying levels of experience; many successful candidates do not meet every single requirement. Additionally, studies have shown that people from
underrepresented groups are less likely to apply to a job unless they meet every single qualification. If you're excited about this role, please apply and allow our recruiters to assess your application.Country Hiring Guidelines: GitLab hires new team members in countries around the world. All of our roles are remote, however some roles may carry specific location-based eligibility requirements. Our Talent Acquisition team can help answer any questions about location after starting the recruiting process.