Core Platform Career Framework: Intermediate Distribution Engineer

Core Platform Intermediate Distribution Engineer


Core Platform Framework | Development Framework | Engineering Framework

Intermediate Distribution | Senior Distribution


Core Platform Intermediate Distribution Engineers at GitLab are expected to exhibit the following competencies:


Leadership Competencies

Engineering
  • Assumes goodwill, and is able to disagree and commit.
  • Capable of delivering work despite periodical distractions.
  • Constructively raises concerns.
  • Communicates in a clear, timely, and effective manner.
  • Capable of adapting their messaging to technical audience.
  • Understands organization structure and processes.

{{$ include “includes/engineering/development-intermediate-leadership-competency.md” %}}

Distribution
  • Participates in team trainings, issue triage, and process review.
  • Performs Code Reviews within their domain on a regular cadence.
  • Intentionally develops the skills necessary to become an expert on a specific subject.
  • Shares knowledge with team members after becoming a domain expert.
  • Seeks and reviews customer issues and feedback through joining customer support calls, and reading customer feedback.

Technical Competencies

Engineering
  • Considers quality, security, and performance of assigned tasks.
  • Independently plans, estimates and, delivers small and moderate solutions.
  • Seeks guidance when blocked and iterates to a solution.
  • Performs thorough reviews within their domain and provides helpful feedback to team members.
  • Encourages participation and engages with contributions from those in the community.
Development
  • Writes tests with every MR and works to uplift the quality of the code.
  • When working in an existing area of the code base, is able to recognise and propose an improvement.
  • Able to give an estimate and execute on proposals that do not affect deliverables.
  • Is aware of company established development processes that are aimed at reducing security related issues.
  • Adopts a security minded software development approach by following Secure Coding Guidelines early in the development process.
  • Able to take on security related issues, come up with an effective approach and deliver a working solution.
  • Able to tackle all but large issues independently. Large issues with provided clear requirements and design implementation require little effort, issues that are not clearly defined require team assistance.
  • Asks for help when an issue is taking longer to implement, works with the team to split the issue into smaller issues.
  • Proactively looks for opportunities to eliminate technical debt by creating technical debt issues, resolving technical debt issues and writing quality code that reduces additional technical debt.
  • Performs thorough reviews within their domain and submits helpful comments.
  • Knows which tools are available to them to debug performance problems and understands how to use them.
  • Understands how their code would be used in a production instance and how they can access monitoring information (if available for their group).
  • Encourages participation from those in the community.
  • When working in an existing code area, leaves it in a better state than before.
Distribution
  • Capable of presenting training or demos, within their team domain.
  • Proficient or fluent with one or more languages to build, deploy and manage GitLab installations.
  • Working knowledge of Distribution’s build and installation frameworks.
  • Able to debug issues that occur in production during installation and upgrading.
  • Develops documentation and instructions explaining how to configure, install and manage GitLab service components.
  • Able to install and review GitLab installations in multiple deployment configurations.

Values Alignment

GitLab
Development
  • Independently brings in expertise from other contributors to raise the standard of their work.
  • Gives positive feedback in public and negative feedback privately with care.
  • Executes tasks in team projects, demonstrating ownership of them from conception to completion.
  • Requires supervision to deliver projects in time, growing bias for action.
  • Recognises complexity of the team’s product or the team’s process, and proposes solutions accordingly.
  • Capable of implementing solutions based on the complexity, and asks for guidance when the complexity increases unexpectedly.
  • Analyzes team processes and proposes areas where efficiency improvements can be made.
  • Requests expert help from others recognizing that diverse opinions/experience improve the quality of their solution.
  • Collaborates and consults with stable counterparts including understanding their roles and responsibilities and focusing on fostering productive working relationships.
  • Shows that they are aware of differing priorities between groups.
  • Prioritizes work by following GitLab Priority and Severity label guidelines, focusing on high-value activities, completing tasks with the earliest deadlines, and when in doubt, seek clarification regarding the priorities.
  • Balances short term gains and long term benefit with team’s help. For example, advocating for technical debt resolution and understanding the opportunity cost in comparison to a quick customer win.
  • Creates proposals for their team that clearly defines the problem, offers alternatives, and proposes a solution. These proposals are small in scope, looking to address problems with a small surface area.
  • Incorporates Iteration in every aspect of your job (examples: development, issue creation, planning, process improvements)
  • Provides context and background on projects and issues so that those with no prior knowledge are able to contribute to the discussion.