Zum Hauptinhalt springen

SWE 2 - Software Engineer II

Ich plane, entwerfe und liefere Softwareprojekte autonom und stelle koordinierte Rollouts sowie Kundenwirkungen sicher.

Umfang

Du setzt die Mission und Ziele meines Teams um. Du erweiterst über den Projektumfang hinaus, indem du SWE1s auf ein höheres Niveau hebst, eine gute Code-Qualität förderst, operative Exzellenz praktizierst und die Mission des Teams voranbringst.

scope


Handwerk

Dein Fokus liegt hauptsächlich darauf, die Fähigkeit zu meistern, qualitativ hochwertige Funktionen zu liefern, die frei von auffälligen Fehlern sind und deren Code von anderen leicht gelesen werden kann. Du pflegst und passt deine historischen Beiträge an, um deren Qualität und Erweiterbarkeit zu verbessern. Du bist in der Lage, Produktanforderungen in Code zu übersetzen und Bereiche des Codes zu identifizieren, die schwierig zu entwickeln sind.

Du lernst, wie man Lösungen für Projekte entwirft und architekturiert, an denen dein Team arbeitet. Du erstellst Dokumentation, damit Entscheidungen klar kommuniziert und historisch referenziert werden können, was anderen hilft, auf deinen Beiträgen aufzubauen.

VerantwortungVerhaltensweisen
Technik
  • Ich erweitere mein Wissen über den Projektumfang hinaus und lerne über jedes System oder Bereich des Codes, den mein Team besitzt.
  • Ich schreibe prägnanten, wartbaren Code und Dokumentation mit einer Vorliebe für Einfachheit und stelle sicher, dass er für meine Kollegen lesbar ist.
  • Ich kann unabhängig an jeder Entwicklungsaufgabe arbeiten und liefere den Code pünktlich an den Kunden.
Umfang und Schätzung
  • Ich skizziere und implementiere projektbezogene Lösungen in Zusammenarbeit mit den Projektleitern.
Qualität
  • Ich befolge konsequent Best Practices und identifiziere Lücken oder fehlende Best Practices.
  • Ich setze mich dafür ein, technische Schulden in Bereichen zu reduzieren, die schwer zu entwickeln sind oder in denen Änderungen rechtzeitig geliefert werden müssen.
Operative Exzellenz
  • Ich kann effektiv innerhalb des Bereichs meines Teams in den meisten Bereichen, die wir besitzen, debuggen.
  • Ich benutze Werkzeuge, um datengestützte Entscheidungen zu treffen, indem ich Code für zukünftige Systemüberwachung und Diagnosen instrumentiere.
  • Ich bin zuverlässig während der Rufbereitschaftsrotationen und löse im Allgemeinen Probleme unabhängig.
Design
  • Ich schreibe Projektvorschläge, die die Mission meines Teams vorantreiben.
  • Ich übersetze Produktdesigns in schriftliche technische Spezifikationen.
  • Ich trage zu gut verfassten RFCs für meine Gilde bei.

Kommunikation und Zusammenarbeit

Du trägst zu Planungssitzungen für dein Team mit Produkt, Design und Software bei, indem du sicherstellst, dass die Funktionen, die dein Team übernimmt, Auswirkungen auf den Endkunden haben. Du kommunizierst Optionen, wie dein Team Projekte an das Produkt liefern könnte, und wägt dabei die Kompromisse zwischen Qualität und Geschwindigkeit ab.

Du vertrittst dein Team gut durch die Gilden, Tech Talks, Produktdemos und schriftliche Kommunikation. Du kommunizierst sowohl Erfolge als auch Bedenken offen und zeitnah an deinen Manager oder Teamleiter und detaillierst immer deine Kommunikation mit Daten.

VerantwortungVerhaltensweisen
Autonomie
  • Wenn ich ein neues Gebiet lerne, suche ich input von Kollegen mit Fachkenntnissen in diesem Bereich.
  • Ich frage proaktiv nach Feedback von meinem Manager und meinen Kollegen, nehme es offen an und integriere es, wo nötig.
Verantwortung
  • Ich identifiziere und setze mich für sinnvolle Verbesserungen oder alternative Optionen in Projekten oder während der Projektplanung ein, um eine hohe Qualität und pünktliche Lieferung zu gewährleisten.
  • Ich gebe Schätzungen für meine Arbeit ab, die im Allgemeinen genau sind und in Unterlieferungen aufgeteilt werden können.
Datenorientiert
  • Ich suche Daten, um besser zu verstehen, wie Mitglieder mit dem Produkt interagieren, und reflektiere über meine eigene Nutzung von WHOOP.
  • Ich kommuniziere klar mit analysierten Beweisen und nicht mit unbelegten Annahmen.
