Programujeme letenky

Vývojáři GOL IBE v C.E.E. Group Travelport
Programátorský web
Background image - Futurama office park
Práce

Koho hledáme

Trip Manager

Stránky produktu

Github

Náš github

Příručka

Úvod do začátků

Diagram

Jak GOL funguje

Publikováno 9.11.2022
Symphony Serializer

Pro serializaci dat z objektů a deserializaci dat do objektů používáme komponentu Serializer ze Symphony frameworku. Hodí se nám především pro generování odpovědí z našeho JSON API. Výhodou je, že s použitím základních a několika vlastních normalizérů můžeme serializovat poměrně složité struktury.

Dokumentace Symphony Serializer

Publikováno 23.9.2022
TERIBEAR - 555.1 km za týden

TERIBEAR - 555.1 km za týdenTaké letos jsme se spolu s našimi kolegy, zákazníky, rodinami a přáteli zapojili do akce TERIBEAR hýbe Prahou. Každý rok patříme jako Travelport i mezi partnery akce. Některým kolegům se podařilo za sedm dní nasbírat více než 100km.

Výsledek našeho týmu

Publikováno 24.8.2022
Vývojové diagramy? Zkuste Mermaid!

Začali jsme používat Mermaid pro různé vývojové diagramy. Líbí se nám jednoduchá syntaxe, díky které je úprava dokumentace rychlá a snadná pro každého člena týmu. mít přímo v repozitáři a aktuálnost dokumentace můžeme kontrolovat v rámci implementace issue v Gitlabu.

Odkaz na Mermaid

Publikováno 1.6.2022
Výbava pracovního počítače

Michal se pochlubil jak vypadá jeho pracovní počítač z pohledu softwarové výbavy.

Odkaz na článek

Publikováno 4.5.2022
Jak zajistit chytřejší C++ enumy?

S kolegy z C++ teamu jsme se zamýšleli nad tím, jak se vypořádat s enumy, které mají mít pár funkcionalit navíc.

Odkaz na článek

Publikováno 23.3.2022
TripGate: Jak mít služební cesty pod kontrolou

Kolega Zdeněk vyprávěl pro podcast Komora+ o tom, co dělá náš produkt TripGate. Jeho jádro tvoří GOL IBE D4 a GOL API. Samostatný tým pak vytváří v AWS další komponentu, která TripGate dotváři.

Odkaz na podcast

Publikováno 10.3.2022
Začínáme dockerizovat

Co dělat, když už vývojáře nebaví vyvíjet na serveru s textovým terminálem?

Odkaz na článek

Publikováno 9.2.2022
Learn or die, teach or die: Kancelářské pohybové minimum

Kolega Lukáš připravil krátkou prezentaci, co bychom pro sebe mohli během dne udělat, aby naše tělesné schránky tolik netrpěly extrémní povahou naší vývojářské práce (= sezením).

Prezentace v PDF

Publikováno 25.1.2022
Jak u nás bojujeme proti tomu aby se testování nestalo úzkým hrdlem?

Vylepšování procesu celého vývojového cyklu, nebo zavádění nových nástrojů a jiných činností vycházejících například i z teorie omezení. A samozřejmě hledáním nových testerů :).

YouTube prezentace

Publikováno 31.12.2021
Jak používáme nástroj Postman - nejsledovanější video komunity 2021

Náš QA Libor prezentoval minulý rok používání nástroje Postman pro [pro:]Test! komunitu a záznam přednášky měl největší sledovanost :)

Odkaz na detail

Publikováno 20.12.2021
Pour Féliciter 2022

Přejme veselé Vánoce a šťastný nový rok 2022. Ani letošní rok nebyl pro letectví jednoduchý. Přesto nezahálíme a pilně vyvíjíme naše produkty.

Přání PF 2022

Publikováno 9.12.2021
OpenVPN a systemd

Pracujete vzdáleně přes OpenVPN? Jestli ano, Štěpán má pro vás malý tip na užitecnou konfiguraci.

Odkaz na článek

Publikováno 22.11.2021
Valgrind

Pro dynamickou analýzu kódu v C++ používáme Valgrind. Štěpán v následujícím článku připravil malou ukázku. Pokud Valgrind používáte, možná jste se s ní taky setkali. Pokud Valgrind nepoužíváte, můžete se aspoň podívat, s čím by vám mohl pomoci.

Odkaz na článek

Publikováno 19.11.2021
Learn or die, teach or die: Dědičnost v db modelu

Pár slidů na téma Dědičnost v db modelu - dekompozice tabulek podle 3. normální formy není nutně způsobem, který používat vždy. Krátká LodTod přednáška s živou diskusí proběhla v rámci pravidelného středečního meetingu.

Odkaz na článek

Publikováno 2.8.2021
Automatický deployment mobilní aplikace pomocí Bitrise CI/CD

S narůstajícím počtem variant naší mobilní aplikace GOL Mobile bylo potřeba zautomatizovat vydávání do příslušných obchodů (Google Play a Apple App Store). Martina v následujícím článku popsala důvody, které nás vedly k volbě jednotlivých technologií a detaily celého deployment procesu, který nově začíná pushnutím do produkční větve a končí automatickým upgradem všech variant Android a iOS aplikací patřícím různým zákazníkům.

