Projekt Inspirations & Acquisition

W projekcie Inspirations & Acquisition rozwijanych i utrzymywanych jest kilka kluczowych usług:

Flight search & price calendars

Jeden z najważniejszych projektów w firmie składający się z dwóch aplikacji – Flight Search Result (FSR) oraz Instant Flight Search (IFS). Pierwsza z nich realizuje wyświetlanie wyników wyszukiwania połączeń lotniczych na zadane przez klienta kryteria, podając kierunki oraz daty. Druga aplikacja przedstawia wyniki wyszukiwania w kalendarzu cen dla kierunku wybranego przez klienta. Oba rozwiązania są zasilane danymi dostarczonymi przez system rozwijany przez zespół w ramach projektu Flight Content. Rozwiązania są w całości rozwijane w ramach monorepo, w oparciu o NX oraz framework Angular. Całość jest serwowana przez mikrobackend w oparciu o serwer NestJS. Aplikacje wykorzystują Redis do przetrzymywania danych lokalizacyjnych oraz tłumaczeń.

Stack technologiczny:

Node.js 16+, NestJS 7+, Angular 12+, NX, Redis, REST, GraphQL, Docker, Kubernetes, Google Cloud

Flights landing pages & static content

W ramach projektu rozwijane są landing page związane z lotami, między innymi strony kierunkowe oraz strony lotnisk i linii lotniczych. Ich celem jest ściąganie ruchu z wyszukiwarek internetowych i innych źródeł do naszych systemów wyszukiwania. Strony te są zasilane treściami statycznym, danymi słownikowymi czy lokalizacyjnymi z autorskich rozwiązań, między innymi z systemu CMS oraz Intl, który również rozwijany jest przez zespół. Do części statycznej możemy jeszcze zaliczyć: Poradnik Podróżnika, Okazje, formularz kontaktowy, opinie, a także strony ze zniżkami.
Projekt składa się z jednej większej aplikacji oraz kilkunastu mikroserwisów rozwijanych głównie w technologii PHP, w oparciu o bazę PostgreSQL oraz cache Redis.

Stack technologiczny:

PHP 7.2+, Symfony 4.4+, JQuery, Webpack, Varnish, Redis, PostgreSQL, REST, SOAP, Docker, Kubernetes, Google Cloud

Autocomplete & indexer

Projekt skupiony na rozwoju systemu podpowiadania użytkownikom naszych serwisów kierunków podróży, które są wykorzystywane w wyszukiwarce ofert lotniczych, hotelowych, ubezpieczeniowych oraz pakietowych. Rozwiązanie skupia w sobie takie typy obiektów jak: kontynenty, kraje, regiony, miejscowości, lotniska czy hotele. Wykorzystuje również potęgę silnika wyszukiwania Elasticsearch i potrafi wyczuć intencje użytkownika, by podpowiedzieć jak najbardziej trafne kierunki. Ponadto gromadzone są wybory użytkowników w celu wyliczenia najbardziej popularnych kierunków. Projekt składa się z dwóch mikroserwisów, samego autocomplete rozwijanego w Node.js oraz usługi popularności opartej o PHP. Jest w nim także wykorzystywany worker indeksujący dane.

Stack technologiczny:

PHP 7.4+, Symfony 4.4+, Node.js 14+, TypeScript, NestJS 8+, Elasticsearch 7+, MongoDB 4+, Redis, REST, Docker, Kubernetes, Google Cloud

Mailing system

Projekt stanowi podstawę komunikacji z klientami eSky za pośrednictwem wiadomości e-mail. Pozwala na generowanie wiadomości oraz dokumentów PDF z szablonu oraz danych. Wygenerowane wiadomości są następnie wysyłane do naszych klientów na całym świecie. Rozwiązanie składa się usługi przyjmującej żądania i kolejkującej wiadomości do wysyłki oraz workera wysyłającego wiadomość z pomocą SMTP. W całości uczestniczy też worker weryfikujący status wiadomości u dostawców. Projekt jest rozwijany w PHP w oparciu o bazę MongoDB oraz system kolejkowy RabbitMQ.

Stack technologiczny:

