Roles & Responsibilities
Software Engineer
Software Engineer - L3

πŸ§‘β€πŸ’» Software Engineer - Level L3 (2-3 Years Experience)

πŸ› οΈ Technical Skills

πŸ“ Code Quality & Testing

πŸ–ŠοΈ Writing Code

  • Consistently writes production-ready code that is easily testable, easily understood by other developers, and accounts for edge cases and errors.
  • Understands when it is appropriate to leave comments but biases towards self-documenting code.
  • Evaluates and implements design patterns where required and actively improves and deprecates old code.
  • Involves actively in database schema design and code optimizations.

πŸ§ͺ Testing

  • Understands the testing pyramid, and writes unit tests as well as higher level tests in accordance with it.
  • Always writes tests to handle expected edge cases and errors gracefully, as well as happy paths.
  • Integration testing and suite-based testing are expected at this level.

πŸ”„ PR Practices

  • Follows PR practices defined by the engineering team, such as PR size, PR description, PR merge time, etc.
  • Conducts thorough reviews of PRs and suggests 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.).
  • Reviews peer documentation and suggests changes.

🐞 Debugging & Observability

πŸ”Ž Debugging

  • Proficient at using systematic debugging to diagnose all issues located to a single application.
  • Uses systematic debugging to diagnose cross-service issues, sometimes with help from more senior engineers.

🚨 Monitoring

  • Is aware of the engineering organization's monitoring philosophy.
  • Helps tune and change the monitoring on their team accordingly.
  • Is aware of the operational data for their team’s domain and uses it as a basis for suggesting stability and performance improvements.

πŸ—οΈ Software Design & Architecture

🧠 Understanding Code

  • Understands their team's domain at a high level and can gather sufficient context to work productively within it.
  • Has expertise in a portion of their team's domain.

πŸ›οΈ Software Architecture

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

πŸ›‘οΈ Security

  • Approaches all engineering work with a security lens.
  • Actively looks for security vulnerabilities both in the code and when providing peer reviews.

πŸš€ Delivery & Effectiveness

πŸ“¦ Incremental Value Delivery

πŸ”¨ Work Breakdown

  • Before beginning work, reviews tasks critically and ensures they’re appropriately sized for incremental delivery. Does so independently.
  • Knows when to consult (e.g. dependencies, assumptions).
  • Can explain and rationalize a work breakdown to the team, relating it to prioritization.

🎯 Prioritisation, dependencies

  • Ensures tasks are prioritised correctly, identifies and confirms their own and their counterpart's commitments upon inbound and outbound dependencies.

πŸŒͺ️ Dealing with Ambiguity

  • Handles risk, change, and uncertainty within their personal scope of work effectively.
  • 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 atleast a week prior.
  • Max Defelection of delivery time (10%)

πŸ’° Economic Thinking

  • When taking action, weighs cost and value in order to take the most economic action.
  • Uses this thinking in their own work, and to make suggestions to teammates.

🀝 Feedback, Communication & Collaboration

πŸ”„ Feedback

  • Delivers praise and constructive feedback to their team, teammates, and manager in a useful manner.
  • Delivers feedback to their team's business stakeholders when opportunities arise.
  • 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

  • Communicates effectively, clearly, concisely in written and verbal form on both technical and non-technical subjects.
  • Actively listens to others and ensures they are understood.

πŸ“š Knowledge Sharing

  • Understands their team's domain, shares their knowledge frequently with their teammates and contributes to their team's documentation.
  • Watches out for opportunities to share knowledge and encourages others to do the same.
  • Actively participate and holdcode walkthroughs with peers and maintain track of horizontal and vertical learning

🀝 Collaboration

πŸ‘₯ Teamwork

  • Often helps their teammates overcome obstacles, resolve blockers, and complete work tasks.

πŸ’Ό Relationship building

  • Works to build strong relationships with their teammates, manager, as well as their teams' relevant business stakeholders.

πŸ•ŠοΈ Handling Disagreement

  • Encourages their teammates to openly share their opinions and contribute to discussions in a respectful manner.
  • Approaches disagreement 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 decisions and outcomes.

🧭 Driving Alignment

  • Has conversations based on company strategy and engineering organization priorities with their teammates to ensure team alignment.
  • Strongly oriented towards goals and ensures their team is continuously working towards their shared goals.

πŸ’­ Process Thinking

  • Thinks about team practices and processes and regularly discusses improvements with their team, sometimes collaborating with others to improve engineering organizational practices and processes.

🀝 Facilitation

  • Facilitates discussions within their team, ensuring everyone has an opportunity to share their opinion and be heard.

πŸ‘¨β€πŸ« 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 thorough understanding of their team's domain, and how it contributes to overall business strategy.
  • Has a basic understanding of adjacent teams' business domains.

πŸš€ Strategic Work

  • Understands the company's engineering strategy.
  • Usually involved in discussions about the implications for their team.

🎯 Product Thinking

  • Thoroughly understands the business model in relation to their current product focus area.
  • Sometimes participates in roadmap feedback with the product team.
  • Often interacts with stakeholders and understands the requirement from the stakeholder perspective.