Development Department Career Framework: Intermediate

Development Department Competencies: Intermediate


Dev Framework | Development Framework | Engineering Framework


Intermediates at GitLab are expected to exhibit the following competencies:


Intermediate 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.
Development
  • Still largely concentrates on growing themselves.
  • Seeks out opportunities to expand their technical and non technical skills through continuous learning practices.
  • Often works with other team members to grow their own understanding of the team’s domain through code reviews, pair programming or mentoring sessions.
  • Participates in code reviews and uses best practices when giving and receiving feedback.
  • Provides additional feedback whenever possible (i.e. 360s, Pulse, etc).
  • Communicates clearly and effectively, especially in writing, when working with peers, stable counterparts or their manager on technical tasks or issues.
  • Adheres to the GitLab communication guidelines.
  • Seeks assistance in clearly managing expectations around the delivery of their work.
  • Delivers work given clear requirements within the context of their team.
  • Makes responsible decisions in alignment with GitLab’s CREDIT values by ideating options, identifying the consequences of each option, evaluating trade-offs and seeking advice from others when necessary.
  • Thinks critically by understanding why something needs to be done, determining the root cause of the problem, identifying objectives and examining previous efforts.
  • Remains calm under pressure.
  • Demonstrates knowledge about how their work aligns with their Product section, stages, groups and categories.
  • Works effectively within established processes, and keeps themselves current as processes change.
  • Seeks to understand how their work integrates with processes across the company.

Intermediate 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.

Intermediate 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.