Description
GitLab is seeking a Fullstack Engineer to join the Duo Client SDK team. As a Fullstack Engineer on the Duo Client SDK team at GitLab, you'll build the shared foundation for every GitLab Duo client.
Today, the logic that powers Duo in editors lives inside the GitLab Language Server. We're extracting it into a true software development kit (SDK): a set of well-versioned TypeScript packages that editor extensions, our web-based Duo Chat on GitLab.com, and eventually external applications can use.
You'll work in TypeScript across frontend and backend systems. You'll design the SDK's Node.js core and public application programming interface (API), and work in the clients that use it. The work rewards care about interfaces, versioning, and backward compatibility as much as features because other engineers will depend on what you build.
Some examples of our projects:
- The Duo Client SDK, extracting versioned, publishable packages from the GitLab Language Server
- The GitLab Language Server, rebuilt on top of the SDK as our polyglot surface
- Duo Chat on the web, as one of the SDK's first consumers
Responsibilities:
- Develop secure, well-tested, and performant TypeScript features that solve technical problems of moderate scope and complexity.
- Ship small features and improvements with minimal guidance, writing tests with every merge request and contributing to code reviews and design discussions.
- Extract and publish TypeScript packages from the GitLab Language Server, migrating consumers incrementally so no parallel implementation is left to drift.
- Design durable public APIs with clear interfaces, semantic versioning, changelogs, and deprecation paths for external consumers.
- Build isomorphic core packages that isolate platform-specific behavior in adapters at the edges.
- Build and improve SDK client surfaces, including Vue 3 components in Duo Chat on the web, in collaboration with product, design, and engineering teams.
- Strengthen credential handling across hosts, including bearer tokens, session cookies, and CSRF protection.
- Optimize bundle size, startup cost, and dependency weight for browser consumers, and support a Tier 2 on-call rotation for urgent engineering issues.
Requirements:
- Strong proficiency with TypeScript across frontend and backend systems, including experience building and maintaining Node.js services.
- Experience with modern build and packaging tools, including monorepos, multi-module builds, ECMAScript modules (ESM), and dependency management.
- Experience with Vue 3 and the Composition API, or comparable component-based frontend experience and a willingness to learn Vue.
- Experience designing APIs that other people use, with the ability to explain what you'd do differently.
- Understanding of the differences between running code in Node.js and in the browser, and how to write code that works in both.
- A security-minded development approach, including careful credential handling and performance optimization.
- Ability to communicate clearly and concisely in writing about technical problems, propose iterative solutions, and work effectively in an agile environment.
- Self-motivation, strong organizational skills, and the judgment to ask for help when needed while thriving in a fully remote organization aligned with GitLab's values.
Benefits:
- Benefits to support your health, finances, and well-being
- Flexible Paid Time Off
- Team Member Resource Groups
- Equity Compensation & Employee Stock Purchase Plan
- Growth and Development Fund
- Parental Leave