Týdenní poznámky: Choroba, API s profily juniorů, mentoring

Jak se mi daří v jednom člověku provozovat a rozvíjet junior.guru? Od posledních poznámek už utekl nějaký ten týden (3. 5. až 17. 5.), tak nastal čas se opět ohlédnout a utřídit si myšlenky.

Poznámky
Fotil Markus Spiske

Předchozí týden jsem odpadl s chorobou, konkrétně nějaká viróza. Ještě se z toho hrabu, pořád trochu kašlu a i když jsem pouze doma, tak pořád ještě dost smrkám, ačkoliv se říká, že po týdnu má být rýma už pryč. Kvůli nemoci jsem nakonec nemohl ani dorazit do panelové diskuze s yablkem, takže paneloval, chudák, sám.

Do toho jsem měl něco na kůži v obličeji, co jsme s doktory týden špatně léčili a teprve potom přišli na to, co to je, takže jsem si zase obešel obvoďačku, dermatologii a očního, ale naštěstí to dobře dopadlo.

API profilů juniorů

Vytvořil jsem repozitář eggtray, který bude sloužit jako API s profily juniorů. Jak to funguje?

Junior pošle Pull Request s YAML souborem v určitém formátu. Když bude vše OK, mergnu to a kód v repozitáři zbuildí do GitHub Pages obyčejný statický JSON soubor profiles.json, kde jsou profily všech juniorů. Přidávání YAML souboru je záměrná překážka, díky které budu vědět, že junior už aspoň trochu umí s Gitem a YAMLem a mohu jim to připsat k dobru při jejich prezentaci firmám. Založit YAML soubor si může kdokoliv, klidně junior, který není v junior.guru klubu.

Výsledné API může následně kdokoliv využít, aby juniorům pomohl najít si práci. Třeba já, který si v rámci repozitáře s webovkou junior.guru stáhnu profily z toho API a zobrazím je na webu. Ale třeba i někdo jiný, co já vím.

Ďábel je však v detailu. Junioři v YAML souboru poskytují jen absolutní minimum informací. Nemusí tam vyplňovat vše jak na LinkedInu a udržovat aktuální. Spoustu informací si načtu přímo z jejich GitHub profilu. Zároveň jsem díky hen schopen dle jejich GitHub profilu zhodnotit, zda už jsou připraveni hledat si práci. Všechny tyto informace se poskládají dohromady a vystaví v tom API.

Při sestavování junior.guru navíc mohu toto vše obohatit ještě i o data, která mám o juniorech díky klubu. Mohu zvýraznit juniory, kteří jsou členové klubu. Mohu třeba přidat nějaké malé plus za to, že jsou v klubu aktivní a přispívají tam. A tak podobně. Při vypisování ale především velmi upozadím, nebo možná vůbec nezobrazím juniory, kteří nepřekonají mnou nastavenou laťku v připravenosti. Výpis juniorů tak bude zahrnovat jen ty nejvíc připravené a aktivní, a firmy budou zaručeně vybírat z toho nejlepšího, co se mezi juniory na trhu nachází. A díky tomu, že kontrolu své připravenosti si může junior kdykoliv spustit v klubu přes Discord, mají jasnou zpětnou vazbu a viditelnou cestu k tomu, aby připravení byli.

Docela dlouho jsem ladil formát YAMLu a reprezentaci dat jako „máš nějakou VŠ?“ nebo „jakým oborům mimo IT ještě rozumíš?“. Několikrát jsem předělal formát dat, který posílá hen, nebo který ukládá eggtray. Věřím, že tohle bude ještě doznávat spousty změn, jak se budou přidávat další lidi. Mám tam zatím čtyři pokusné králíky a dnes se jako pátá sama přidala Sandra.

Mám ještě spoustu nezrealizovaných nápadů a má to strašně málo dokumentace na to, aby se to dalo pořádně pustit mezi lidi, ale funguje to, a to je hlavní. Udělal jsem i pokusnou stránku na webu, kde se kandidáti vypisují.

