Tech Stack
Tag name is followed by "@" symbol and proficiency level value.
About proficiency levels:
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
Communication @ 3
Design Patterns
Experimentation
Observability @ 3
SRE
Security
System Architecture @ 3
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
Details
Specialists in treating operations as a software problem, focusing on the reliability of systems and services, including availability, performance, scalability, latency, observability, and efficiency. The role involves maintaining key components and developing automated systems that minimize human labor and operational toil while increasing system reliability.
SRE II professionals implement technical solutions based on business requirements, estimate effort and impact, deliver high-quality technical work, collaborate with partner teams, participate in incident response, and may act as business service owners, infrastructure owners, or consultants to product development teams.
Responsibilities
Building Software Applications
- Build software applications using relevant development languages and appropriate systems, services, and tools.
- Refactor and simplify code by introducing design patterns where necessary.
- Ensure application quality by following standard testing techniques and the established test strategy.
- Write readable and reusable code using standard patterns and libraries.
- Maintain data security, integrity, and quality in accordance with company standards and best practices.
Software Systems Design
- Evaluate architecture solutions based on cost, business requirements, technology requirements, and emerging technologies.
- Describe the implications of changing or adding systems by maintaining a broad understanding of infrastructure and system architecture.
- Support business growth and accelerate software development through engineering techniques such as prototyping, spiking, and vendor evaluation.
- Design adaptable solutions that meet current and future business requirements.
End-to-End System Ownership
- Own services end to end by monitoring application health and performance, setting relevant metrics, and taking action when metrics are violated.
- Reduce business continuity risks and bus factor through modern practices, appropriate tools, runbooks, and operational documentation.
- Reduce risk and obtain customer feedback through continuous delivery and experimentation frameworks.
- Independently manage applications or services through deployment and production operations.
- Maintain data security, integrity, and quality according to company standards and best practices.
Technical Incident Management
- Address and resolve live production issues while mitigating customer impact within service-level agreements.
- Improve system reliability through root cause analysis and long-term solutions.
- Contribute to incident tracking and postmortem processes.
Automation and Toil Reduction
- Keep infrastructure current by reducing technical debt, identifying bottlenecks, and preparing for scale.
- Reduce operational and maintenance costs through new technologies, automation, and vendor collaboration.
- Reduce human labor by developing software features that improve availability, scalability, latency, and efficiency.
Monitoring and Alerting Improvements
- Review and verify the performance of production systems and network infrastructure through observability metrics, business KPIs, and capacity planning.
- Partner with development teams to establish appropriate observability metrics and improve application reliability.
Additional Responsibilities
- Apply critical thinking to identify patterns, underlying issues, and solutions in complex situations.
- Identify and implement continuous quality and process improvements.
- Communicate clearly with team members, product stakeholders, and peers.
- Advise product teams on technical solutions that meet functional, nonfunctional, and architectural requirements.
- Provide architectural guidance by evaluating target architecture improvements and aligning technical direction with stakeholders.
Requirements
- Bachelor's degree.
- 3–5 years of relevant job knowledge and broad technical experience.
- Knowledge of building software applications.
- Knowledge of software system design.
- Knowledge of end-to-end system ownership.
- Knowledge of technical incident management.
- Knowledge of operations, automation, and toil reduction.
- Knowledge of observability, monitoring, and alerting.
- Critical thinking skills.
- Continuous quality and process improvement skills.
- Effective communication skills.
- Architectural guidance experience.
Communication
The role involves cooperation, information sharing, and persuasion with team members, product stakeholders, and peers.