Veröffentlicht am 03-03-2019
Comp Features-Team zeigt Samara-Feiertags-Swag. (Ich, Zach, Ian, Casey)

8 Monate Software Engineering in San Francisco

Für alle, die über meinen ersten Monat in meinem neuen Job gelesen haben, ist hier eine Überraschung: Ich habe gerade meine 8-Monats-Marke überschritten! Ich wollte ein Spiegelbild für mich zusammenstellen und auch diejenigen auf den neuesten Stand bringen, die neugierig sind, wie es war, als Software-Ingenieur in einem San Francisco-Technologieunternehmen in San Francisco zu leben und zu arbeiten. Die Arbeit war ein großes Problem, aber am Ende des Tages ist das Leben gut. Ich bin dankbar, dass ich meine Zeit ausbalancieren konnte. Ich maximiere mein Lernen und meine Beiträge für mein Team, während ich immer noch Zeit mit Freunden und Familie verbringe.

Also, was habe ich gemacht? Mit Samsara Dinge bauen

Was ist Samsara?

Wir sind ein Unternehmen, das eine Plattform für angeschlossene Sensoren aufbaut. Denken Sie an Alexa oder Google Home. Abgesehen von einer kleinen Kiste neben meinem Bett, mit der ich das Licht mit meiner Stimme einschalten kann, ist es Hunderttausende Kisten von ähnlicher Größe, die in Fahrzeuge und Fertigungslinien für die Welt eingebaut sind reibungsloser laufen. Von GPS, Beschleunigungsmesser und Thermometer bis zu Computersichtgeräten, Mikrofonen, Infrarot- und Vibrationssensoren - Sie nennen es. Wir packen diese Sensoren in tragbare Boxen und bauen darauf eine Datenplattform auf. Als Ergebnis können unsere Kunden Daten aus der realen Welt messen und aufzeichnen und sogar Befehle ausgeben, sodass das, was sie auf der ganzen Welt kreiert oder bewegt haben, schneller, billiger und einfach besser ist.

Dies ist eine unserer „Boxen“ - eine VG34, kurz für Vehicle Gateway. Es zeichnet GPS, Motordiagnose, Beschleunigungsmesser und andere Daten auf und ist etwa so groß wie ein großes Mobiltelefon. Das Einrichten in praktisch jedem Fahrzeug dauert 2 Minuten.

Viel cooler als Alexa. Aber um fair zu sein - Alexa hilft mir, bei Dinnerpartys Jazz-Playlists zu spielen.

Mein Team

Seit ich im letzten Juli angefangen habe, arbeite ich in einem großartigen Team: Compliance.

Insgesamt ist Compliance bei Samsara dafür verantwortlich, Werkzeuge zu entwickeln, mit denen unsere Flottenkunden die gesetzlichen Bestimmungen, insbesondere das ELD-Mandat, einhalten können. Dieses Mandat wurde geschaffen, um die Sicherheit der Fahrer auf der Straße zu gewährleisten, und definiert im Wesentlichen, wie lange Autofahrer arbeiten können und in welchen Situationen bestimmte Ausnahmen gemacht werden können. Unternehmen, die sich nicht an die Vorschriften halten, werden möglicherweise mit einer Geldstrafe belegt oder verlieren ihr Betriebsrecht.

Bei Samsara teilen wir unsere Compliance-Arbeit in zwei Teams auf. Compliance Foundations baut Systeme auf, mit denen Compliance-Sensordaten skalierbar und genau erfasst werden können. Kompatibilitätsfunktionen (das Team, in dem ich Mitglied bin) arbeiten mit Funktionen, um die gespeicherten Daten abzurufen und Berechnungen durchzuführen, damit unsere Kunden leicht die Konformität nachweisen können

Samsara-Konformitätslösung für elektronische Aufzeichnungsgeräte (ELD)

Wir haben auch andere Produkt-Engineering-Gruppen sowie Infrastruktur-Teams. Ich arbeite viel mit anderen Teams in der Core Fleet-Branche zusammen und ich arbeite ein bisschen mit den Infrastruktur-Teams zusammen. Ich arbeite jedoch nur selten mit Ingenieuren aus den anderen Produktentwicklungsbranchen. Bisher hat diese Struktur der Konstruktionsorganisation für uns gut funktioniert, da wir unsere Teams klein und fokussiert halten können.

Jeder in meinem Team sitzt nahe beieinander, so dass es einfach ist, spontane Meetings durchzuführen, wenn wir einen Kontext zu einem Projekt gewinnen müssen, bei dem wir uns überschneiden:

Jonté, allwissende Compliance-Funktionen, erläutert einige Kundenanforderungen für ein bevorstehendes Projekt.

Aber wir wissen auch, wie wir uns entspannen und Spaß haben können, wenn wir eine Pause brauchen:

Wir sind während eines Teamausflugs zu Alamere Falls gewandert. (Ian machte ein Nickerchen auf einem Baumstamm.)

Kundenorientierung

Wenn Sie kein Lkw-Fahrer, Flottenmanager oder FMCSA-Regulierer sind, kann es schwierig sein, die Produkte meines Teams aus der Sicht des Benutzers zu verstehen. So fühlte ich mich, als ich anfing. Aber eines der großartigsten Dinge, die ich an Samsara schätze, ist, dass es wirklich einfach ist, Zeit mit tatsächlichen Kunden zu verbringen. Wir haben ein großartiges Design- und Produktbetriebsteam, das Besuche auf den eigentlichen Truck Yards organisiert, damit wir uns mit den Inhabern dieser Unternehmen treffen und deren Feedback hören können. Ich habe eine dieser Möglichkeiten genutzt, um kürzlich einen Kunden in Stockton zu besuchen, und ich konnte sehen, wie wertvoll meine Arbeit für sie ist.

Es war eine lange Fahrt nach Stockton. Sujay war der andere Ingenieur, der auf die Reise kam. (Nicht abgebildet: Haley, Corbin, Jenn)Zwei Kühlwagen mit Samsara AG24s und EM-21 Temperatursensoren

Bei diesem Kundenbesuch habe ich viel gelernt, indem ich Flottenmanager gefragt habe, wie sie den ganzen Tag arbeiten und wie sie die Plattform von Samsara für wichtige Aufgaben nutzen. Wir haben eine Reihe von Schmerzpunkten bestätigt, über die wir Theorien hatten, und wir haben sogar einige ihrer Probleme vor Ort gelöst, indem wir sie über neue Funktionen unterrichtet haben. Insgesamt eine sehr lustige und wertvolle Erfahrung.

Interessante Ingenieurarbeit

In technischer Hinsicht erstellt und verwaltet das Compliance-Team einige interessante Datenstrukturen und Architekturen.

Es gibt zum Beispiel ein Zustandsmaschinensystem, das wir als "Rules Engine" bezeichnen, mit dem wir alle Regeln modellieren, die die Regierung für ELD-Benutzer (Electronic Logging Device) festgelegt hat, damit die Fahrer die Konformität behalten können. Zach und Casey haben die Rules Engine kontinuierlich durchlaufen, um unseren Kunden Informationen zu Verstopfungen auf Hunderttausenden von Geräten zur Verfügung zu stellen. Das Compliance Foundations-Team hat einen neuen Mikrodienst aufgebaut, um Ereignisse zu verarbeiten, die von der ELD aufgezeichnet wurden. Das Features-Team hat diesem Dienst im Laufe der Zeit neue Algorithmen und Funktionen hinzugefügt. Ian hat an vielen Front-End-Funktionen und Re-Designs gearbeitet, um unsere Benutzeroberfläche so intuitiv und schmerzlos wie möglich zu gestalten. Ich habe auch einige neue API-Endpunkte für den Export von Compliance-Daten entwickelt, die letztendlich zum Entwickler-Umfeld von Samsara beitragen.

Alle diese Projekte werden mit unserem Tech-Stack von Golang im Backend und Typescript im Frontend erstellt. Wir stellen neue Funktionen basierend auf einem Ansatz mit Feature-Flag bereit und verfolgen Metriken in Datadog und AWS Cloudwatch.

gewonnene Erkenntnisse

Schätzungen geben

In den letzten Monaten habe ich gelernt, wie man als guter Softwareingenieur bessere Einschätzungen macht. Beim Start des Jobs würde ich wirklich grobe Schätzungen geben, die oft zu aggressiv waren, weil 1) ich die relevanten Codeseiten nicht genug auslegte und 2) Annahmen machte, wie viele Stunden pro Woche ich tatsächlich zum Code bekomme und über Codierung nachdenken.

Um sich als Unternehmen besser mit dem Anwendungsbereich zu befassen, hat das Entwicklungsteam vor kurzem ein strukturierteres RFC-Implementierungsdokument (Request for Comments) eingeführt. Wir alle verwenden dieses Dokument, wenn wir ein neues Projekt beginnen, so dass verschiedene Stakeholder in der Anfangsphase des Projekts Design-Input liefern können.

In Bezug auf die zeitliche Begrenzung meines tatsächlichen Arbeitsaufwands habe ich angefangen, „Engineering-Wochen“ zu verwenden, die sich auf 2–3 Tage pro Woche der eigentlichen Codierungszeit beziehen. Dienstags gibt es viele Team- und Produktbesprechungen, während Montags und Freitags häufig mit Kandidateninterviews und anderen Unterbrechungen beschäftigt sind. Wir versuchen, mittwochs und donnerstags als Nicht-Meeting-Tage beizubehalten, jedoch werden unweigerlich einige zusätzliche Verpflichtungen während der ganzen Woche besprüht, und so kommen wir zu den 2-3 Tagen der eigentlichen Programmierarbeit pro Woche. Als Zach, der Leiter meines Ingenieurteams, mir beigebracht hat, diesen Weg zu schätzen, klang es zunächst ein wenig seltsam, dass nur etwa die Hälfte meiner Woche mit der eigentlichen Codierung verbracht wurde. Nachdem er jedoch den wirklichen Ablauf eines Projekts erfahren hatte, begann er mit einem viel sinn. Die Besprechungszeit, die wir nicht als "Kodierungszeit" zählen, trägt wesentlich zum Erfolg eines Projekts bei, indem sichergestellt wird, dass das Projekt gut gestaltet ist und wir keine Wegwerfarbeit leisten.

