Voucherify pod maską: Michał Moczulski o byciu programistą full-stack dla start-upu
Jak zaczęła się Twoja przygoda z Voucherify?
Dołączyłem do Voucherify 6 lat temu, w październiku 2015. Znam się z założycielami Voucherify, Tomkiem, Michałem i Pawłem, od około 10 lat, właściwie od czasu studiów. Po założeniu Voucherify właśnie oni zwerbowali mnie do ich firmy. Kiedy dołączyłem, firma liczyła około 8 osób i pracowała głównie w projektach outsourcingowych. Dopiero później pojawiła się idea stworzenia własnego produktu, silnika promocyjnego Voucherify, aczkolwiek ja zostałem przy pracy dla klientów, tej software house’owej części firmy.
Przy jakich projektach pracowałeś dotychczas i co w nich robiłeś, od czasu dołączenia do Voucherify?
Zacząłem od bardzo krótkiego epizodu pracy dla Semper, była to aplikacja do nauki języków obcych. Projekt skończył się dwa miesiące po moim dołączeniu, więc niewiele zdążyłem tam zdziałać.
Później przeszedłem do pracy dla Merolt, aplikacji dla klientów biznesowych do wyszukiwania noclegów w hotelach, opartej na Java 8 na back-endzie i Node.js, Typescript i JavaScript na front-endzie. Kiedy zaczynałem pracę z nimi, aplikacja była dopiero w planach, istniała tylko prosta strona HTML. Lwią częścią pracy były rozmowy z klientem na temat wymagań i ustalanie zadań – pracowałem blisko z CTO tego produktu. Pracowałem tam ponad dwa lata, głównie nad back-endem ich aplikacji, bo najpierw trzeba było zacząć od budowania głównej funkcjonalności aplikacji.
W połowie 2017 roku przeszedłem do projektu dla HealthAdvisor. Zbudowaliśmy tą aplikację od zera, w trzyosobowym zespole. Jeśli chodzi o stack to na front-endzie jest to JavaScript i React (oraz webpack), na back-endzie Node.js, baza danych jest na Postgresie, a cała usługa jest hostowana na platformie Jelastic. Pracowałem w tym projekcie jako full-stack developer, wtykając moje palce wszędzie, jako że zespół jest bardzo mały. Sami zbudowaliśmy front-end używając webpacka i jestem dumny z tego, że wygląda to zgrabnie, pomimo braku designera w zespole. Warto wspomnieć, że HealthAdvisor osiągnął sukces na rynku szwajcarskim – jest wyliczany w najlepszych 3 rozwiązaniach dla terapeutów w Szwajcarii.
Jakie było Twoje największe osiągnięcie lub wyzwanie w projektach, nad którymi pracowałeś?
Jeśli chodzi o największe wyzwanie w projekcie HealthAdvisor to było to skalowanie funkcjonalności tej platformy – przekształcenie tego rozwiązania z aplikacji dla jednego terapeuty pracującego w jednym gabinecie na rozwiązanie pozwalające wielu terapeutom z wielu gabinetów mieć dostęp do tej samej aplikacji i widzieć oraz edytować dane medyczne oraz historię wizyt w różnych gabinetach tego samego pacjenta. Wymagało to wdrożenia wielu restrykcji, na przykład nie pozwalać terapeutom widzieć faktur danego pacjenta pochodzących z innych gabinetów terapeutycznych.
Technicznym osiągnięciem z kolei było dla mnie usprawnienie szybkości działania platformy HealthAdvisor. Niektóre zapytania potrafiły w peakach trwać około 4 minut, udało nam się to skrócić do maksimum 20-30 sekund bez uszczerbku na funkcjonalności. Inną funkcjonalnością, którą usprawniliśmy, było zapytanie, które co 5 minut sprawdzało, czy są jakieś SMSy do wysłania w kolejce. Samo sprawdzanie potrafiło trwać kilkanaście sekund, co udało się skrócić do 0,5 sekundy. Takie usprawnienia są bardzo ważne dla skalowalności platformy (a platforma HealthAdvisor szybko się rozwija – rok temu ruch w peakach wynosił około 100 000 żądań (requests) dziennie, obecnie dobijamy do 300 000 dziennych żądań).
Czego nauczyłeś się w ciągu ostatnich 6 lat?
Poznałem Reacta, bibliotekę do front-endu. Nie jestem specem, ale mogę z tym językiem pracować i optymalizować front-end rendering używając go. Poznałem też lepiej Node.js oraz generalnie tematy dotyczące pracy na bazach danych – jak badać wydajność, jak przyspieszać zapytania, co jest kluczowe dla ich wydajności.
Podczas pracy dla Voucherify, miałem dużo kontaktu z klientami z zagranicy, dzięki czemu mój angielski się bardzo poprawił.
Co najbardziej lubisz robić w pracy? Front-end, back-end, SRE?
Lubię wszystko po trochu, każda część oprogramowania ma swoje plusy. Front-end daje najwięcej “bezpośredniego” feedbacku – od razu widać, co się zmieniło i łatwo dostać feedback od klienta, czy zmiana im się podoba czy nie.
Optymalizacja zapytań jest dość trudnym tematem, jest to wyzwanie, wymagające “wgryzenia się” w dany problem, ale sukces w tej dziedzinie daje ogromną satysfakcję właśnie dlatego, że jest to dość złożony temat.
Jeśli musiałbym wybierać między back- a front-endem, to wolę back-end, bo najważniejsze jest, żeby aplikacja po prostu działała, robiła co ma robić, a całe rozwiązanie było stabilne.
Czemu zostałeś full-stack developerem? Czy była to świadoma decyzja czy wymagały tego od Ciebie warunki, projekt?
Wcześniej byłem back-end developerem ale praca nad projektem dla start-upu w małym zespole wymusiła na mnie zostanie full-stackiem. Nie żałuję!
Co lubisz w pracy w Voucherify? Co wyróżnia Voucherify od innych software house’ów?
Jednym z większych plusów jest bezpośredni kontakt z klientem i możliwość prowadzenia projektu. Nie jestem tylko “trybikiem” w software housie – mam wpływ na to, jakie technologie i rozwiązania stosujemy w naszym projekcie.
Płaska hierarchia w pracy wpływa pozytywnie na atmosferę pracy – nad nami, developerami, są tylko założyciele firmy, poza tym wszyscy jesteśmy “równi”. Przed pandemią organizowaliśmy wiele wypadów razem, było dużo imprez integracyjnych.
Czy wzrost firmy zmienił atmosferę w pracy?
Większa firma oznacza, że ciężej tworzyć “zgraną” paczkę, każdy trzyma się raczej z osobami ze swojego projektu, ale jest to naturalne. Nadal wszyscy rozmawiamy ze sobą czy to w biurze czy podczas wypadów i wyjść firmowych.
Prawdę mówiąc, to przez pandemię atmosfera pracy wygląda inaczej. Wcześniej spotykałem się częściej z osobami z innych projektów w biurze, ale obecnie, przez pandemię, jest to skomplikowane. Przez wprowadzone ograniczenia rzadko organizujemy jakiekolwiek spotkania po godzinach. Brakuje mi kontaktu z kolegami i koleżankami z pracy, ale jest to problem dotykający nas wszystkich, niezależnie od firmy.
Czy jest coś, co Ci się nie podoba w pracy w Voucherify?
Obecnie mój zespół jest malutki, dwuosobowy. Robimy wszystko – wspieramy klienta na supporcie, rozmawiamy z klientem o ich wymaganiach, robimy design, planujemy zadania, budujemy nowe funkcje, testujemy je i poprawiamy bugi, monitorujemy platformę i usprawniamy ją. Prawdziwy full-stack. Jest tej pracy po prostu dużo i przydałoby się więcej rąk do pracy. Jeśli czujesz, że chciałbyś/chciałabyś do nas dołączyć, to zachęcam do odwiedzenia strony Kariera.
Czego oczekiwałbyś od nowego kolegi/koleżanki programisty?
Dla mnie osobiście bardzo ważna jest otwartość – na nowe idee, na nowe technologie, na inne metody pracy. W start-upach nie zawsze wszystko robi się “procesowo” i “poprawnie”, trzeba być elastycznym i dostosowywać się do wymagań i sytuacji. Czasem lepiej coś zrobić szybko i to wypuścić niż zrobić to w 100% książkowo.
{{CTA}}
Zobacz jak pracujemy w Voucherify
{{ENDCTA}}