Cookielab Hackathon

Organizace

Při organizaci našeho v pořadí druhého hackathonu jsme se oproti tomu prvnímu poučili a začali ho organizovat včas. Tříčlenný tým měl na přípravu dokonce několik týdnů.

Přípravy odstartovaly v momentě, kdy bylo jasné datum. Protože máme hodně členů týmu remote, termín jsme vybírali dostatečně dlouho dopředu – tak, aby se mohlo zúčastnit co nejvíce lidí.

Nechápejte mě špatně, pečlivou organizací jsme nechtěli dosáhnout svázaní pravidel a tlaku na delivery co nejvíce věcí, které se normálně nestíhají. O tom naše hackathony opravdu nejsou. Šlo nám jen o to, abychom z toho mála času, po který na hackathonu budeme, vytěžili  maximum.

A proč vlastně hackathon děláme?

Na hackathonu vymýšlíme řešení problémů, které nás trápí, programujeme, zkoušíme nové technologie, učíme se. Zkrátka děláme to, co nás baví. A jsme u toho všichni na jednom místě. Včetně lidí, kteří pracují většinu času na remote. Neposledně je velkou výhodou to, že se nám v rámci hackathonu úplně promíchají týmy a mohou spolupracovat lidé, kteří jinak působí v jiných týmech a na rozdílných projektech.

Cíl

První byla na pořadu dne definice cíle. Naší ambicí nebylo soutěžení různých projektů s jedním tématem, ale zábava a learning. Cíl projektů tedy zněl „Naučit se něco nového. Projekt má hmatatelný výsledek. Řeší něco, co nám pomůže dělat lépe práci, nebo nám usnadní život.

Takhle jsme mohli dělat na různorodých projektech, v různě velkých týmech a s lidmi různých specializací.

Jak jsme k hackathonu přistoupili

Cílem nás organizátorů bylo udělat z hackathonu událost, kde se nás sejde co nejvíc a užijeme si to. Proto jsme do rozhodnutí a vymýšlení zapojovali všechny Cookielabbers. První klíčová otázka byla, kdy a na jak dlouho se sejdeme. Máme spoustu kolegů, kteří už mají děti. Plus máme rádi work–life balance. Tedy celovíkendová akce nebyla vůbec ve hře.

Jako nejlepší kompromis vyhrál hackathon, který začne v pátek ráno a skončí nejpozději v sobotu kolem oběda. S tím, že konec je pro každého individuální.

Když jsme měli vybraný čas, bylo potřeba vyřešit to hlavní – projekty a organizaci. Asi znáte klasické hackathony, kde se až na místě pitchují projekty a tvoří týmy. My měli čas omezený a chtěli ho využít čistě pro práci na projektu. Takže jsme potřebovali mít před pátkem jasno v tom, kdo na čem bude dělat.

Dostatečně dopředu jsme vyhlásili sběr témat, která mohl kdokoliv suggestovat do Notion. Cílem bylo popsat projekt, jeho přínos a potřebný tým. Deadline na finální představení projektů byl nastavený na týden před hackathonem. V předposledním týdnu pak byl prostor na výběr projektů a sestavení týmů.

Před začátkem hackathonu se tým každého konkrétního projektu sešel, aby vyřešil zadání, rozdal úkoly a mohl v pátek začít.

Finální týmy a témata

Sešlo se nás přesně 11. V případě jednoho kolegy štěstí nepřálo a nemohl se dostavit osobně. Zúčastnil se tedy na dálku a řešil projekt samostatně. Výsledkem hackathonu byly následující dokončené projekty.

Settle up – but better

Tento projekt byl nakonec kompilátem dvou problémů, které jsme se původně snažili vyřešit separátně a jejich spojení dávalo smysl.

Výsledkem hackathonu byly dvě aplikace, které spojovaly oba problémy v jeden celek.

  • Android aplikace pro mikroplatby z ledničky s nápoji. Stačí vytáhnout nápoj, naskenovat jeho čárový kód, nebo vybrat ze seznamu společně se svým jménem a platba se automaticky vyrovná v Settle Up.
  • Automatické vyrovnávání plateb v Settle Up převodem na účet, vyřešené pravidelnou kontrolou plateb na účtu přes integromat a vyrovnáním plateb přes Settle Up API v rámci AWS lambda microservices. A takhle je možné vyrovnávat průběžně a jednoduše jak transakce z ledničky, tak i obědy a další.

Open-source Terraform SSH tunnel provider

