Roles & Responsibilities
Software Engineer
Software Engineer - L2

πŸ§‘β€πŸ’» Software Engineer - Level L2

πŸ› οΈ Technical Skills

πŸ“ Code Quality & Testing

πŸ–ŠοΈ Writing Code

  • Consistently writes functions that are easily testable, easily understood by other developers, and accounts for edge cases and errors.
  • Writes comprehensive function and class documentation.
  • Conducts impact analysis beforehand with assistance from a senior engineer for any modifications.

πŸ§ͺ Testing

  • Understands the testing pyramid and writes unit tests in accordance with it, as well as higher level tests with guidance from more senior engineers.
  • Always tests expected edge cases and errors, in addition to the happy path.

πŸ”„ PR Practices

  • Adheres to PR practices defined by the engineering team, including PR size, PR description, PR merge time, etc.
  • Conducts thorough reviews of PRs and provides constructive suggestions for changes and modifications.

πŸ“š Documentation

  • Follows the documentation process set by the organization and ensures it is reviewed by seniors before publishing. This includes in-code comments and external documentation (Confluence, Google Docs, etc.).

🐞 Debugging & Observability

πŸ”Ž Debugging

  • Proficient at using systematic debugging to diagnose all issues within a single application.
  • Capable of using systematic debugging to diagnose cross-service issues, sometimes with assistance from more senior engineers.

🚨 Monitoring

  • Understands the engineering organization's monitoring philosophy and is aware of the operational data for their team’s domain.
  • Expected to have proficiency with monitoring tools at this level. Also expected to set up basic alerts for monitoring.

πŸ—οΈ Software Design & Architecture

🧠 Understanding Code

  • Understands a portion of the team's domain, can gain sufficient context to work productively in that portion.
  • Actively participates in system design exercises and documentation at this level is expected.

πŸ›οΈ Software Architecture

  • Consistently designs functions/components/services that are aligned with the overall system architecture.
  • Utilizes abstractions and code isolation effectively.

πŸ›‘οΈ Security

  • Understands the importance of security.
  • Familiar with common exploits such as SQL injection, XSS, and others and ensures their code prevents these exploits.
  • Utilizes this knowledge to ask more senior engineers for help on making decisions that may have security implications.
  • Should actively follows secure coding practices atleast on the tech stack and ensures the same practices are followed within the team.

πŸš€ Delivery & Effectiveness

πŸ“¦ Incremental Value Delivery

πŸ”¨ Work Breakdown

  • Before beginning work, reviews tasks critically and ensures they’re appropriately sized for incremental delivery.
  • Typically does so independently, occasionally with help from teammates or manager.

🎯 Prioritisation, dependencies

  • Ensures tasks are prioritised correctly, and that dependencies are noted.
  • Typically does so independently, occasionally with help from teammates or manager.

πŸŒͺ️ Dealing with Ambiguity

  • Usually handles risk, change, and uncertainty within their personal scope of work effectively.
  • Usually decides and acts responsibly without having the total picture during routine business, and when in high pressure situations.

πŸ“† Self Organization

⏳ Reliability, delivery accountability

  • Ensures their commitments are realistic, understands their priority and urgency, and delivers upon them accordingly.
  • Anticipates and communicates blockers, delays, and cost ballooning for their work before they require escalation.
  • Ensures expectations within their team are clarified between all parties involved.
  • Communicate timelines slip at least a week prior.
  • Max Deflection of delivery time (15%)

πŸ’° Economic Thinking

  • When taking action, weighs cost and value in order to take the most economic action with help from more senior engineers.
  • Sometimes uses this type of thinking to make suggestions to teammates. (Economic thinking atleast in term of system resources and cloud resources if not orginazation resources).

🀝 Feedback Communication Collaboration

πŸ”„ Feedback

πŸ—£οΈ Delivering Feedback

  • Delivers praise and constructive feedback to their team, teammates, and manager in a useful manner.

🎧 Seeking and Receiving Feedback

  • Actively seeks out feedback from their teammates and manager, and works to use feedback that they receive as a tool for growth.

πŸ“£ Communication

πŸ’¬ Effective Communication

  • Usually communicates effectively, clearly, concisely and in an audience-oriented way in written and verbal form both technical and non technical subjects, to their teammates.
  • Actively listens to others and ensures they are understood.
  • Pays attention to nonverbal communication.

πŸ“š Knowledge Sharing

  • Understands their work domain, shares their knowledge frequently with their teammates and contributes to their team's documentation.
  • Watches out for opportunities to share knowledge.

🀝 Collaboration

πŸ‘₯ Teamwork

  • Sometimes helps their teammates overcome obstacles, resolve blockers, and complete work tasks.
  • Gives or shares credit where due.

πŸ’Ό Relationship building

  • Works to build strong relationships with their teammates, manager, and product counterpart.

πŸ•ŠοΈ Handling Disagreement

  • Openly shares their opinions and contributes to discussions in a respectful manner.
  • Approaches disagreement with their teammates non-defensively with inquisitiveness.
  • Uses contradictory opinions as a basis for constructive, productive conversations.
  • Is open to changing their perspective and plans based on others' input.

πŸŽ–οΈ Leadership

πŸ€” Decision Making

  • Strives to be objective and reflects on their own biases when making decisions.
  • Holds themselves accountable for decision and outcomes.

🧭 Driving Alignment

  • Has conversations based on company strategy and engineering organization priorities with their teammates when appropriate.
  • Strongly oriented towards goals and works towards their team's goals.

πŸ’­ Process Thinking

  • Regularly thinks about team practices and processes and proposes improvements in retrospectives or through other channels.

🀝 Facilitation - NA

πŸ‘¨β€πŸ« Mentoring

  • Mentors their junior teammates in an open, respectful, flexible, empathetic manner.
  • Seeks out mentoring opportunities specifically to create team redundancy and backfill ability.

🎯 Strategic Impact

πŸ“ˆ Business Acumen

  • Has a basic understanding of their team's domain, and how it contributes to overall business strategy.

πŸš€ Strategic work

  • Understands the organization's engineering strategy.

🎯 Product Thinking

  • Understands product area of focus, how it fits into the overall business, and sometimes makes improvement suggestions for it.
  • Sometimes interacts with stakeholders and understands the requirement from stakeholder perspective.