How we build and operate the Keboola data platform
Vladimír Kriška 5 min read

Hľadáme ďalšieho človeka na UIčka

Do Kebooly hľadáme JavaScript vývojára, ktorý by sa pripojil k UI tímu a pomohol nám tvoriť a vylepšovať UI pre dátovú platformu Keboola Connection a ostatné podporné nástroje.

Hľadáme ďalšieho človeka na UIčka

Čo je Keboola Connection?

Perfektne to pred pár týždňami popísal Padák (jeden zo zakladateľov Kebooly) v článku, kde hľadá produkťáka.

Keboola Connection je platforma na zber, analýzu a transformáciu dát, pričom nie je podstatné odkiaľ dáta sú alebo kam idú. Akonáhle sú dáta u nás v systéme, možnosti sú neobmedzené. Napríklad môžu byť sprístupnené všetkým vo firme alebo jednoducho len poslané niekde ďalej, napr. na vizualizáciu. A navyše, nech už je ten proces akýkoľvek, je možné ho zautomatizovať a naplánovať jeho pravidelné spúšťanie.

Keď sa na to ale pozrieme viac technicky, tak Keboola Connection je set viacerých REST APIs, pomocou ktorých je možné celú platformu ovládať. To, čo sa navonok chová ako jedna aplikácia je v skutočnosti niekoľko systémov.

A pre túto platformu tvoríme UIčka. Jedná sa o Single-page aplikácie, ktoré poháňa React.

Ako to funguje v Keboole?

Firemná kultúra (dúfam, že to ešte nie je nadávka) sa v Keboole piluje už dosť dlho, a napriek rozdeleniu do tímov, je v Keboole stále možnosť veľa vecí ovplyvňovať, dať im smer a kúsok svojej identity.

Máme 6 tímov a každý z nich má svoje oblasti zodpovednosti:

  • SRE tím má na starosti infraštruktúru, AWS, Azure, atď.
  • Connection tím rieši naše Storage API a Manage API, ktoré sú pevným základom Keboola Connection.
  • Platform Services má za úlohu starať sa o podporné služby ako Docker Runner, Orchestrator, Job Queue alebo Oauth Broker.
  • Component tím je zodpovedný za všetky naše Docker komponenty.
  • UI tím rieši všetky veci súvisiace s UI (detailnejšie nižšie).
  • Documentation tím dbá na to aby sme mali celú platformu pekne zdokumentovanú, či už pre bežných používateľov alebo vývojárov.

Vôbec nie je nezvyklé presunúť sa do tímu, kde by to človeka viac bavilo alebo tam, kde si myslí, že by mohol mať väčší prínos.

A tým sa dostávame k ďalším vlastnostiam, vďaka ktorým Keboola vytŕča z radu:

  • Môžeš makať odkiaľ chceš. Jeden z kolegov je momentálne vo Vietname, a pred niekoľkými rokmi sme sa boli viacerí mesiac na Bali.
  • Môžeš makať kedy chceš. Ak chceš mať poobedie s deťmi, nikto to nerieši.
  • Neriešime dovolenku a keď cítiš, že potrebuješ vypnúť, dostaneš na to priestor.
  • Chodíme cca 3x do roka na tzv. Offsite, niekam na chalupu, kde sa bavíme všetci spolu o ďalšom smerovaní, riešeniach, nových nápadoch a pod.
  • Nie sme agentúra. Keboola Connection je náš produkt a sami sme zodpovední za to, kam ho posunieme.

A najnovšie štartujeme ESOP — opčný plán, a je možné získať podiel vo firme.

Čo budeš robiť?

Pridáš sa k UI tímu, ktorý má len pár ľudí a so všetkými budeš spolupracovať takmer na dennej báze.

Sme zodpovední za viac oblastí, no najdôležitejšie sú:

  1. Správa front-end aplikácii, s ktorými zákazník Keboola Connection prichádza do styku. Či už ako používateľ nášho hlavného rozhrania, alebo ako 3rd party developer, ktorý chce u nás spustiť Docker komponentu (Developer Portal).
  2. Tvorba nových React komponent do spomínaných aplikácií a v neposlednom rade do Indigo UI — našej komponentovej knižnice, ktorá zároveň obsahuje základné CSS.
  3. Code Review, bez ktorého sa u nás do produkcie nedostane takmer ani bodka.
  4. Spolupráca s produktovým tímom, plánovanie a validácia navrhovaných riešení.
  5. Spolupráca s ostatnými tímami, ktoré zabezpečujú bezproblémový chod APIs, ktoré konzumujeme.
  6. Správa našej CDN (Cloudfront).

