# Infrastructure Engineering

# Matrix of competencies

Competency Intermediate Senior Staff
Organizational processes Understands and follows organization processes. Able to determine current process drawbacks. Proposes improvements over MR to handbook. Constantly contributes in handbook. Implements these changes inside the company. Strives to make organization simpler.
Transparency Keep documentation up-to-date with their changes. Performs demos. Always keep up-to-date their Kanban board, daily shares the work progress. Holds their team to a high standard of transparency and encourages others to keep their work transparent. Advocates for transparency across the teams.
Communication Communicates in a clear and effective manner. Constantly improves writing and speaking skills. Communicates clearly and effectively, both written and verbally. Helps other to improve their writing and communication skills.
Self-effectiveness Seeks out ways to be more effective in their role. Understands strengths and weakness of the team. Leverages their time to help others, efficiently unblock them and enable them to move forward.
Manager of one Develops daily priorities. Determines what needs to get done. Requires minor supervision. Makes responsible decisions, identifying the consequences of each option, evaluating trade-offs and seeking advice from others when necessary. Reaches beyond immediate needs, independently considering the longer-term, and is always looking beyond for ways to have a broad impact.
Giving feedback Gives positive feedback in public and negative feedback privately with care. Provides feedback that focuses on the business impact of the behaviour. Regularly gives negative and positive feedback. Encourages others to give regular feedback.
Hadbook-first approach Fixes misspellings and errors in Handbook. Proposes improvements. Improve handbook consistency. Propose changes through RFCs. Encourages others to follow handbook-first approach. Ensures that handbook reflects how the things are here.
Sharing knowledge Shares knowledge over Code Reviews and demos Constantly shares knowledge to the team. Encourages others to share their knowlendge over demos and meetups. Helps them to prepare.
Self-learning Largely concentrates on growing themselves. Learn from documentations, books and videos. Watches videos from tech-conferencies. Constantly improves tech-writing skills. Constantly improves management skills.
No-blame culture Doesn't blame others. Learns from made mistakes. Helps the team to prevent of happening it again. Champions a no-blame culture and encourages learning from mistakes.
Self-leadership Represents their team in conversations with others. Ambassador of our values and protector of our culture Able to represent the company and the product outside the company.
Participation in hiring process Takes part in the hiring process Ensures that we bring in the team the best professionals. Takes part in the hiring process to ensure that we bring in a wide variety of experience into our teams.
Ownership Demonstrate ownership of the projects Demonstrates ownership of projects that require collaboration with other teams. Exhibits a deep understanding of products, how customers use them, and what challenges they meet.
Participation in code reviews Often works with other team members to grow their own understanding of the team’s domain through code reviews. Performs Code Reviews on a regular cadence. Performs Code Reviews across the projects on a regular cadence. Advocates for tech debt, quality and security.
RFC Mastery Follows the basic RFC guidelines. Determines the root cause of the problem. Describes pros and cons of the solution. Master of RFC writings. Communicates with stakeholders in. Able to suggest alternative solutions to customer problems.
Problem solving Implements solutions based on the complexity, and asks for guidance when the complexity increases unexpectedly. Able to resolve complex challenges and performance issues. Able to resolve complex cross-team challenges. Able to quickly pivot a solution based on feedback or complexity.
Code quality Follows code conventions. When working in an existing code area, leaves it in a better state than before. Independently finds balance between test coverage and code maintainability. Identifies inefficient code produced by team members. Advocates for high code quality in multiple projects. Proactively looks for opportunities to eliminate technical debt by making small code improvements.
Code design Looks to maintain coding consistency across the code base. Leads technical architecture discussions and help drive technical decisions. Improves code design best standards in the company.
Code Performance Understands how to use profiling tools Identifies slow and inefficient code produced by team members. Finds independently balance between simplicity and code performance.
Security Understands security best-practices. Ensures security best practices are followed across many domains and escalate security risks. Independently finds balance between security and effectiveness. Advocates and mentors others for security best practices across the company.
Technical mastery Proficient or fluent with programming languages which are used the project Provides high level of expertise in programming languages that our company use. Understands the constraints of technologies that the team uses.
Automation Understands principles of pipeline design. Able to design a complex CI/CD pipelines. Improves pipeline performance. Helps across teams to design CI/CD pipelines that involves quality, speed and security.
Monitoring best-practices Understands monitoring and logging best practices. Ensures that team follows the monitoring and logging best practices. Communicates with other teams on monitoring and logging improvements.
Kubernetes Understands how application works in k8s environment. Understands how networking work between application. Follow best security practices. Able to adminiter k8s, helps other to improve their k8s knowledge.
Ansible Understands how ansible works. Able to run playbooks. Writes/imports new roles to existing playbooks, writes own playbooks. Helps other to improve their ansible knowledge.
BASH/Linux Understands how OS works. Knows key things about files/processes/networking. Understads shell scripts Knows and use best practises when writing shell scripts. Can detext and fix common proplems on linux boxes (reads logs, has expirience of resolving common problems - high CPU usage, empty space, upgrading/installing packages). Helps other to improve their knowledge. Able to fix hard problems, uses debugging tools.
MySQL/PostgreSQL Knows SQL. Can install and configure both databases for common use cases Able to detect slow queries, knows how to improve query performance. Can adap database configuration for high performant use cases. Uderstands clustering. Can build database cluster from scratch. Uses extra tools to improve performance, build backups, monitor database loading and so on.