„We are humble engineers”. Wywiad z Markiem...
Rozmawiamy z Markiem Sontagiem Senior Java Developerem z firmy Infobip o fundamentach sukcesu omnichanelowego unicornu.
Rozmowa z Krzysztofem Barańskim Senior Java Developerem z firmy Infobip o docenianiu krytycznego sposobu myślenia w pracy zespołu developerów.
Zawodowe programowanie w Java zacząłem w swojej pierwszej poważnej pracy w 2006 r. – będąc jeszcze na czwartym roku studiów. Z Javą „zaprzyjaźniłem” się na dobre, a po drodze miałem okazję pracować dla różnych organizacji, dzięki czemu poznałem również funkcjonowanie wielu rodzajów systemów i aplikacji.
Moja rola jest przekrojowa, ponieważ biorę udział w pracach w obu obszarach, którymi zajmuje się katowickie biuro Infobip. Od początku działam w zespole odpowiadającym za połączenie naszej platformy z kanałami do komunikacji takimi jak Messenger czy WhatsApp. Tutaj programujemy głównie w Javie i Kotlinie. Równolegle moim zadaniem było stworzenie silnych fundamentów do funkcjonowania zespołu integracji. Aktualnie razem z tym zespołem zaangażowany jestem w projekty integracyjne, które mają ułatwić wysyłanie wiadomości użytkownikom takich platform jak ServiceNow, Oracle Eloqua, Oracle Responsys czy Google Dialogflow. W tym zespole rozwijamy zróżnicowane kompetencje, w zależności od API platform, z jakimi się integrujemy.
Tym, co lubię w pracy nad tzw. „chat apps” jest duża dynamika i skala. Mam na myśli to, że wdrożenia nowych funkcji są częste – zazwyczaj po kilka dziennie w Katowicach. Dodatkowo mówimy tutaj o dużym wolumenie wiadomości – kilkadziesiąt milionów wiadomości dziennie, a w całej firmie kilkaset milionów. Musimy dobrze planować, działać szybko i dbać o jakość. Z pewnością pomaga sprawna komunikacja i właściwe zarządzanie przez Product Managerów. Odpowiadają oni za ustalanie priorytetów oraz płynność współpracy. Pomimo rozbudowanej platformy i wielu toczących się równolegle projektów mamy jasność celów i zadań na każdym etapie. Ciekawy jest także fakt, że współpracujemy bezpośrednio z największymi platformami do komunikacji, takimi jak WhatsApp, Facebook, Google czy Apple.
Z kolei w zespole integracji ciekawa jest różnorodność projektów. Dotychczas programowałem głównie w językach JVM-owych, a tutaj od początku pojawia się .NET czy backendowy kod pisany w JavaScripcie. Dla mnie dużym plusem jest też to, że praca przy integracjach pozwala spojrzeć na naszą platformę z trochę innej perspektywy. Na przykład łatwiej wyłapać, co można poprawić w API.
Patrząc na globalne trendy, coraz silniejsza staje się potrzeba dopasowania komunikacji dostawców usług, platform commerce’owych itd. do użytkownika końcowego. W naszym przypadku, jako lidera omnichannelowej komunikacji, przekłada się to na wsparcie dla wielu różnych kanałów. Przykładowo w Korei Południowej ponad 90% użytkowników smartfonów używa aplikacji KakaoTalk. Z europejskiego punktu widzenia totalna egzotyka, ale żeby zaistnieć na tamtym rynku to „must have”, więc można go znaleźć również w naszej ofercie.
Na naszym podwórku też nie jest jednolicie. Oprócz standardowych maili czy SMS-ów dochodzą komunikatory takie jak WhatsApp, czy od czasu do czasu przebijający się Telegram. Firmy mają profile na Facobooku czy Instagramie, gdzie też trzeba klientom odpowiedzieć. Wiadomości mogą być też wysyłane z wyników wyszukiwania w Google’u. Jako użytkownicy końcowi jesteśmy dość wygodni, więc ma być przede wszystkim łatwo i szybko. Dlatego jako Infobip chcemy pomóc klientom w dotarciu do użytkowników we wszystkich miejscach w jednolity sposób.
Globalny trend digital transformation sprawia, że nasi klienci używają wielu różnych platform do komunikacji. Jeden system do obsługi kampanii reklamowych, inny do obsługi zgłoszeń serwisowych, a do komunikacji B2B jeszcze inne systemy. Infobip chciałby, żeby w przypadku popularnych rozwiązań nasi klienci mogli skorzystać z gotowego pakietu, który umożliwi im użytkowanie naszej platformy komunikacyjnej.
Osobiście widzę dwa główne wyzwania. Pierwsze to zapewnienie, że nasze usługi są cały czas dostępne i działają stabilnie nawet przy wzroście obciążenia. Drugie to zapewnienie spójności z tymi częściami naszego systemu, które rozwijane są w innych lokalizacjach. Jesteśmy stosunkowo nowi w organizacji, a cała platforma budowana jest od lat, więc cały czas odkrywamy nowe rzeczy.
Dołączając do naszego zespołu, można liczyć na rozwój w wielu kierunkach, m.in.:
• Nowoczesne rozwiązania technologiczne, np. programowanie reaktywne, Kafka czy Elastic Search. Dodatkowo coraz częściej używamy języka Kotlin. Jeśli chodzi o Javę, to staramy się używać najnowszej dostępnej wersji.
• Ciągłe doskonalenie i refaktoryzacja. Istotną częścią naszej pracy jest sprawdzanie, co możemy napisać lepiej i które narzędzia udoskonalić.
• Poznawanie architektury złożonych systemów rozproszonych. Praca w Infobip daje doskonałą szansę na naukę, jak kompleksowa platforma działa jako całość.
Developerzy Java, zarówno Mid jak i Senior, muszą dobrze znać ten język i mieć produkcyjne obycie. Jak wspomniałem zespół integracji pracuje z bardziej różnorodnymi technologiami, więc w tym wypadku oczekujemy znajomości któregoś z obiektowych języków programowania.
Najczęściej w trakcie rozmowy uszczegóławiamy informacje o projektach, w których kandydat uczestniczył, pytamy o to, jaką miał w nich rolę i zadania. Weryfikujemy też znajomość tematów związanych z wytwarzaniem oprogramowania czy zapewnieniem jakości: wzorce projektowe, testowanie. Ważnym etapem jest możliwość sprawdzenia wszystkiego w praktyce.
Istotne jest to, jak kandydat radzi sobie w trudnych sytuacjach, np. jeśli zdarzały się błędy na serwisie produkcyjnym, jakie były reakcje i próby lepszego przewidywania na przyszłość.
Doceniam osoby, które potrafią samodzielnie myśleć i rozumieją wpływ swojej pracy na całość produktu. Czują odpowiedzialność za całość systemu, a nie tylko za swoje wąsko rozumiane zadanie. Przykładowe pytania, które pomagają mi to weryfikować na etapie selekcji kandydatów to m.in.:
• Jakie widzisz bariery w rozwiązaniu, nad którym obecnie pracujesz?
• Czego Ci aktualnie brakuje?
• Co byś chciał zmienić w bieżącym projekcie?
Przy każdej kompilacji uruchamiamy automatycznie testy jednostkowe i integracyjne. Dodatkowo zmiany obowiązkowo przechodzą code review. W razie potrzeby i możliwości wprowadzamy je na początku w lokalizacjach, gdzie jest mniejszy ruch. Ciekawostką jest to, że nie mamy w zespole osób zajmujących się QA. Każdy musi przetestować swoje zmiany sam. Wiadomo, że błędy i problemy się zdarzają, czy to po naszej stronie, czy po stronie dostawców usług. Na takie okoliczności mamy systemy monitorujące czy powiadamiające o przekroczeniu pewnych SLO. W przypadku poważniejszych awarii przeprowadzamy analizę, szukamy przyczyny i wprowadzamy poprawki. Poza tym zmiany trafiają na serwery produkcyjne po zakończeniu prac nad daną funkcjonalnością, a czasem nawet częściej. Są więc stosunkowo małe i łatwo je wycofać.
Rozmawiamy z Markiem Sontagiem Senior Java Developerem z firmy Infobip o fundamentach sukcesu omnichanelowego unicornu.
Wywiad z Dawidem Brzyszczem (Java Software Developer)
Infobip jest globalnym liderem efektywnej komunikacji omnichannelowej, stworzona platforma ma na celu angażowanie konsumentów w preferowany przez nich sposób...