- Building Software Applications
- Responsible for building software applications using relevant development languages and applying knowledge of systems, services, and tools appropriate for the business area.
- Refactor and simplify code by introducing design patterns when necessary.
- Ensure the quality of the application by following standard testing techniques and methods that adhere to the test strategy.
- Write readable and reusable code by applying standard patterns and using standard libraries.
- Maintain data security, integrity, and quality by effectively following company standards and best practices.
- Evaluate possible architecture solutions by taking into account cost, business requirements, technology requirements, and emerging technologies.
- Describe the implications of changing an existing system or adding a new system to a specific area with a broad, high-level understanding of the infrastructure and architecture of systems.
- Help grow the business and/or accelerate software development by applying engineering techniques (e.g., prototyping, spiking, and vendor evaluation) and standards.
- Design solutions that meet current requirements and are adaptable for future enhancements.
- End to End System Ownership
- Own a service end to end by actively monitoring application health and performance, setting and monitoring relevant metrics, and acting accordingly when violated.
- Reduce business continuity risks and bus factor by applying state-of-the-art practices and tools, and writing appropriate documentation such as runbooks and OpDocs.
- Reduce risk and obtain customer feedback using continuous delivery and experimentation frameworks.
- Independently manage an application or service by overseeing deployment and operations in production.
- Maintain data security, integrity, and quality by following company standards and best practices.
- Technical Incident Management
- Address and resolve live production issues by mitigating customer impact within SLA.
- Improve the overall reliability of systems by producing long-term solutions through root cause analysis.
- Track incidents by contributing to postmortem processes and logging live issues.
- Automation and Toil Reduction
- Ensure that infrastructure stays current by reducing technical debt, searching for bottlenecks, and preparing for scaling.
- Reduce the cost of operations and maintenance by leveraging new technologies, automation, and partnering with vendors to stay current.
- Reduce human labor by writing small software features that address availability, scalability, latency, and efficiency.
- Monitoring and Alerting Improvements
- Review and verify the performance of production systems and network infrastructure by continuously monitoring appropriate observability metrics, business KPIs, and capacity planning.
- Improve application reliability by partnering with development teams to advise on setting appropriate observability metrics.
- Systematically identify patterns and underlying issues in complex situations, finding solutions by applying logical and analytical thinking.
- Constructively evaluate and develop ideas, plans, and solutions by reviewing them, objectively considering external knowledge, initiating SMART improvements, and articulating their rationale.
- Continuous Quality and Process Improvement
- Identify opportunities for process, system, and structural improvements (e.g., performance gains) by evaluating current process flows, methods, and standards.
- Design and implement relevant improvements by defining new or adapted process flows, standards, and practices that enable business performance.
- Deliver clear, well-structured, and meaningful information to a target audience using suitable communication mediums and language tailored to the audience.
- Achieve mutually agreeable solutions by staying adaptable, communicating ideas clearly, and practicing active listening.
- Ask relevant follow-up questions to properly engage with the speaker and really understand what they are saying, applying listening and reflection techniques.
- Advise product teams toward technical solutions that meet the functional, non-functional, and architectural requirements by challenging the rationale for application design and providing context in the wider architectural landscape.
- Set a clear direction for technical capability by evaluating and aligning target architecture improvements, reframing architectural designs and decisions for varied stakeholders.
Communication
- Product Stakeholders
- Peers
- Cooperation - Information
- Cooperation - Persuasion
- Cooperation - Persuasion
- Continuous
- Frequent
- Frequent
Level of Education
- Bachelor's degree in a relevant field
Years of Relevant Job Knowledge
- Broad Job Knowledge (3 - 5 years)
Requirements of Special Knowledge/Skills
- Building Software Applications
- Software System Design
- End to End System Ownership
- Technical Incident Management
- Operations (Automation & Toil)
- Observability (Monitoring & Alerting)
- Critical Thinking
- Continuous Quality & Process Improvement
- Effective Communication
- Architectural Guidance