Naši DevOpsáci potřebují v Terraform tunelovat pomocí SSH některé providery. Hledali jsme funkční řešení, ale vždy jsme narazili na pár edge cases, kvůli kterým nám to nevyhovovalo. Rozhodli jsme se tedy napsat vlastní Terraform provider v Go. Vše šlo dobře. Máme funkční řešení, které pokrývá naši potřebu. Při finálním testování jsme narazili na dalších pár use cases, které plánujeme vyřešit. Tohle už nebylo v rozsahu hackathonu, ale plugin i po něm nadále rozvíjíme a brzy ho uvolníme jako open-source.

Obsah obrázku textPopis byl vytvořen automaticky

UI pro Toggle–Fakturoid sync tool

React aplikace, jež funguje jako nadstavba command line tool, který umí ze záznamů v Toggl vygenerovat fakturu přes Fakturoid API. Ne všichni preferují práci s command line nástrojem a tohle UI zase o něco víc pomohlo automatizaci. Fakturace proběhne klikem na jedno tlačítko. Při řešení se použily technologie jako Next.js, Crypto Node.JS, Chakra UI, React Hook Form a React Query, místo Reduxu jsme si vyzkoušeli Jotai.

Dark mode pro cookielab.dev

Možná už víte, že kromě cookielab.io máme i web přímo pro vývojáře cookielab.dev, který vypadá jako terminál a stejně tak se ovládá. Štvalo nás, že jeho prohlížení ve večerních hodinách není optimální kvůli zářivě bílému pozadí a zároveň neumíme preferovat dark mód v případě nastavení v systému.

A tohle jsme na hackathonu vyřešili. Pokud přijdete na cookielab.dev a máte svůj Mac nebo telefon v dark módu, bude terminál černý. Zároveň existuje příkaz „mode“ který přepíná mezi dark a light módem a danou volbu si zapamatuje.

iOS widgety pro aplikaci SensorSafe

Tým se naučil s WidgetKit ve SwiftUI a Combine. A to nejen teoreticky, ale přímo na klientské aplikaci, kde byl krásný use case pro použití widgetů. Výsledkem projektu bylo funkční řešení, které použijeme jako pitch pro nové featury do aplikace.

Pracovalo se na více projektech a u několika jsme narazili na to, že nejdou vyřešit podle našich požadavků. Případně jsme otestovali, že existující řešení v podobě open-source projektu odpovídá našim potřebám.

Prezentace projektů

Projekty a týmy byly různě velké, proto nám jednotlivci průběžně „odpadávali”. Poslední tým s prací skončil v sobotu kolem páté hodiny ráno. Z toho důvodu jsme sobotní prezentaci projektů nezvládli.

Hackathon měl v závěru mnoho perfektních výsledků, byla by proto velká škoda vzájemné odprezentování vynechat. Týden po akci jsme využili příležitost na pravidelném interním meetupu DKSS (developers knowledge sharing session) a zástupce za každý projekt odprezentoval průběh a výsledek.

Nejlepší projekt

Jak jsem psal, měli jsme různě velké týmy i projekty. A nebylo by fér vybrat jeden nejlepší, protože podmínky pro práci byly různorodé. Cookielab proto připravil jako překvapení pro všechny účastníky dárkové vouchery do gadgetit.cz. Na e-shopu si mohl každý vybrat pro sebe nebo rodinu cokoli podle svého gusta.

Obsah obrázku exteriér, země, chodník, ulicePopis byl vytvořen automaticky

Co bychom udělali jinak?

Asynchronní příprava měla jednu zásadní nevýhodu – vynechali jsme osobní pitch projektů a Q&A. Což vedlo k případům, že některé textově prezentované projekty mohly být špatně pochopené a následně se do nich nikdo nezapojil. A to možná některé diskvalifikovalo, ačkoli v jádru měly kvalitní myšlenku. Na dalším ročníku proto necháme leadery jednotlivých nápadů své projekty odprezentovat ústně a s prostorem na společnou diskuzi. Zároveň zachováme dostatek času mezi pitchem, sestavením týmů, plánováním projektů a hlavním začátkem akce. Zjednodušeně – předem se připravíme a v den hackathonu rovnou začneme prací na projektech.

A co vy? Děláte ve firmě hackathon? Napište nám, jaké s tím máte zkušenosti, vaše tipy a triky.

Cookielab Hackathon
Radek Míka
Co-founder

Kliknutím na „Přijmout“ souhlasíte s ukládáním souborů cookie na vašem zařízení za účelem zlepšení webu, analýzy a podpory našeho marketingového úsilí. Další informace naleznete v našich Privacy Policy.