Odkaz na článek

Publikováno 19.4.2021
JSON, Yaml a Base64

Sem tam každý z nás potřebuje převést JSON na Yaml a zpět, rozkódovat nějaký ten Base64 řetězec z logů. Takových udělátek je na internetu spousta. Ovšem v JSONu a Yamlu je typicky konfigurace aplikace, v Base64 bývají tokeny, prostě citlivá data, která by neměla nikde uniknout. My jsme paranoidní a máme i paranoidní utility, u kterých je riziko ztráty výrazně menší, protože převody se dějí pouze na straně internetového prohlížeče. Dostupné jsou na níže uvedené adrese včetně zdrojových kódu.

https://paranoid-development-tools.netlify.app

Publikováno 8.4.2021
Postman pro každodenní testování API

Postman toho umí opravdu hodně a o pár funkcionalitách vyprávěl i náš QA Libor pro [pro:]Test! komunitu.

Odkaz na detail

Publikováno 10.2.2021
Test Automation in DevOps webinar

Včera se náš QA Libor Šimo účastnil webináře o CI/CD, který pořádala společnost Tesena. Jan Egermaier popisoval, jak nastavit automatizované testy pomocí nástroje GitLab. Závěr je pozitivní: přesně tak probíhá continues integration i u nás :)

Odkaz na obrázek

Publikováno 15.1.2021
Jak psát Use Case

V našich zadáních často využíváme Use Case - strukturovaný postup, jak bude probíhat požadovaná akce. UC podporuje i nacházení a řešení různých nečekaných situací. Mise připravil stručný návod, na co si dát při psaní UC pozor.

Odkaz na článek

Archív: 2016 | 2017 | 2018 | 2019 | 2020 | 2021

GOL IBE D4 - Next.js, React native
GOL IBE D4 - Next.js, React native

Vyvíjíme rezervační systém, kterému říkame GOL. Zkratka IBE znamená Internet booking (= rezervační) engine. Rezervujeme primárně letenky. Označení D4 značí čtvrtou generaci, vyvinutou v javascriptovém frameworku Next.js, postaveném na Reactu. Z původního Flow jsme přešli na Typescript. Testujeme v Jestu a Cypressu. Aplikace má i verzi určenou pro korporátní zákazníky - TripGate a s využitím React Native i verzi mobilní.

GOL API - C++
GOL API - C++

Uvnitř GOLu se skrývá C++ jádro staré více než 10 let. Historicky podporovalo několik zdrojů letenkových a hotelových dat, rezervace aut a pojištění. Stále je v něm co zlepšovat. Při vývoji si pomáháme mockováním všech externích zdrojů dat, se kterými spolupracujeme. To nám umožňuje psát automatické testy. Nový kód píšeme v C14 a když je to potřeba, využíváme Boost.

Trip Manager - PHP, Next.js
Trip Manager - PHP, Next.js

Vyvíjíme také rezervační systém pro dodatečné služby k letenkám Trip Manager. K již zakoupené letence umožňuje dokoupit služby, jako jsou konkrétní sedadlo, check-in, dodatečná zavazadla nebo jídlo na palubě. Backend je v PHP 8.0 (využíváme PHPStan) a frontend v Next.js (React, Typescript). Trip Managera najdete v historii zpráv pod starším názvem Trawys.

GOL IBE D3 - PHP
GOL IBE D3 - PHP

Starší verze GOLu. Systém stále intenzivně vyvíjíme a zároveň udržujeme v provozu přes 10 let. To znamená, že v začátcích GOLu vypadal webový vývoj úplně jinak než dnes. Ale neznamená to, že bychom ho dělali celou dobu stejně. Jsme na PHP 8.0, využíváme PHPStan (na nižších levelech), testy píšeme v Codeception a PHPUnit.

Co všechno tedy používáme
  • Next.js, React, Typescript
  • PHP 8.0, začínáme s PHPStan
  • PHPUnit, Selenium, VisualCeption, Jest, Cypress
  • C++ (s možností využívat C11 a C14), Boost
  • Git (Gitlab, včetně CI)
  • Mysql, Memcached, Redis
  • Munin, ELK
  • koketujeme s AWS lambda
  • Debian spravovaný pomocí Ansible
  • nějaký ten Shell a trocha toho Pythonu
  • a na mobilní aplikace máme React Native
Externí API

Využíváme různá API z cestovního ruchu. Nejvíce používáme API k systému Galileo, které využívají i největší hráči v oboru. V ČR jsou to například Kiwi.com, StudentAgency, nebo Pelikan. Obdobné je to s API Travelfusion.

Hledáme kolegy

Podrobnější popis.

Čím je naše práce specifická
Čím je naše práce specifická
  • Vyvíjíme v týdenních cyklech
  • Refaktorujeme, automatizujeme
  • Produktu držíme podporu
  • Takže víme, jak se mu daří...
  • ... u nás, na Slovensku, v Albánii, v Srbsku...
  • ... nebo třeba Keni, Thajsku nebo Surinamu...