GitLab logo
GitLabΒ·Verified

Senior Software Engineer, SSCS : Authentication - GitLab

An overview of this role

Help us build the next generation of authentication services at GitLab. As a Senior Backend Engineer on the Authentication team, you'll build authentication features across the Rails monolith and GATE. GATE is our new service for issuing and validating tokens and managing identities, designed to support every GitLab deployment model.

You'll expand authentication mechanisms, including support for identities used by artificial intelligence (AI) agents. You'll also help keep GitLab and its customers secure by building access management tooling and addressing vulnerabilities reported through our HackerOne program.

GATE will become the foundation for token issuance, validation, and identity services across GitLab.com multi-tenant software as a service (SaaS), Self-Managed, Dedicated, and air-gapped environments. Your work will affect core components that customers, users, and GitLab teams rely on.

Some of our projects include:

  • Building GATE as the centralized service for token issuance and validation
  • Consolidating tokens and migrating authentication paths out of the Rails monolith
  • Building passkeys and passwordless authentication
  • Developing composite identities that combine machine and human authorization for AI
  • Improving service accounts and secure automation
  • Enhancing Security Assertion Markup Language (SAML), Lightweight Directory Access Protocol (LDAP), OpenID Connect (OIDC), and System for Cross-domain Identity Management (SCIM) capabilities for automated user provisioning and single sign-on (SSO)

What you'll do

  • Shape the roadmap for GATE and GitLab's authentication services with the team.
  • Design and implement token issuance, validation, and identity services in Go and Ruby across the Rails monolith and GATE, including new authentication mechanisms such as Workload Identity Federation.
  • Migrate authentication and token management paths from the monolith into GATE while maintaining reliability across all deployment models.
  • Build authentication mechanisms from the ground up, such as Workload Identity Federation.
  • Strengthen security for users and organizations through access management tooling and by addressing vulnerabilities reported through our HackerOne program.
  • Define and improve standards for style, maintainability, and engineering practices in a high-scale environment, and advocate for them through code review.
  • Communicate publicly about GitLab initiatives, projects, and contributions from people not working for GitLab Inc. Reflect GitLab's values in these communications.
  • Ship moderately sized features and improvements with moderate guidance and support from other team members, and collaborate on larger projects, including the build-out of GATE.
  • Participate in the maintainer trainee program at your own comfortable pace while working toward becoming a project maintainer.

What you'll bring

  • Professional experience with Go and/or Ruby in scaling or mission-critical SaaS products.
  • Familiarity with authentication and authorization technologies or techniques, such as OAuth, OIDC, SAML, SSO, SCIM, LDAP, JSON Web Tokens (JWTs), role-based access control (RBAC), or identity and access management (IAM).
  • Knowledge of token systems, cryptographic signing, and key management.
  • Experience building or contributing to a service from concept to production, including proposal, discussion, and execution.
  • Proficiency in written and verbal English, with the ability to communicate complex problems and solutions clearly in a remote, largely asynchronous work environment.
  • Experience diagnosing, preventing, and resolving performance and optimization problems.
  • Experience working in an iterative software development process, managing your work effectively, staying organized, and following through on priorities.

Culture

Async-friendly

Open to

Worldwide

Sign in to track applications and earn points.

More roles at GitLab

Similar remote roles