výpis kandidátů

Možná si říkáte: „Jaký to má, Honzo, byznys model? Zase dáváš všechno zadarmo?“ Ale nebojte! Tohle je monetizované tím, že budou mít junioři velkou motivaci stát se členy klubu. Pokud firma někoho z juniorů najme, je to jen dobře, nechci už tak obtížnou situaci juniorům zatěžovat nějakou provizí. To bych jim moc nepomohl. Když bude firma spokojená, budu u ní akorát apelovat na dobrovolné sponzorství a podporu projektu. Věřím, že kdo na to bude mít chuť a budget, tak si z toho sedne na prdel a ty peníze mi pošle. Kdo juniora najme, ale nebude mít chuť a budget na finanční podporu junior.guru, tak ať, hlavně že má junior práci a já mám aspoň success story.

Hle­dáš do fir­my ju­ni­o­ra? Za­po­meň na in­ze­rá­ty a sto­hy ži­vo­to­pisů. Vy­ber si prostě ze se­zna­mu. Kaž­dý ju­ni­or tady je ově­ře­ný a má za­ru­če­né zá­klad­ní schop­nosti. Vy­bí­ráš z toho nej­lep­ší­ho na trhu. Oslo­vu­ješ na­přímo, nic ne­pla­tíš.

Při tvorbě tohoto celého jsem poprvé použil knihovnu pydantic (lepší dataclasses) a moc se mi to s ní líbí, šetří mi hromadu práce. Umí i vygenerovat JSON Schema, tak jsem ho přidal do API jako zoufalou pomoc komukoliv, kdo by nad ním chtěl něco stavět, ačkoliv formát API zatím ještě z hodiny na hodinu radikálně měním.

Taky jsem se naučil nový způsob, jak deploynout GitHub Pages. Nemusí se už commitovat do gh-pages větve, dají se použít GitHub Actions.

Předělaný mentoring

Není to žádná velká sláva, spíš něco, o čem už strašně dlouho mluvím, a konečně jsem to zrealizoval.

Dříve byli mentoři v klubu vystaveni do „vitrínky“, ve které si je mohli junioři vybírat. Často jediné spojení s mentory bylo skrze odkaz na rezervaci v kalendáři. Bylo pro mentory obtížné přidat se do nabídky, odebrat se z nabídky, upravit si popis nebo podmínky, za jakých chtějí mentorovat, a bylo těžké udržet nějakou kvalitu vztahu mezi nimi a mentees, protože neexistovalo místo, kde by šlo nějak viditelně komunikovat.

Nyní vitrínka mizí a přichází tržiště realizované Discord kanálem typu „forum“. Kdo bude chtít nabídnout mentoring, založí tam prostě příspěvek. Do něj může napsat něco o sobě, podmínky mentoringu, odkazy do kaledářů nebo e-mail, nebo cokoliv, co mu nebo jí přijde vhod. Protože to napíšou sami, bude to zcela podle nich a když se něco změní, mohou úvodní příspěvek libovolně v budoucnu sami upravit. Pod tímto příspěvkem lze navíc vést diskuzi, např. domlouvat se, zda je ještě místo, nebo je plno, nebo tam mohou „vyvolat“ někoho, kdo se nedostavil na call, apod. Také klidně mohou nabídnout placený mentoring, prostě to akorát uvedou v podmínkách.

Kromě toho budou moci příspěvky do tržiště přidávat i junioři, když budou mentoring poptávat. Pokud se tedy mentor nechce nabízet komukoliv, nemusí se vůbec nikde vystavovat. Může prostě sledovat, jestli přibude poptávka, která vás zaujme, a člověku se individuálně ozvat. Takhle se mohou objevit i mentoři, kteří si třeba ani nemysleli, že by mentoring nabídli, ale když uvidí poptávku, zjistí, že dokážou pomoci.