PHP 7.4+, Symfony 4.4+, MongoDB 4+, RabbitMQ, Redis, REST, SOAP, SMTP, Wkhtmltopdf, Docker, Kubernetes, Google Cloud

Affiliation & partners program

Szereg rozwiązań, umożliwiający naszym partnerom rezerwację usług w preferencyjnych cenach, jak również sprzedaż naszych produktów w ramach programu afiliacyjnego. Partnerzy mają możliwość podglądania rezerwacji i generowania raportów. W ramach projektu rozwijana jest platforma oparta na Angular i wspierana przez mikroserwis napisany w Node.js. Całość jest uzupełniona przez rozwijane w PHP narzędzie umożliwiające wstawianie widgetów ułatwiających sprzedaż na stronach partnerów.

Stack technologiczny:

Node.js 12+, Express.js, Angular 5+, PHP 7.4+, Symfony 4.4+, PostgreSQL, Redis, REST, Docker, Kubernetes, Google Cloud

Organizacja zespołu

Na co dzień pracujemy w Scrum. Nasze sprinty trwają dwa tygodnie i kończą się review, na którym prezentujemy wyniki naszych prac. Sprint zawsze zaczyna się planingiem, na którym ustalamy zakres prac na najbliższe dwa tygodnie. W trakcie sprintu mamy regularne groomingi oraz refinementy. Raz dziennie spotykamy się na daily, wspólnie obierając poszczególne cele dnia. Często pracujemy w parach i wymieniamy się wiedzą oraz doświadczeniem. Nasz czas pracy jest podzielony: w przybliżeniu nowe tematy zajmują nam około 40%, 30% to maintenance, a pozostałe 30% spotkania.

Codzienne wykorzystywane narzędzia

G Suite, Slack, Jira, Bitbucket, Jenkins, Spinnaker
 

Prace DevOps

W ramach IT działa sześcioosobowy zespół Site Reliability Engineering, który odpowiedzialny jest również za DevOps. Zespół SRE współpracuje na bieżąco z zespołami deweloperskimi. Z grubsza wygląda to tak, że SRE przygotowuje środowiska dynamiczne, mikrośrodowiska i utrzymuje infrastrukturę (też we współpracy z odrębnym zespołem SysOps). SRE wraz z developerami zajmuje się przygotowaniem procesów wdrożeniowych. Z kolei developerzy wdrażają aplikacje i zajmują się ich konteneryzacją.

Testowanie rozwiązań

Staramy się zachować piramidę testów i kładziemy duży nacisk na weryfikację poprawnego działania naszych rozwiązań. Na co dzień testujemy jednostkowo, przy wsparciu PHPSpec i Jest oraz integracyjnie, wykorzystując Behat i Cucumber.js. Za testy e2e utrzymywane w Cypress jest odpowiedzialny cały zespół. Aktualnie poszukujemy również testera.

Dyżury i praca po godzinach 

Dyżury on-call są wprowadzone jedynie w zespołach SRE/SysOps/Incident management. Developerzy nie mają dyżurów, jednak może się zdarzyć, że potrzebna jest konsultacja z programistą po godzinach pracy. Zwykle do takich zadań wyznaczani są liderzy lub osoby z dłuższym stażem.

Znajomość języka angielskiego

Wymagamy znajomości angielskiego na poziomie komunikatywnym. Developerzy mają czasem okazję do rozmów w języku angielskim z naszymi partnerami, dostawcami zewnętrznymi lub pracownikami eSky, ale obecnie nie jest to codzienność. Chcielibyśmy w niedalekiej przyszłości otworzyć się na możliwość zatrudniania w dziale IT osób angielskojęzycznych. W razie potrzeby, wspieramy również rozwój umiejętności posługiwania się tym językiem. 

Dołącz do nas Oferty pracy

Zobacz na blogu

09.09.2022
Marcin Jahn
It’s Not Just HTTP It’s Not Just HTTP

In today’s world of cloud-based solutions, distributed systems, and microservices-based architectures, network communication is a...

23.08.2022
Adam Mrowiec
Konferencja IPC 2022 Berlin Konferencja IPC 2022 Berlin

Pandemia wreszcie się kończy, dlatego w tym roku postanowiliśmy wrócić do naszych wyjazdów na konferencje....