Die Kraft eines sauberen, wiederverwendbaren Codes

Eines der beliebtesten Dinge, an denen ich gearbeitet habe, war das Erstellen einer internen Bibliothek in Typescript, die eine Vielzahl von getesteten Funktionen bereitstellt, um die Arbeit mit Zeitbereichsdatenstrukturen zu erleichtern. Wir legen Wert darauf, unseren Code zu kommentieren und zu dokumentieren. Daher enthält jede dieser Bibliotheksfunktionen Kommentare, um zu beschreiben, wie die einzelnen Funktionen ordnungsgemäß aufgerufen werden. Ich musste damals ein paar Tage Umweg von meinem Projekt nehmen, um diese Bibliothek zu erstellen, aber seitdem hat es eine Menge Zeit für andere Teammitglieder gespart, was großartig ist. Ich freue mich darauf, wiederverwendbare und nützliche Tools für mein Team zu erstellen, die uns beim Skalieren unterstützen.

Teilen Sie Arbeitsinteressen mit Ihrem Manager

Zunächst müssen Sie über Ihre Interessen nachdenken und diese so formulieren, dass Sie sogar etwas zu teilen haben. Wenn Sie dies jedoch mit Ihrem Vorgesetzten besprechen, können Sie sich in Ihrer Karriere weiterentwickeln. Ich bin dankbar für die großartigen Manager von Samsara, die dazu beitragen, dass das Team konzentriert bleibt, so dass wir schnell auf wichtige Funktionen eingehen können, aber auch jedem Einzelnen die Möglichkeit geben, an Dingen zu arbeiten, die ihn interessieren.

Ich habe meinen großartigen Manager Derrek mit diesem aufrichtigen Bild überrascht.

Nachdem ich zum Beispiel an einem API-Projekt gearbeitet hatte, wurde mir klar, dass ich wirklich mehr an der Zukunft des Samsara-Entwickler-Ökosystems arbeiten wollte. Mein Manager, Derrek, sprach mit mir über Ideen und war eine großartige Resonanz, wenn es darum ging, bedeutungsvolle Arbeit zu identifizieren, die ich in diese Richtung übernehmen kann.

Mehr Bilder

Alle diese Bilder wurden während geselliger Zusammenkünfte in Samsara gemacht. Einige von ihnen waren unterhaltsame Networking-Events, andere waren selbst organisierte Club-Treffs und das letzte Foto wurde während einer unserer vierteljährlichen Hackathons gemacht.

Samsara-Lebkuchenhaus-Wettbewerb.Casey gegen Zach in 3D Tic Tac Toe.Brettspiel soziale Nacht!Samsara beendet den Startraum.Adviths experimenteller Sportverein genießt einen guten altmodischen VölkerballPuzzles, um uns zu beschäftigen, während wir auf den Einsatz warten.Unser erstes Super Smash Bros Ultimate Turnier.Sushi-Making Networking-Event, veranstaltet in unserer Cafeteria :)Der tägliche Plank-Club um 15.00 Uhr.Das Ingenieurteam freut sich über American Truck Simulator in unserem neuen Schulungszentrum.

Einen Schritt zurücktreten

  • Samsara fügt der Plattform jedes Jahr 200.000 neue Geräte hinzu.
  • Wir haben jetzt mehr als 5.000 Kunden weltweit.
  • Wir sammeln jedes Jahr 100 Milliarden Sensordatenpunkte.
  • Die Unternehmensbewertung hat sich seit meinem Beitritt auf 3,6 Milliarden Dollar verdreifacht.
  • Wir erweitern unsere Büros in San Jose, Atlanta und Großbritannien.

Was kommt als nächstes?

  • Ich werde für ein paar Monate nach Atlanta ziehen, um neue Ingenieure einzustellen und an Bord zu bringen!
  • Das Compliance-Funktionen-Team wächst! (Hallo Nathan.)
  • Ich helfe dabei, die Grundlagen zu schaffen, damit unser neuer App-Marktplatz in Zukunft florieren kann :)

Zu guter Letzt rufen Sie meine Mitbewohner, meine Homies und meine erstaunliche Freundin dazu auf, das Leben außerhalb der Arbeit unterhaltsam, gesund und schön zu gestalten.

Hausgemachte Knödel für das chinesische Neujahr!

*** ****************

Wenn Sie nach einem Software-Engineering-Job suchen (und selbst wenn Sie nicht speziell an Samsara interessiert sind), dann melden Sie sich bei mir, denn ich würde Ihnen gerne mit Tipps zum Lernen, Interviewtipps und Networking helfen!

Fühlen Sie sich frei, mich auf LinkedIn zu kontaktieren.

*** ***************

Besonderer Dank geht an Advith, Alex, Zach, Casey, Derrek, Ryan, Priscilla, Sarah, Sujay und Elisha für die Hilfe bei Änderungen!

Siehe auch

So führen Sie GETH aus einem Docker-Container aus