Branża IT okiem programisty Spotify. Wywiad z Craigiem Spence

Infoshare 2021 startuje już za trzy dni, a jednym z prelegentów, którzy na nim się pojawią jest Craig Spence. Przeprowadziliśmy z nim wywiad z którego dowiecie się jak programista Spotify patrzy na branżę IT, ale także o początkach jego kariery i projektach open-source.

Zacznijmy od pytań dotyczących Twojej ścieżki kariery. Dlaczego zainteresowałeś się programowaniem?

Moja droga do programowania była całkiem interesująca. Spędziłem większość czasu w szkole średniej chcąc zostać muzykiem, a nawet zacząłem studiować muzykę na uniwersytecie i nie miałem zamiaru robić niczego związanego z komputerami. Po semestrze na uniwersytecie zdałem sobie sprawę, że jestem całkowicie pozbawiony motywacji i wyzwań. W końcu zdecydowałem się zrezygnować i dowiedziałem się, że inny lokalny uniwersytet zrobił dyplom z „Inżynierii Systemów Multimedialnych”.

Program ten miał łączyć rygor i strukturę inżynierii z kreatywnymi elementami projektowania dźwięku i grafiki 3D, więc się zapisałem. Jak tylko napisałem swoje pierwsze „Hello world!” w C#, to uzależniłem się od programowania! Zdałem sobie sprawę, że już jako dziecko trochę programowałem, używając LEGO Mindstorms, więc to też wydawało mi się znajome. Od razu wiedziałem, że lubię rozwiązywać problemy z kodem i że wykorzystuje on wiele z tych samych części mojego mózgu, co muzyka. Uwielbiam połączenie kreatywności i złożoności.

Jak wyobrażałeś sobie branżę IT w tamtym czasie?

Myślę, że moja percepcja była taka sama jak wielu ludzi, którzy trafiają do tej branży – zarabianie na pracy przy komputerze przez cały dzień brzmiało jak marzenie. Wiedziałem, że są tam duże możliwości zarobienia dobrych pieniędzy (mam drogi gust jeśli chodzi o gitary), podróżowania i tego typu rzeczy. Nie sądzę, żeby moje studia przygotowały mnie do realiów tej branży. Byłem w miarę dobrze przygotowany do technicznych wyzwań związanych z tworzeniem oprogramowania, ale trochę więcej czasu zajęło mi rozwinięcie inteligencji emocjonalnej i społecznej, która jest niezbędna, by naprawdę odnieść sukces jako inżynier.

Często jest tak, że na swojej drodze spotykamy ludzi, którzy zmieniają nasze postrzeganie. Czy tak było również w Twoim przypadku? Czy spotkałeś kogoś, a może kilka osób, które pokazały Ci szersze spojrzenie na pracę programisty?

Kilka osób przychodzi mi na myśl. Melissa Clark-Reynolds była CEO w startupie, w którym odbywałem swój pierwszy staż. Firma budowała internetowy świat dla dzieci, kładąc nacisk na zrównoważony rozwój i dbałość o środowisko. Nie miałem wiele do czynienia z Melissą na co dzień, ale jej etos i wizja firmy zainspirowały mnie do nauczenia się wiele na temat przecięcia technologii i zrównoważonego rozwoju.

Miałem również szczęście pracować z Emmą Barnes (i teraz z dumą nazywam ją moją bliską przyjaciółką) przez wiele lat. Emma jest jedną z najbardziej wnikliwych osób, jakie znam i postawiła mnie przed wyzwaniem skonfrontowania się z moją uprzywilejowaną pozycją w świecie, a także pomogła mi lepiej zrozumieć ludzką stronę branży technologicznej.

Wierzę, że rozważanie wpływu tego, co budujemy, jest tym, co oddziela „kodowanie” od „inżynierii”, niezależnie od tego, czy jest to wpływ na planetę, na ludzi, z którymi pracujemy, czy na ludzi, którzy używają tego, co budujemy.

Jak postrzegasz dzisiejszą branżę? Co sprawia, że chcesz pracować w IT?

Dzisiejsza branża to złożony system. Wierzę, że technologia jest potężną siłą na świecie i jest w stanie rozwiązać wiele problemów, z którymi boryka się ludzkość. W rzeczywistości ta sama moc może być również wykorzystana do stworzenia zupełnie nowych kategorii problemów. Z tego, co zaobserwowałem, te nowe problemy pojawiają się, gdy ludzie i organizacje nie biorą pod uwagę ogólnego wpływu tego, co i jak budują. Nie powinno być kontrowersyjne sugerowanie, że powinniśmy dbać o wszystkich ludzi i troszczyć się o planetę i wszystko, co na niej żyje. Świat jest skomplikowanym miejscem, a tego bałaganu nie da się tak po prostu wyabstrahować. Musimy zrozumieć ten bałagan i budować rozwiązania, które biorą go pod uwagę. Martwię się o przyszłość, martwię się skutkami tego, co zbudowaliśmy. Ale postanawiam nadal pozostawać wewnątrz systemu i krytykować (i mam nadzieję zmieniać) go od wewnątrz.

