Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
261 changes: 261 additions & 0 deletions paths/production/devops.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
---
path: "/production/devops"
title: "🔧 DevOps"
sidebarTitle: "🔧 DevOps"
sidebarGroup: "Production"
yaml: true
levels: 5
homepage: true
topics:
- name: "development skills"
title: "Development skills"
content:
- level: 1
criteria:
- "Works on small, low-impact, well-defined tasks with help of other developers"
- "Has basic knowledge of concepts of a core language/framework"
- "Understands common development practices e.g. REST architecture, SOLID principles"
- "Understands established conventions in project (architecture, git flow, deploy flow etc.)"
- "Has basic HTTP knowledge"
- "Has basic knowledge of git (both terminal and UI)"
- "Knows how to quit vim"
- "Follows basic security practices e.g. doesn't push sensitive data to repository/publicly available files"
- "Knows basics of using the terminal e.g. basic commands like grep, curl, tail, cd, mkdir, kill"
- "Understands basics of debugging and the tools used for it"
- "Regularly and independently debugs and fixes bugs in their code with support of others"
- "Identifies risks, potential issues at early stage of implementation"
- "Participates in code review spotting mostly syntax errors"
- "Integrates feedback from code reviews to ship high-quality code"
- "Provides explanations clearly and precisely"
- level: 2
criteria:
- "Independently works on small, low-impact, well-defined tasks"
- "Constantly works to improve codebase's quality"
- "Makes a thorough research upon implementation to choose the best tool/approach for a problem"
- "Uses libraries' documentation and source code to look for solutions/answers"
- "Independently debugs and fixes bugs in their code on their own"
- "Creates and maintains documentation of the system"
- "Takes care of software and dependencies updates"
- "Identifies risks, potential issues and covers edge cases upon implementation (e.g. during planning meeting)"
- "Knows how to configure existing tools in the project e.g. setup GitLab repository, integrate Sentry"
- "Follows established conventions in project (app's architecture, git flow, deploy flow etc.)"
exampleCriteria:
- criteria: "Has basic knowledge of parts of the application and their responsibilities"
examples:
- "having a project that comprises of 4 separate applications the developer knows scope and responsibilities of each of these"
- criteria: "Knows basic security practices and is able to find ones"
examples:
- "uses libraries supporting security in the project, takes care of proper authentication and authorization within the project"
- criteria: "Is able to reasonably manage their time in project"
examples:
- "prioritizes tasks in project (manages their time well and does not spend too much time on tasks that might not be relevant at the moment)"
- "can manage their work when other team member is absent at the moment and makes adjustments to task scope/priority if needed e.g. when PM is missing they are able to set tasks' priorities themselves"
- criteria: "Actively participates in code review"
examples:
- "is able to spot potential bugs/edge cases in code review"
- "writes meaningful code review comments with explanations rather than instructions"
- "takes the opportunity to learn from code review by asking questions and taking discussions with reviewer"
- criteria: "Practices clear communication in project"
examples:
- "writes clear tickets, issues and bug reports that contain the necessary amount of detail to be picked up by other engineers"
- "gives proper overview/descriptions and follows naming conventions when creating MRs"
- level: 3
criteria:
- "Independently works on complex features in project"
- "Makes steady, well-paced progress without the need for constant significant feedback from more senior engineers"
- "Implements code according to best coding practices, applies proper design patterns when necessary"
- "Knows how to configure CI deployment, work with CI flows and multiple environments"
- "Understands when it is appropriate to leave comments, but biases towards self-documenting code"
- "Actively participates in code review spotting business inconsistencies"
- "Gives highly insightful code review feedback, addressing high-level thoughts and treating code review as knowledge-sharing channel"
- "Holds themselves accountable for their decisions and their outcome"
- "Actively participates to team-level technical discussions"
- "Initiates and facilitates meaningful discussion around complex issues"
- "Influences established conventions in project (architecture, git flow, deploy flow etc.)"
- "Supports PM in his decisions if needed e.g. when PM has insufficient knowledge to address the issue"
- "Ensures that code being written aligns business requirements"
exampleCriteria:
- criteria: "Takes a long-term vision of the project and defines building blocks to get there"
examples:
- "writes maintainable, loosely-coupled code that is easy to test"
- "anticipates future use cases and makes design decisions that minimize the cost of future changes"
- "designs elegant solutions to problems"
- criteria: "Actively participates in workshops, project plannings or/and pre-development phase"
examples:
- "makes good suggestions and spots potential risks/problems upon development phase"
- criteria: "Deals well with unfamiliar subjects"
examples:
- "introduces new tools to the project, new 3rd party integrations"
- criteria: "Is able to debug issues in various parts of the application"
examples:
- "not only the part they are responsible for"
- criteria: "Takes care of non-functional requirements"
examples:
- "keeps in mind such requirements as performance, security, accessibility etc."
- "understands importance importance of such requirements and knows tools used to verify they have been met"
- level: 4
criteria:
- "Coordinates major refactorings of existing projects"
- "Debugs complex multi-source issues and provides comprehensive solutions to them"
- "Designs software so that it can easily deal with changing requirements"
- "Identifies risks, potential issues based on project's specification"
- "Is known for drama-free releases"
- "Identifies bottlenecks in the process and roadblocks to success of the project and takes actions to remove these"
- "Translates difficult business requirements into technical terms"
- "Mentors younger developers"
- "Can take over any project in the company, instead of another developer"
- "Can do the POC of the selected issue or technology and prove which solution works best"
exampleCriteria:
- criteria: "Is an expert within a core language/framework"
examples:
- "knows language from scratch, knows when to use which function"
- "knows how frameworks and built-in functions work under the hood"
- criteria: "Makes pragmatic choices about tech debt"
examples:
- "is able to reasonably take shortcuts when necessary and keeps them in tech debt backlog"
- "tackles tech debt proactively e.g. refactors whenever touches any part of codebase in need"
- criteria: "Seeks out opportunities to improve company workflow"
examples:
- "identifies and promotes common development approaches as cross-team standards"
- "takes part in definition of team guidelines"
- level: 5
criteria:
- "Independently scopes, designs, and delivers solutions for large, complex challenges"
- "Is capable of building an entire product from scratch that requires significant R&D effort"
- "Is an expert in a particular domain or particular set of problems e.g. machine learning/devops/business intelligence areas of expertise"
- "Contributes to project's architecture and conventions e.g. application's architecture, git flow, deploy tasks etc."
- "Understands the business so well that is able to advise in business terms e.g. from regular user's perspective"
- "Mastered the act of translating client requirements/visions into concrete web features"
- "Proactively prepares the codebase to significant platform changes. Is the pioneer whenever some core features are deprecated in favour of new solutions."
exampleCriteria:
- criteria: "Takes part in definition of company-wide standards"
examples:
- "coordinates a company-wide switch to a new approach/framework/architecture"
- "improves and maintains company's infrastructure and architecture in their core technology e.g. project architecture templates, CI scripts etc."
- name: "mastery"
title: "🔧 DevOps Mastery"
content:
- level: 1
criteria:
- "Has basic knowledge of Linux/Unix systems and command line operations"
- "Understands basic networking concepts (TCP/IP, DNS, HTTP/HTTPS)"
- "Has basic knowledge of version control systems (Git)"
- "Knows fundamentals of at least one cloud platform (AWS, Azure, GCP)"
- "Has basic understanding of containerization concepts (Docker)"
- "Understands basic CI/CD concepts and tools"
- "Has basic knowledge of monitoring and logging concepts"
- "Follows basic security practices in infrastructure management"
- "Can perform basic server administration tasks with guidance"
- "Understands the concept of Infrastructure as Code (IaC)"
- level: 2
criteria:
- "Proficient in Linux/Unix system administration and shell scripting"
- "Has good knowledge of networking, load balancing, and web servers"
- "Can set up and maintain CI/CD pipelines using established tools"
- "Has working knowledge of containerization (Docker, Docker Compose)"
- "Can deploy and manage applications in cloud environments"
- "Implements basic monitoring and alerting for applications and infrastructure"
- "Manages databases and performs basic DBA tasks"
- "Applies security best practices in deployments and infrastructure"
- "Can troubleshoot common infrastructure and deployment issues"
exampleCriteria:
- criteria: "Has good knowledge of cloud services and their use cases"
examples:
- "can choose appropriate cloud services for different requirements (compute, storage, networking)"
- "understands pricing models and cost optimization strategies"
- criteria: "Implements automated deployment processes"
examples:
- "sets up automated deployments from version control"
- "implements rollback strategies and blue-green deployments"
- criteria: "Maintains infrastructure documentation and runbooks"
examples:
- "creates and maintains system documentation"
- "writes incident response procedures and troubleshooting guides"
- level: 3
criteria:
- "Designs and implements scalable cloud architectures"
- "Proficient with container orchestration platforms (Kubernetes, Docker Swarm)"
- "Implements advanced monitoring, logging, and observability solutions"
- "Has deep knowledge of Infrastructure as Code tools (Terraform, CloudFormation, Ansible)"
- "Implements comprehensive security measures including secrets management and access controls"
- "Optimizes infrastructure costs and performance"
- "Can debug complex distributed system issues"
- "Mentors junior team members and shares knowledge effectively"
- "Participates in architecture decisions and technical planning"
exampleCriteria:
- criteria: "Implements disaster recovery and high availability solutions"
examples:
- "designs and tests backup and recovery procedures"
- "implements multi-region deployments for high availability"
- criteria: "Automates complex infrastructure provisioning and management"
examples:
- "creates reusable infrastructure modules and templates"
- "implements self-healing infrastructure components"
- criteria: "Implements advanced CI/CD practices"
examples:
- "sets up multi-environment promotion pipelines"
- "implements advanced testing strategies in CI/CD (integration, performance, security testing)"
- level: 4
criteria:
- "Designs enterprise-level infrastructure architectures"
- "Leads infrastructure migration projects and technology adoption"
- "Implements advanced security practices including compliance and governance"
- "Has expertise in multiple cloud platforms and hybrid cloud solutions"
- "Designs and implements comprehensive disaster recovery strategies"
- "Leads incident response and post-mortem processes"
- "Contributes to technology strategy and long-term planning"
- "Mentors and develops other DevOps engineers"
- "Interfaces with stakeholders and translates business requirements into technical solutions"
exampleCriteria:
- criteria: "Implements advanced observability and performance optimization"
examples:
- "designs comprehensive monitoring and alerting strategies"
- "implements performance optimization across the entire stack"
- criteria: "Leads complex infrastructure projects"
examples:
- "manages large-scale migrations and infrastructure transformations"
- "coordinates with multiple teams and manages dependencies"
- criteria: "Implements advanced automation and self-service capabilities"
examples:
- "creates developer self-service platforms and tools"
- "implements advanced automation for compliance and governance"
- level: 5
criteria:
- "Defines company-wide DevOps strategy and practices"
- "Architects and implements platform engineering solutions"
- "Leads digital transformation initiatives"
- "Has deep expertise in emerging technologies and industry trends"
- "Establishes DevOps culture and practices across the organization"
- "Interfaces with C-level executives and influences business strategy"
- "Contributes to open-source projects and industry standards"
- "Speaks at conferences and represents the company in the DevOps community"
- "Builds and leads high-performing DevOps teams"
exampleCriteria:
- criteria: "Drives innovation in DevOps practices and tooling"
examples:
- "researches and implements cutting-edge DevOps technologies"
- "creates proprietary tools and platforms for internal use"
- criteria: "Influences industry standards and best practices"
examples:
- "contributes to DevOps community through thought leadership"
- "collaborates with vendors and technology partners"
- criteria: "Optimizes organizational processes and culture"
examples:
- "implements DevOps transformation across multiple teams and projects"
- "establishes metrics and KPIs for DevOps effectiveness"
---
### About our core paths
Core paths are directly related to professions we employ at Applover. Why exactly are these called **core**? Because they represent how you can progress at your profession at Applover. Each core path covers all the things we're looking for from Applover's team members.

### How does it work?
Each development path is divided into several milestones to be achieved along with your progression. Particular milestone represents a set of exemplary behaviors and skills that need to be mastered to accomplish the milestone. Some of the paths share common skills and behaviors (e.g. all paths related to development roles: Android, iOS, Frontend, Backend, Wordpress, DevOps) - as a result each milestone for these is composed of:
- Development skills - exemplary development skills and behaviors common for all developers at Applover.
- Mastery - exemplary skills and behaviors directly related to particular area of expertise.

And thus all development roles' paths share the same set of **Development skills** throughout their milestones while they contain unique set of **Mastery** skills.

### Things to keep in mind
- There are many different ways to progress and be valuable to Applover as you grow, including deep technical knowledge and ability as well as variety of soft skills.
- Your progression isn't an exact science and there will always be some ambiguity.
- This isn't a checklist – PGF is a guide that helps you understand how you can progress at your work.
- PGF is a living organism - we will modify existing milestones or add new ones to the core paths whenever we need to do so.