Im Gespräch mit einem Engineer: Einblicke in modernes SAST
Snyk Team
18. Mai 2022
0 Min. LesezeitWir haben uns mit Saar Kuriel, Senior Software Engineer aus Tel Aviv, zusammengesetzt, um mehr über die spannenden Projekte zu erfahren, an denen er im Snyk Code-Team arbeitet.__Außerdem sprachen wir über seinen Karriereweg, Projektmanagementmethoden, gemeisterte technische Herausforderungen und seine Zukunftspläne.

Jess Katz (JK): Hallo Saar! Ich freue mich sehr darauf, mehr über Ihre Erfahrungen in der Softwareentwicklung und das neue Projekt zu erfahren, an dem Sie kürzlich begonnen haben zu arbeiten. Bevor wir loslegen: Können Sie mir ein wenig über sich erzählen und wie Sie zu Snyk gekommen sind?
Saar Kuriel (SK):Gerne! Bevor ich zu Snyk kam, habe ich drei Jahre bei Wix gearbeitet. Ich begann als Frontend-Engineer und wurde zwei Jahre später Engineering Manager eines Teams mit sechs Entwicklerinnen und Entwicklern. Nachdem ich ein Jahr in dieser Führungsrolle gearbeitet hatte, entschied ich mich, den Produktbereich und den Karriereweg zu wechseln, den ich verfolgte. Ich wollte mich auf die technische Seite der Softwareentwicklung konzentrieren und gleichzeitig etwas im Unternehmen bewirken – am liebsten bei einem bahnbrechenden, innovativen B2B-Produkt. Ich begeistere mich für Cybersicherheit und wusste, dass die Produkte von Snyk für ihre Qualität bekannt sind. Deshalb entschied ich mich, mich zu bewerben. Derzeit arbeite ich an Snyk Code, unserem revolutionären, entwicklerorientierten SAST-Tool.
JK: Wie war für Sie der Wechsel von der Position als Engineering Manager zu einer Rolle als Individual Contributor (IC) bei Snyk?
SK:Im Laufe meiner Karriere habe ich viel darüber nachgedacht. Ich weiß, wie man andere anleitet und fördert, und wollte schon immer Einfluss auf Entscheidungen nehmen. Aber ich mag auch meinen Beruf und möchte meine technischen Fähigkeiten und die tägliche Arbeit am Code nicht verlieren. Im Laufe meiner Karriere erhielt ich von Führungskräften die Rückmeldung, dass ich gute Führungsqualitäten habe und den Weg ins Management einschlagen sollte – also tat ich das. Während dieser Zeit hatte ich jedoch oft das Gefühl, meine Arbeit nicht richtig zu priorisieren. Wenn ich weiter programmierte, hatte ich das Gefühl, nicht genug für das Team zu tun. Programmierte ich gar nicht, war ich mit mir selbst unzufrieden. Dadurch wurde mir klar, dass ich einen anderen Weg finden musste, und ich entschied mich für die IC-Rolle.
In meiner jetzigen Rolle möchte ich fachlich versiert und für die Systeme meiner Gruppe verantwortlich sein, die Anforderungen an die Softwareentwicklung im Unternehmen vertreten, unser Produkt verbessern und weiterentwickeln und Risiken eingehen können, während ich zugleich weiß, wie sich Fehlschläge abfedern lassen. Außerdem möchte ich andere Teammitglieder fördern, damit sie sich wohl dabei fühlen, ihre Meinung zu äußern, und erkennen, dass sie etwas in der Gruppe bewirken. Um diese Ziele zu erreichen, legten mein Engineering Manager und ich einige Ziele und Schlüsselergebnisse (OKRs) fest: etwa ein neues Teammitglied zu betreuen, die SLIs der Teamsysteme zu verbessern und mich mit Menschen auszutauschen, die ähnliche Ziele verfolgen, um voneinander zu lernen. Mein Manager zeigte mir, an wen ich mich wenden konnte, half mir zu definieren, was ich von mir selbst erwarte, und setzte Meilensteine für meine größeren Ziele. Diese besprechen wir jede Woche in unserem 1:1.
JK: Was ist eines der anspruchsvollsten Projekte, an denen Sie gerade arbeiten?
SK:Ich überarbeite derzeit eine der zentralen Komponenten von Snyk Code, unserem fortschrittlichen Static Application Security Testing (SAST)-Tool. Da ich an einer bestehenden Komponente arbeite, muss ich mich in die Person hineinversetzen, die den Code ursprünglich geschrieben hat, und mögliche künftige Probleme verhindern. Beim Lesen des Codes anderer lernt man immer dazu.
Diese Komponente ist entscheidend, weil sie die Kommunikation mit allen Arten von SCM-Systemen (Source Code Management) übernimmt und Repositories für die Analyse verarbeitet, bevor diese die KI-Regel-Engine erreichen. Eine der herausragenden Funktionen von Snyk Code ist die Geschwindigkeit der Analyse – und ich möchte nicht derjenige sein, der das ändert. Sie können sich vorstellen, wie viel Verantwortung ich bei diesem Projekt empfinde, vor welcher Herausforderung ich stehe und wie viel Vertrauen mir entgegengebracht wird.
Gemeinsam mit dem Architekten unseres Teams und weiteren Engineers haben wir die neuen APIs skizziert und unsere Roadmap entworfen. Dabei besprachen wir die Vor- und Nachteile der verschiedenen Ansätze, mögliche Risiken und wie wir sie abfedern können. Außerdem analysierten wir, warum die Dinge derzeit so umgesetzt sind, damit wir den Kontext und bestehende Funktionen nicht aus den Augen verlieren.
Wir haben auch verschiedene Technologien in Betracht gezogen und beschlossen, zu experimentieren. Wegen seiner Einfachheit und der integrierten Möglichkeiten zur Parallelisierung entschieden wir uns für Go als Programmiersprache. Zuvor hatte ich keinerlei Erfahrung mit Go – das war also eine spannende Herausforderung.
JK: Auf welche Herausforderungen sind Sie bisher gestoßen?
SK:Das wird eine technische Antwort. Eine Herausforderung war die Frage, wie wir den aus dem SCM geklonten Quellcode am besten zwischenspeichern können, um weniger auf das SCM zugreifen und die Gesamtdauer der Analyse verkürzen zu müssen. Die Lösung muss auch in einer On-Premise-Umgebung funktionieren, die möglicherweise keinen Internetzugang hat, und bei Bedarf skalierbar sein, da Codesicherheit zu den obersten Prioritäten unserer gemeinsam genutzten Cloud-Infrastruktur zählt.
Nach einigen Untersuchungen entschieden wir uns für flache Klone mit einer bestimmten Commit-SHA (Secure Hash Algorithm). Wir speichern sie in MongoDB und nutzen GridFS, um große Quellcodedateien unkompliziert verarbeiten zu können und bei den gespeicherten Inhalten flexibel zu bleiben. Vor dieser Entscheidung prüften wir Redis, doch dessen Größenbeschränkung für Werte und die Cache-Verdrängung passten nicht zu unseren Anforderungen. Auch EFS zogen wir in Betracht, doch die Bereitstellung und Skalierung in unserer On-Premise-Lösung wäre schwierig gewesen.
Unser Team und Snyk insgesamt legen Wert auf ein ausgewogenes Verhältnis zwischen Innovation, Agilität und Qualität, um skalierbare und zuverlässige Software zu entwickeln. So haben wir vor Kurzem eine Funktionalität innerhalb dieser Codebasis in einen separaten Service umgewandelt. Sie erfüllt bereits eine eigenständige Aufgabe, völlig unabhängig von den übrigen APIs. Warum sie also nicht entkoppeln und die Codebasis dieses Projekts agiler machen?
JK: Was begeistert Sie an diesem Projekt am meisten?
SK:Vieles! Zunächst einmal unterstützen mich meine Manager voll und ganz dabei, zu experimentieren und Dinge zu diskutieren, damit wir alles richtig machen. Es gibt keinen Termindruck, sodass ich mich konzentrieren und klar denken kann. Außerdem bin ich genau dort, wo ich beruflich sein möchte, und beschäftige mich mit Bereichen, in denen ich noch nie gearbeitet habe. Ich trage zu einer Initiative bei, die unser Produkt revolutioniert. Und all das erlebe ich mit der Unterstützung und Anleitung meines großartigen Teams!
So früh bei Snyk an einem solchen Projekt arbeiten zu können, hat mir wirklich gezeigt, dass meine Manager mir vertrauen und meine große Motivation sehen, einen Beitrag zu leisten. Gerade als Engineer ist es sehr wichtig, von Anfang an mit der eigenen Führungskraft an einem Strang zu ziehen. Durch dieses Projekt konnte ich meine Meinung einbringen, experimentieren und außerdem eine neue Programmiersprache lernen – großartig!
Eine neue Sprache zu lernen, kommt nicht jeden Tag vor. Manche Engineers finden das vielleicht anstrengend, andere – wie ich – lieben es. Unsere Welt entwickelt sich ständig weiter, jeden Tag kommen neue Technologien und Herausforderungen hinzu. Deshalb ist es wichtig, unsere Fähigkeiten auf dem neuesten Stand und möglichst breit gefächert zu halten, damit wir für jede Situation das passende Werkzeug kennen. Und beim Lernen etwas Wertvolles zu entwickeln, statt nur eine Beispiel-App zu schreiben, ist wirklich spannend.
JK: Wie würden Sie die Engineering-Kultur bei Snyk insgesamt beschreiben?
SK:Das Beste an Snyk und insbesondere an der Engineering-Kultur ist die Transparenz, die wir hier erleben. Wir haben Einblick in fast alles, was im Unternehmen passiert. Dadurch können wir uns leicht an verschiedenen Projekten beteiligen und verstehen, was in den unterschiedlichen Abteilungen vor sich geht. Snyk entwickelt sich von einem kleinen Start-up zu einem großen Unternehmen, und deshalb wird die Engineering-Kultur gerade erst aufgebaut. Das macht es umso reizvoller: Sie können zu diesem Prozess beitragen und wirklich etwas bewirken. Sie können Ihre Spuren hinterlassen und viel von anderen lernen.
Möchten Sie Ihre Karriere bei Snyk gestalten? Entdecken Sie unsere offenen Stellen und erfahren Sie mehr darüber, wie das Leben bei Snyk aussieht.