ZOBACZ TEŻ:  Continuous Learning w karierze programisty. Historia Damiana Skonecznego

Co przyniosło Ci największy skok w rozwoju? Co sprawiło, że po raz pierwszy poczułeś, że jesteś prawdziwym programistą?

Jeśli piszesz kod, który komputer interpretuje, to jesteś prawdziwym programistą. Dla mnie magicznym momentem było, gdy moje pierwsze linijki kodu uruchomiły się i zobaczyłem „Hello World!”. To skierowało mnie na kurs, którego nigdy nie mogłem przewidzieć, a który zaprowadził mnie na cały świat. Nie wiem, czy postrzegam cokolwiek jako szczególnie ogromny skok naprzód, bardziej jako serię stopniowych ulepszeń, które potęgowały się z czasem. Największą rzeczą, która uczyniła mnie bardziej „efektywnym” programistą było poznanie Abstract Syntax Trees i automatyzacji kodu. Kiedy zaczynasz postrzegać swój kod jako dane i rozumiesz, że możesz manipulować i przesłuchiwać te dane, myślę, że zaczynasz dostrzegać zupełnie nowy zestaw interesujących problemów.

Czym się dziś zajmujesz?

Pracuję w Spotify w jednym z zespołów, które tworzą aplikację desktopową i Web Player.

Co sprawia, że nie czujesz się jak przysłowiowy trybik w wielkiej maszynie pracując w tak dużej organizacji?

Pracuję z grupą niesamowitych ludzi i jesteśmy odpowiedzialni za dostarczenie aplikacji Desktop/Web Player do milionów ludzi. Nad tą częścią Spotify nie pracuje aż tyle osób jakby się wydawało, więc jest wiele możliwości, aby mieć duży wpływ na to co się dzieje. Koniec końców, mam świetną pracę, którą w większości lubię i staram się nie brać tego za pewnik. Myślę, że ważne jest, aby mieć świadomość, że jest się małą częścią wielkiego systemu. Bycie małym nie czyni cię nieistotnym lub mało znaczącym. Systemy są złożone i każda mała część, która ulegnie uszkodzeniu, może mieć rozległe skutki.

Spędzasz dużo czasu nad projektami tworzonymi po godzinach. Jakie są korzyści z pracy nad takimi projektami?

Czasami pojawia się problem, który wydaje mi się naprawdę interesujący, ale nie jest bezpośrednio związany z moją pracą, więc spędzam trochę czasu myśląc o nim, piszę trochę kodu i zazwyczaj udostępniam go w sieci. Projekty open-source mogą prowadzić do nowych przyjaciół i nowych możliwości, ale myślę, że błędem jest oczekiwać, że ktoś będzie robił takie rzeczy. Jestem szczęściarzem, ponieważ nadal naprawdę lubię to, co robię w mojej pracy, ale nadal jest to tylko praca. W przeszłości bywało, że pochłaniało mnie to bez reszty, ale nieustannie staram się być bardziej kompletnym człowiekiem i próbuję znaleźć równowagę.

Obecnie zdarza się, że tygodniami lub miesiącami nie zajmuję się programowaniem poza pracą, a wolny czas spędzam na robieniu innych rzeczy, które sprawiają mi przyjemność. Naprawdę uwielbiam dzielić się tym, nad czym pracuję i angażować się w życie społeczności, a open-source jest jednym ze sposobów, by to robić.

Czy z definicji są to projekty, które nie trafią do szerszej publiczności?

Tego nigdy nie przewidzisz! To jest właśnie wspaniała rzecz w otwartym kodzie źródłowym. Nie ma żadnych oczekiwań, że kiedykolwiek będzie z niego korzystało wiele osób, ale możesz zrobić coś, co jest przydatne tylko dla jednej osoby, a to samo w sobie jest tego warte. Co jakiś czas pojawia się coś, co staje się nieco bardziej popularne, a to wiąże się z własnym zestawem wyzwań. To wszystko jest częścią zabawy.

Interesuje Cię praca nad starszym kodem. O czym warto pamiętać wykonując taką pracę?

Numerem jeden do zapamiętania przy pracy w starym kodzie jest to, że kod działał przez długi czas i trzeba to uszanować. Został on napisany przez człowieka, w danym momencie, z powodu, którego możesz teraz nie znać. Ważne jest, aby spróbować zrozumieć kontekst tego kodu, zanim spróbujesz go zmienić, ponieważ kto wie, na co jeszcze może on wpłynąć. Staraj się pisać testy, aby zweryfikować bieżące zachowanie, oprzyj się chęci spalenia wszystkiego, zmieniaj tylko trochę na raz, jeśli możesz, a wszystko będzie w porządku!

Jeżeli chcecie spotkać Craiga na żywo i usłyszeć jego prelekcje o tytule: „Do You Want To Build A Build Tool?”, to koniecznie wpadnijcie na Infoshare 2021 już 14-15 października! Wszystkie szczegóły znajdziecie tutaj.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
beeupdated
To nie filtry są problemem, a ilość otrzymywanych maili – Damian Szymczuk, twórca BeeUpdated