Forum má povinné štítky, které rozlišují nabídku a poptávku, a pak jeden, který umožňuje „zavřít krám“, pokud by člověk dočasně či trvale neměl už volné kapacity. Do budoucna chci ještě přepracovat stránku o mentoringu v příručce a vše tam vysvětlit, nový systém v klubu zdokumentovat, a doplnit automatizace, které jej podpoří. Např. aby bot lidem radil, jak má vypadat správně napsaná poptávka nebo nabídka, aby to dobře fungovalo a nechyběly podstatné informace.

Tak jsem teda konečně, po dlouhém kolečku sbírání zpětné vazby a názorů od mentorů i juniorů, udělal to forum, archivoval starou „vitrínku“, a smazal veškerý kód, který s automatizovaným micromanagementem mentoringu souvisel. Ani nevím, proč mi realizace trvala tak dlouho. Asi jsem potřeboval hodně ujištění, že jdu správným směrem, a taky mi trvalo uvědomit si, že se všechny automatizace a vylepšení dají přidat později a do začátku stačí prostě jen vytvořit to forum a koukat, co s tím budou lidi ve skutečnosti dělat.

Chtěl bych tady nepřímo poděkovat dvěma novým mentorům, kteří mě k realizaci aktuálně došťouchali. Konečně jsem s tím pohnul!

Kamera v čoudu

Odešla mi na MacBooku kamera. Ze dne na den. Nevím proč, s noťasem se nic nedělo, nikam nespadl, nic se na něj nijak zásadně nevylilo. Potvrzuje to diagnostika přímo na noťasu, že odešla kamera a čislo na stmívání displeje, a potvrzují to všechny pokusy o to nějak kameru oživit.

Kamera v čoudu

Je to dost nepříjemné. Noťas mám 4 roky, takže záruka nic. Oprava, pokud je to jen výměna celého displeje a není nic s deskou, je minimálně na 10-14.000 Kč. Což je stále zlomek ceny noťasu, ale je to dost peněz, které mám psychický blok dát za něco, co ještě před týdnem fungovalo a najednou nefunguje, ačkoliv jsem já špatně nic neudělal.

Zároveň nechci externí kameru. Nepoužívám ani externí monitor, protože mám rád svůj stroj portable. S noťasem se dost pohybuji, tu jsem v kuchyni, v obýváku, v ložnici, v kanceláři, ve vlaku, na konferenci, v kavárně. Tahat všude externí kameru, nebo ji někde zapomínat, je to úplně poslední, co chci. Zároveň mám relativně často nějaký call a chci si zachovat možnost skočit na call kdykoliv potřebuji. Externí kamera by byla prostě mega opruz.

Další možnost je použít telefon. Ten mám všude u sebe, takže asi proč ne. Jenže iPhone X je prý moc starý a na tohle není už podporovaný 🖕 Uvažuji tedy o koupi nového telefonu. Ten by stál méně nebo stejně jako oprava (přemýšlím nad iPhone 12 mini nebo 13 mini, velké telefony jsem nikdy nepochopil a nikdy jsem si je neoblíbil) a ještě bych za ty peníze měl upgrade telefonu, což by umenšilo mou bolest z této nepříjemné situace.