Keboola Connection UI

UI pre Keboola Connection nie je projekt, ktorý sa dá spraviť za víkend. Nikdy sme nedospeli k záveru, že je lepšie všetko zahodiť napísať nanovo. Projekt nedávno oslávil 5 rokov a koncom októbra sme vydali jeho novú verziu (veľký redesign), ktorú stále vylepšujeme.

Keboola Connection UI — Github Insights (Contributions to master, excluding merge commits)

Prešli sme si aj veľkými aktualizáciami (napr. od React 0.13 až po React 16) a niektoré veci sme popísali aj na našom Tech Blogu 500 Internal Server Error.

Koho hľadáme?

Hľadáme JavaScript vývojára, ktorému nie je téma UI cudzia a rád pracuje na rozhraniach, s ktorým prichádza do styku zákazník.

Mal by si mať skúsenosti s React, vedieť napísať interaktívnu komponentu, vedieť kde držať stav komponenty. A bez problémov určiť prečo sa komponenta prekreslila. A tiež poznať best-practices.

Mal by si vedieť testovať ale aj vedieť určiť kedy je test zbytočný.

Mal by si vedieť čo sú HTTP status kódy, čo je REST API a ako by sa malo chovať aby bolo dobré (a to nielen pre UI).

Nemali by ti byť cudzie pojmy ako CORS, Preflight request, TTFB, či gzip a mal by si ľahko vedieť spoznať, či je aplikácia rýchla alebo pomalá a prečo to tak je (z pohľadu UI).

Musíš vedieť dotiahnúť veci do konca a byť s nimi spokojný. Ale nesmieš sa uspokojiť len tak s hocičím. Musíš byť trpezlivý, mať cit pre detail, vedieť nájsť chybu alebo vyriešiť problém a nevzdať sa. Ale aj nájsť kompromis alebo požiadať o radu.

Nemusíš vedieť všetko, to nikto neočakáva. Chceme však niekoho so skúsenosťami s prácou v tíme. Dôležité je, aby sme si sadli, nie to, koľko technológií ovládaš.

A mal by si vedieť anglicky. Na úrovni aby si sa v pohode dohovoril s našimi kolegami, ktorí nehovoria česky resp. slovensky.

Technológie

Pri vývoji UI sa u nás určite stretneš s technológiami ako:

  • JavaScript, React, Immutable, Create React App, Flux, Redux, Prettier, Webpack, Jest
  • HTML, CSS, Less, Sass, Bootstrap, Storybook, Figma
  • S3, Cloudfront, Travis CI, Docker
  • či REST, Apiary, Sentry

Ako sa prihlásiť?

Pošli email na vlado@keboola.com a napíš, čo ťa na UIčkach baví a aký projekt alebo technológia ťa posledne nadchla. Môžeš pripojiť odkaz na svoj Github profil alebo na projekty, na ktorých si pracoval.

Potom sa ti ozveme, kde sa dozvieš, či sme našli prienik v tvojich skúsenostiach a našich požiadavkách. Môže sa stať, že budeme chcieť ešte niečo upresniť.

Ďalej bude nasledovať videohovor alebo osobné stretnutie, kde sa trošku oťukáme a pobavíme sa viac o tvojich skúsenostiach. Skúsime ti popísať nejaký problém a ty povieš ako by si ho riešil. Nebudeme programovať na papier ani porovnávať výkonnosť zoraďovacích algoritmov.

Nakoniec sa porozprávaš s našou anglicky hovoriacou kolegyňou.

Ak toto všetko vydržíš a obe strany budú cítiť, že by to mohlo fungovať, môžeš s nami začať makať. Sme rôzne rozlezení po ČR, asi polovica remote a ďalší v kanceláriách v Brne a v Prahe.

Teším sa až sa ozveš! 👋

If you liked this article please share it.

Comments ()

Read next

MySQL + SSL + Doctrine

MySQL + SSL + Doctrine

Enabling and enforcing SSL connection on MySQL is easy: Just generate the certificates and configure the server to require secure…
Ondřej Popelka 8 min read