Klarheit
  • Ich mache schnell auf Blockaden aufmerksam, kläre Anforderungen und teile meine Bedenken konstruktiv mit.
  • Ich beginne zu verstehen, wie ich technische Themen für nicht-technische Zielgruppen übersetzen kann.
  • Ich nutze mein 1:1-Gespräch mit meinem Manager, um Probleme zu besprechen und mit ihm klare Lösungen zu finden.
Konsens fördern
  • Ich vertraue meinen Teamkollegen und nehme immer gute Absichten an, was mir erlaubt, anderer Meinung zu sein, aber trotzdem zuzustimmen.

Coaching

Du beginnst, die SWE1s in der Nähe deines Teams in ihrem Handwerk durch Projektleitung, Code-Reviews und Designfeedback zu coachen. Du arbeitest eng mit ihnen zusammen, sodass sie deine Handwerkskunst aus erster Hand erleben können.

Du steigerst deinen Einfluss in deinem Team durch zuverlässiges Feedback in Code-Reviews, prägnante und explizite Projektplanung sowie einfühlsames, aber ehrliches Feedback an Einzelpersonen sowohl nach oben als auch nach unten. Du achtest darauf, das Wohlbefinden, die Code-Qualität und die Mission deines Teams im Auge zu behalten.

VerantwortungVerhaltensweisen
Mentoring
  • Ich führe durch mein Beispiel in Bezug auf die Qualität meines Codes und die Zusammenarbeit mit SWE1s, indem ich Feedback gebe, um gemeinsam zu verbessern.
Team Einfluss
  • Ich interviewe Kandidaten für mein Team und die Gruppe und gebe detailliertes und ehrliches schriftliches Feedback.
  • Ich verbessere die Code-Gesundheit des Teams durch zeitnahe Code-Reviews für meine Kollegen.
  • Ich passe meinen Ansatz an und helfe, mein Team fokussiert zu halten, wenn es mit Rückschlägen konfrontiert ist.

Übergang zur SWE 3-Ebene

Du bist seit 18 Monaten auf der SWE2-Ebene und hast mindestens 9 Monate auf Senior-Niveau gearbeitet.

Hier sind einige Bereiche, auf die du dich konzentrieren könntest, um deine Erfahrungen auf die nächste Ebene zu bringen:

  • Du beginnst, Wissen über Teams in deiner Gruppe zu erlangen und identifizierst Gemeinsamkeiten, die genutzt werden können, um die Gruppe zu beschleunigen und die Abstimmung zwischen den Teams voranzutreiben.
  • Du führst ein Projekt, übernimmst die Aufgabe, Produktanforderungen in technische Spezifikationen zu übersetzen, Architekturdiagramme zu erstellen und das Projekt für dein Team in kleinere Teile zu zerlegen. Du hilfst deinem Team, Erfolg zu haben, und hältst eine hohe Qualitätsanforderung für das Ergebnis. Du koordinierst und erstellst einen Rollout-Plan und strebst an, den operativen Erfolg zu maximieren, indem du kleine Lieferungen versendest. Du hältst alle Stakeholder während des Prozesses auf dem Laufenden und sorgst dafür, dass Meilensteine gefeiert werden, sobald sie mit dem Team erreicht werden.
  • Du analysierst technische Schulden innerhalb deiner Gruppe, indem du Risikobereiche identifizierst. Du strebst an, in Bereiche zu investieren, die sich an der Schnittstelle von hoher Schwere und hoher Wahrscheinlichkeit befinden. Du betrachtest die Geschwindigkeit der Entwicklung als Risiko für die Fähigkeit, das Produkt auf den Markt zu bringen, und beginnst, Pläne zur Bewältigung technischer Schulden innerhalb deiner Gruppe zu gestalten und dich für deren Priorisierung einzusetzen.
  • Du versuchst, zu größeren technischen Herausforderungen beizutragen, die die Qualität und Geschwindigkeit deines Stacks erhöhen. Du gewinnst die Unterstützung von Führungskräften in deinem Stack und der Geschäftsführung und treibst die Priorisierung und Planung voran, um sicherzustellen, dass die Initiative erhebliche Auswirkungen hat.
  • Du übernimmst die Verantwortung für das Produktgebiet deines Teams durch proaktive Einbindung in den Mitgliederservice, indem du Unterstützungsdokumentationen erstellst und die Kommunikation im Falle von Serviceausfällen übernimmst. Du evangelisierst die Lösungen deines Teams und teilst Wissen innerhalb der Abteilung.