Další

  • Vyšla se mnou epizoda podcastu PeopleOps. Propagoval jsem to na LinkedInu i na Mastodonu. Irena si s tím dala práci, takže budu rád, když si epizodu koupíte, nebo si podcast předplatíte. Pokud jste ale moje máma nebo tak někdo, tak mi akorát napište, můžu poslat mp3.
  • Sledujeme trochu hokej. Nejvíc na mne zatím zapůsobilo to, kolik je tam reklam a jak moc je to nepříjemné.
  • Přesunul jsem doménu junior.guru ze SubRegu na WEDOS. Když jsem ji registroval, WEDOS ještě neuměl .guru, tak jsem si založil účet na SubRegu, ale jinak mám všechny domény u WEDOSu. Pro jednoduchost správy jsem ji teď, když už WEDOS .guru domény umí, zmigroval k těm svým ostatním. Vyžádlo si to snad první historický výpadek webu, o kterém jsem se dověděl díky lidem z klubu. Tak jsem si řekl „aha, už to asi převedli“, a šel přepisovat údaje do nových DNS 😀
  • Zkoušel jsem vyrobit písničku s LMMS, ale zatím jsem nedokázal navázat na svůj um z puberty (byť tenkrát to bylo s nějakým ukradeným Fruity Loops). Jsem zvědav, jestli to ještě zkusím, nebo to bude jen náhodný pokus. Ty písničky vyprodukované někdy na gymplu jsou docela motivační - takové to, že vím, že už jsem to jednou uměl, že to šlo. Ale teď na to samozřejmě nemám tolik času. Při sledování tohoto videa jsem si připadal asi stejně, jako si připadá junior, když vidí yablka na YouTube sekat web v Tailwindu nebo tak něco.
  • Všechny nové repozitáře kolem junior.guru jsou pod licencí AGPL.
  • Když nakopírujete hromadu souborů na iCloud, ale máte pomalý internet a chcete pak něco dělat, třeba koukat na streaming F1 v Miami, nejde upload iCloudu bohužel nijak pozastavit. Našel jsem ale skript, který mu zabíjí procesy a tím to pozastaví 💪
  • Czechitas ode mně dlouhodobě odebírají přes API data o pracovních inzerátech, která si následně analyzují, aby věděli, kde je jaká poptávka po čem. Chtěli tam nějaké změny, tak jsem je udělal.
  • ENGETO píše nějaký článek a poprosili mě o vyjádření, tak jsem se do něj vyjádřil.
  • Odepsal jsem do JetBrains. Ač obě strany zaneprázněné, po malých krůčcích posouváme malou spolupráci. Všichni členové klubu díky tomu mají např. velmi výraznou slevu na JetBrains Academy.
  • Firma, jejíž pověstí si nejsem úplně jistý, vložila na junior.guru inzerát a u toho ještě zaškrtli, že chtějí zlatý tarif. Dnes jsem jim zcela narovinu odepsal, že bohužel, ale kvůli jejich pověsti na českém internetu s nimi nechci být spojován, pracovní inzerát neuveřejním a peníze si od nich nevezmu. Nemusel jsem psát důvod, ale přišlo mi fér, aby věděli, že jejich prezentace a chování má nějaký reálný dopad a omezuje jim možnosti spolupráce.
  • Byl jsem v kině na Písečné ženě a bylo to parádní. Strašně mi to v ten den sedlo. Celý film jsem seděl jak na trní a pak o něm ještě dlouho přemýšlel.
  • Objevil jsem just, ale neměl jsem zatím čas ho prozkoumat.
  • Lucie Lenértová mě přivedla na zajímavý nástroj pro postprodukci zvukové stopy. Wow!
  • Užil jsem si vítězství McLarenu v Miami! Normálně mi při závěrečném ceremoniálu zvlhly oči, jakou jsem měl radost, že Lando Norris konečně vyhrál.
  • E-maily, klubový Discord, Pyvec Slack, zprávy na LinkedIn. Naštěstí toho nebylo nějak strašlivě moc, ačkoliv jsem marodil a to se pak většinou nasbírá. Asi byli lidi díky svátkům na dovolených. Udělil jsem jedno stipendium.
  • Za 15 dní jsem naběhal 8 km, při procházkách nachodil 13 km. Celkem jsem se hýbal 8 h a zdolal při tom 21 km. Detaily na Strava, jediné sociální síti, kde si napsání statusu musíte zasloužit.

Plánuji

  1. Budu mít opět Apify týden. Uteklo to nějak rychle, ale bohužel hlavně kvůli mému chatrnému zdraví.
  2. Podívám se na připravované změny v textu stránky o psychickém zdraví.
  3. Musím napsat speakerovi, aby dodal detaily o nadcházející přednášce.

Zaujalo mě

Když na něco narazím a líbí se mi to, sdílím to na Mastodonu. Od posledních poznámek jsem sdílel: