Dev Career Framework: Intermediate Fullstack Engineer
Dev Intermediate Fullstack Engineer
Intermediate Fullstack | Senior Fullstack | Staff Fullstack | Dev Framework | Development Framework | Engineering Framework
Dev Intermediate Fullstack 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.
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.
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.
Values Alignment
GitLab
- Adhere to the Collaboration Competencies for this job grade.
- Adhere to the Results Competencies for this job grade.
- Adhere to the Efficiency Competencies for this job grade.
- Adhere to the Diversity, Inclusion & Belonging Competencies for this job grade.
- Adhere to the Iteration Competencies for this job grade.
- Adhere to the Transparency Competencies for this job grade.
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.
Last modified May 11, 2024: Update markdownlint to match (
3c222108
)