AplikacjePracaProgramowaniePolecane tematy
Stawiamy na krótkie iteracje i ludzi ponad procesami
Z Maciejem Foksem, Engineering Managerem w firmie Bolt, rozmawiamy o tym: czym zajmuje się i jakie projekty realizuje zespół inżynierów programowania zlokalizowany w centrum rozwoju w Polsce; przy pomocy jakich technologii pracują programiści Bolta; jak wygląda ich środowisko pracy, jakich specjalistów firma poszukuje obecnie do pracy w Polsce oraz o tym, czy o Bolcie możemy mówić dalej jak o startupie.
Zarządza Pan zespołem inżynierów programowania zlokalizowanym w dwóch krajach, w tym w Polsce. Czym dokładnie zajmuje się ten zespół? Jakie projekty realizujecie?
Jesteśmy odpowiedzialni za szeroko pojęte wsparcie użytkowników Bolt. Rozwijamy zarówno interfejsy obsługi klienta w aplikacji, jak i wewnętrzne systemy obsługiwane przez nasz zespół wsparcia. Projekty, które realizujemy są bardzo różnorodne.
Nieustannie udoskonalamy User Experience poprzez integrację i rozwój modeli uczenia maszynowego, które pozwalają nam trafnie identyfikować i automatycznie rozwiązywać coraz więcej problemów użytkowników aplikacji. Każdy, kto kilka lat temu miał styczność z chatbotami przeznaczonymi do wsparcia klienta, a obecnie spróbował ChatGPT, może dostrzec np. jak dynamicznie rozwija się programowanie natural language processing NLP.
Wsparcie klienta jest jedną z dziedzin, w której widzimy wielki potencjał dla najnowszych modeli przetwarzania tekstu. Jednocześnie zdajemy sobie sprawę, że są sytuacje, w których kontakt z człowiekiem jest niezastąpiony. Dlatego też równolegle rozwijamy i ulepszamy wewnętrzną platformę dla agentów wsparcia klienta.
Nieustannie udoskonalamy User Experience poprzez integrację i rozwój modeli uczenia maszynowego, które pozwalają nam trafnie identyfikować i automatycznie rozwiązywać coraz więcej problemów użytkowników aplikacji.
Jakie jeszcze inne trendy „technologiczne” – poza chatbotami – odzwierciedlane są w tworzonych w Bolt rozwiązaniach inżynierskich?
W Bolcie wyznajemy filozofię, że technologia istnieje po to, by rozwiązywać ludzkie problemy. Dlatego też rozwiązania technologiczne wybieramy pod kątem tego, jak dobrze pomagają osiągnąć nasze cele. Wraz ze wzrostem firmy i rozwojem technologii, często zmieniają się odpowiedzi jakie rozwiązania techniczne są dla nas najlepsze.
Przez długi czas korzystaliśmy z MySQL jako głównej bazy danych i było to dla nas rozwiązanie bardziej korzystne niż popularne bazy NoSQL. Jednak wzrost skali danych i pojawienie się na rynku stabilnej i lepiej skalującej się alternatywy sprawiło, że aktualnie migrujemy się do Titanium DB – rozproszonej bazy NewSQL.
Za co odpowiadają programiści w poszczególnych krajach? Bolt bowiem to już nie tylko aplikacja do przejazdów po mieście, ale także car-sharing, hulajnogi, skutery, dostawy jedzenia czy artykułów spożywczych.
Prace inżynierskie są w Bolcie zdecentralizowane. Staramy się funkcjonować jako jeden organizm, ale rozproszony między wieloma lokalizacjami. Wiele zespołów składa się z osób stacjonujących w dwóch lub więcej krajach. Wpływa to też na organizację pracy, ponieważ nie dzielimy projektów między lokalizacjami. Pozwala nam to pracować na co dzień w środowisku międzynarodowym.
Warszawscy inżynierowie pracują nad pełnym spektrum rozwiązań – zaczynając od utrzymania i rozwijania globalnej infrastruktury danych, przez budowę wysoce skalowalnych kanałów komunikacji wspierających wszystkie linie produktowe, po nowatorskie rozwiązania związane z produktem Bolt Market.
Lokalnie rozwijany jest również system obsługi klienta, którym zajmuje się mój zespół. Inżynieria w Warszawie inwestuje w zaawansowane metody weryfikacji tożsamości użytkowników w formule „na żywo”. Dzięki czemu non stop podwyższane są standardy bezpieczeństwa. Warszawski hub współtworzą również programiści mobilni, a także specjaliści od systemów transakcyjnych i płatności.
Ilu programistów zatrudnia Bolt globalnie, a ilu w Polsce?
Globalnie zespół liczby blisko 600 osób. W Polskim biurze pracuje obecnie ok. 60 inżynierów. To właśnie tutaj, w ramach centrum inżynieryjnego, powstają narzędzia i rozwiązania służące firmie oraz użytkownikom aplikacji Bolt na całym świecie.
Dlaczego na jedno z centrów rozwoju oprogramowania dla Bolt wybrano akurat Polskę?
Bolt obecny jest w Polsce od 2017 roku. Jest to jeden z kluczowych dla firmy rynków. Nasz biznes ma się tu dobrze. Mamy miliony klientów. Wszystkie dostępne w Polsce usługi rozwijają się i rosną. Warszawskie biuro to drugi, największy hub inżynieryjny po głównej siedzibie w Tallinie. Zatrudnione są tutaj osoby nie tylko na poziomie lokalnym, ale i regionalnym czy globalnym. Dzięki temu Warszawa stała się nie tylko hubem Bolta na Europę Środkową, ale także jednym z globalnych hubów technologicznych.
Zespoły odpowiedzialne za infrastrukturę dostarczają zestaw narzędzi, który pozwala pozostałym zespołom skupić się na logice biznesowej bez martwienia się o to, gdzie serwisy będą hostowane.
Z tego co wyczytałem Wasza globalna infrastruktura danych oparta jest o chmury Amazon Web Services i Microsoft Azure. Dlaczego wybraliście właśnie tych dostawców? Co daje Wam strategia multicloud? Jakie są zalety, a jakie wyzwania związane z tą strategią?
Infrastruktura Bolta oparta jest przede wszystkim o chmurę AWS. Skoncentrowanie się na wykorzystaniu jednego dostawcy podyktowane jest względami praktycznymi. Ważne jest też dla nas wsparcie w konkretnych rejonach świata, mając na uwadze dalszą ekspansję w nowych, czasem bardzo odległych krajach. Niedawno uruchomiliśmy działalność w Nepalu i El Salvador.
Inżynierowie odpowiedzialni za infrastrukturę dostarczają zespołom biznesowym narzędzia, które – w dużej mierze – abstrahują dostawcę rozwiązań chmurowych. Przez to systemy Bolta nie są nadmiernie zależne od jednego dostawcy.
W jaki sposób – od strony technologicznej – dokonujecie tego?
Zespoły odpowiedzialne za infrastrukturę dostarczają zestaw narzędzi, który pozwala pozostałym zespołom skupić się na logice biznesowej bez martwienia się o to, gdzie serwisy będą hostowane czy też w jaki sposób będą w stanie komunikować się między sobą w sieci.
Bez wątpienia pomaga nam też fakt, że stack technologiczny Bolta jest bardzo jednolity. Nasz backend to setki mikroserwisów, a wszystkie z nich używają wewnętrznego frameworka opartego na Node.js.
Jakie technologie są jeszcze istotne w realizacji projektów dla firmy Bolt? Czy analiza danych wsparta algorytmami AI jest jedną z nich? Jakie technologie wykorzystujecie w codziennej pracy i z jakimi wyzwaniami technologicznymi spotykacie się najczęściej?
Jak już wspomniałem wcześniej, wspomagamy się algorytmami NLP, ale nie tylko. Przy przewidywaniu czasu dojazdu kierowcy do pasażera czy też ustalaniu polityki cenowej w czasie godzin szczytu korzystamy z uczenia maszynowego. Za budowanie i ulepszanie modeli odpowiedzialny jest u nas zespół Data Science. Pracuje on z wspólnie z zespołami inżynieryjnymi nad tym, w jaki sposób możemy użyć zebranych już danych, by usprawnić działanie aplikacji i biznesu.
Jednak Machine Learning to tylko jedna z działek technologii, które są używane i pożądane w Bolcie. Do rozwoju naszej aplikacji stosujemy również technologie mobilne i webowe takie, jak React czy Node.js.
Jakich specjalistów poszukujecie do pracy w Polsce?
Bolt wciąż szybko się rozwija i co rusz wprowadza nowe produkty. Wiążą się z tym duże możliwości dla ambitnych pracowników – mogą oni nabierać tu doświadczenia dużo szybciej niż w zwykłej firmie. Dlatego też poszukujemy utalentowanych inżynierów, którzy z entuzjazmem poznają nowe technologie i chcą pracować przy projektach realizowanych na dużą skalę.
Poza oczywistymi umiejętnościami technicznymi, ważnymi cechami jest również zorientowanie na klienta końcowego, myślenie produktowe, inicjatywa, ale też chęć podejmowania odpowiedzialności za swój komponent, serwis czy domenę.
Aplikującym do nas programistom backendowym przydaje się wcześniejsze doświadczenie z systemami rozproszonymi, a przynajmniej z teorią za nimi stojącą. Z kolei w przypadku frontendowców liczy się znajomość przynajmniej jednego ze współczesnych frameworków, np. React. W wypadku programistów mobilnych zaś znajomości danej platformy (iOS, Android, czy React Native).
Obecnie mamy otwarte rekrutacje na takie stanowiska jak Backend and FullStack Engineers, a także na role menedżerskie: Engineering Manager, Senior Engineering Manager oraz SRE Manager.
Przez długi czas korzystaliśmy z MySQL jako głównej bazy danych. Jednak wzrost skali danych i pojawienie się na rynku stabilnej i lepiej skalującej się alternatywy sprawiło, że migrujemy się do Titanium DB – rozproszonej bazy NewSQL.
W jaki sposób pracujecie? Jakie metodyki stosujecie?
Jesteśmy firmą stawiającą na pracę hybrydową i jest to chyba najlepsze dla nas rozwiązanie, bowiem interakcje z zespołem są bardzo ważne. Latem 2020 roku przeprowadziliśmy badanie wśród 1000 pracowników Bolta, które wykazało, że prawie 80% z nas chciałoby pracować z domu co najmniej połowę tygodnia. Analiza obecności w centrali Bolta w Tallinie dodatkowo wskazała, iż najwięcej osób przychodzi do biura, aby uczestniczyć w spotkaniach firmowych oraz w piątki, by wziąć udział w spotkaniach towarzyskich.
W przypadku zespołów inżynierskich, bywają one rozproszone w wielu miastach, czy nawet krajach. Wynika to z faktu, że staramy się nie tworzyć sztucznych barier dla formowania zespołów i bardziej zwracamy uwagę na predyspozycje programistów oraz ich wcześniejsze doświadczenie, niż na konkretną lokalizację. Ważne, aby mieszkali w kraju, w którym mamy hub inżynieryjny.
Stawiamy na krótkie iteracje i ludzi ponad procesami. Zależy nam na jak najszybszej weryfikacji nowych pomysłów, szczególnie jeśli pełna implementacja wymaga współpracy wielu zespołów przez parę miesięcy czy lat. Do weryfikacji naszych hipotez wykorzystujemy testy AB.
Jak obecnie wygląda praca w Bolt?
Pracujemy w małych, 3-8 osobowych zespołach, odpowiedzialnych za konkretną domenę, np. tożsamość użytkownika, czy też kanały komunikacji z użytkownikami. Każdy zespół ma przypisanych Engineering Managera oraz Product Managera. W większych zespołach tworzymy też rolę Technical Leada. Dbamy o to, aby każdy inżynier mógł poczuć się właścicielem jakiegoś fragmentu danej domeny, stać się ekspertem, do którego inni mogą zwrócić się o pomoc. To podejście charakteryzuje całą naszą organizację i pomaga nam w szybkiej i sprawnej pracy.
Czy o Bolcie możemy mówić jeszcze jak o startupie? Jesteście już chyba dojrzałą, ustabilizowaną firmą. Czy to zmienia podejście do prowadzenia projektów?
Czasy startupu są już chyba za nami. Jak już wspomniałem, globalnie w samym dziale inżynierskim zatrudniamy blisko 600 osób i jest to skala, która wymusza myślenie o globalnej architekturze wszystkich naszych usług. Jednocześnie jako globalna korporacja na pewno mamy jeszcze dużo do osiągnięcia i jestem przekonany, że ciekawie będzie to obserwować.
Jakie są kolejne plany rozwoju firmy – zarówno w Polsce jak i globalnie – na ten rok i najbliższą przyszłość?
W naszej kulturze firmowej leży dyscyplina finansowa i mądrze inwestujemy nasze zasoby. Dlatego biznesowo skupiamy się obecnie na poprawianiu jakości i rozwijaniu istniejących już usług. Z kolei jako zespół inżynierów, na pewno chcielibyśmy rozrosnąć się w tym roku o około 20%.