Týdenní poznámky: Změny

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 (19. 6. až 24. 7.), tak nastal čas se opět ohlédnout a utřídit si myšlenky.

Poznámky
Fotil Markus Spiske

Long time no see! Skoro měsíc. Tak pojďme na to. Nemám energii to dneska prošpikovávat fotkama a obrázkama, ale to přežijete.

Stěhování

V době největší vlny veder jsme jeden den balili celý byt, další den stěhovali (díky za pomoc, Mílo!), a třetí den jsme do jedné ráno uklízeli starý byt. V sobotu jsme byt předali a odstěhovali posledních pár věcí taxíkem.

Pak vlak k babičce. Shozené trakční vedení, takže všechno mělo zpoždění půl hodiny až hodinu. My půl hodiny, řazení úplně jinak. Pro jistotu jsem kupoval první třídu, ale tu ani nezařadili, takže nám akorát vrátili peníze. Nebyl ani minibar. Klimatizace v jednom vagonu nefungovala a v dalším fungovala až moc.

Po příjezdu k babičce na mě všechno dolehlo a prošel jsem si nějakou slabou virózou. Původně jsem myslel, že mám úpal a rýmu zároveň, ale byla to fakt spíš viróza. Pořád bylo strašné vedro.

Měl jsem v klubu moderovat přednášku a potom jsem se měl vrátit do Prahy a odjet na cykloexpedici s kamarády. Tu máme jednou za rok a vždy se na ni velmi těším, takže když byla má účast v ohrožení, zcela se rozpadla moje nálada a morálka, byl jsem morous.

Nicméně to nakonec vyšlo. Přednášku jsem odmoderoval a odjížděl jsem sice ještě trochu nakřáplý, ale nemoc už se víc nerozjela a během výletu pak sama odešla.

Nové bydlení

Po příjezdu do Prahy jsem přežíval na nedodělaném bytě, kde byla jen hromada krabic, nebyly tam žádné spotřebiče a fungovalo minimum věcí nutných pro život. Na bytě nebyl nejen internet, ale ani mobilní signál, což byl dost problém. (Operátoři na fakt, že na vršku kopce uprostřed Prahy není GSM, krčí rameny, že to je nějaká interference a nedá se s tím nic dělat.)

Začal jsem si na novém bytě všímat věcí, které nebyly udělané zrovna tak, jak jsme chtěli, takže jsem začal řešit spoustu připomínek a oprav. Emoce. Další a další úkoly.

Do toho mi dojížděla viróza a snažil jsem se zabalit na cyklovýlet, přičemž věci jsem hledal po různých krabicích. Při balení zrovna na bytě pracovali truhláři i instalatér, tak jsem jim mohl hned odpovídat na všechny dotazy, a to bylo zase ale dobré, protože jsme si tím ušetřili spoustu komunikace a problémů. Ale balení mi trvalo věčnost.

Před odjezdem jsem si ještě vyzvědl novou občanku na úřadě. A protože jsem měl pocit, že jsem poslední dny příliš ve vleku nalajnovaných událostí, rozhodl jsem se oholit se ze srandy na knírek, abych měl pocit, že aspoň něco mám pod kontrolou.

Zabydlování

Po příjezdu jsem se snažil pracovat, ale řešil jsem stále něco na bytě, internet jsem měl jen v kanceláři, žil jsem v šíleném provizoriu, a celkově jsem měl prostě úplně rozstřelené soustředění. Když jsem mohl, v kanceláři jsem zůstával do noci, abych měl internet, a chodil na byt jen přespávat.

To se mi jednou vymstilo, protože někdo zamkl dům a já zjistil, že můj klíč od kanceláře sice ty dveře dokáže odemykat, ale asi jen někdy a zjevně ne zevniř, když jsou zamknuté na víc než nula západů. Vysvobodil mě nakonec jeden pán a mám z toho jen vtipnou historku.

V následujících týdnech jsem nedokázal konzistentně a pracovat a ústilo to postupně v jakousi úzkost z pracovních povinností. Přišlo mi, že se v mém životě není moc o co opřít, protože všechny věci jsou v pohybu a nejistotě, nebo, v případě práce, vyloženě v úpadku.

Prošel jsem si i jedním psychickým zhroucením, kdy na mě dolehlo úplně všechno. Postupně se ale povedlo dostat byt do stavu, kdy mohly přijet žena i s dcerou a s jejich pomocí pak osidlování a opouštění provizoria pokračovalo v mnohem rychlejším tempu, což bylo fajn.

Když mě viděla dlouhodobě ustaraného, tak mi žena poradila, že bych si měl vzít volno a odpočinout si. Pojal jsem to tak, že jsem si řekl, že ve výchozím stavu od sebe nebudu očekávat práci, a když budu mít chuť, nebo bude potřeba něco nutně zařídit (protože se např. blíží přednáška, nebo je potřeba poslat newsletter), tak to můžu udělat, ale bude to bonus. Tohle zafungovalo a byl jsem pak o dost klidnější a vyrovnanější.

Věnoval jsem se hlavně bytu, což bylo fajn, protože na rozdíl od práce, kde se tři roky o něco snažím a je z toho akorát čůrání proti větru, tady jsem viděl okamžité výsledky.

Drinky a kina

Bylo příjemné, že i když jsme stěhovali, nebo různě makali na novém bydlení, dokázali jsme si během doby, kdy byla dcera u babičky, se ženou najít večer čas vyrazit na dobré jídlo, na drink, nebo do kina.

Bohužel mi přišlo, že různé starosti a obavy mi zatemňují hlavu a tyto pěkné přítomné okamžiky si neumím vychutnat naplno a že se moje hlava příliš rychle vrací do mlh. Určitě byly tyto aktivity fajn a pomohly mi, ale kolotoč ostatních událostí byl asi příliš velký a na konci dne je prostě přebil.

Výlet na kolo do mostecké pánve

Výlet s klukama byl moc fajn. První den pro mě byl fyzicky náročný, ale viróza nakonec zhruba v půlce Krušných hor odešla v duchu „co tě nezabije, to tě posílí“.

Půl dne jsme vyměňovali jednu duši, viděli jsme Krušné hory, zajeli jsme k zámku Jezeří na vyhlídku na jeden obrovský důl, projeli Komořany a Most, vyfotili se u Luďanovy Severky, pak viděli z jiné vyhlídky ještě větší důl Bílina, přejeli šílenou výsypku za Bílinou a kolem Milešovky jsme se vrátili na vlak k Lovosicím a Litoměřicím.

Všichni, koho jsme potkali, byli strašně milí lidi, a to i v situacích, kdy rozhodně milí být nemuseli, takže nás to příjemně překvapilo a celý kraj na nás díky tomu zanechal hodně pozitivní dojem. Z hlediska přírody a krajiny je ta pánev úplně dechberoucí, až nelidské dílo, a doporučuji každému, aby se na to přijel kouknout, protože se to nedá ani vyfotit, ani vysvětlit. Já vyrostl v Karviné, ale tam se těžilo pod zemí, bylo to úplně o něčem jiném.

I na tomhle výletě mnou však cloumaly různé frustrace. Když se mě kluci ptali, jak se mám, a probírali jsme život, hodně jsem ventiloval a procházel jsem si složitými pocity.

Koncert IDLES

Velmi příjemným zpestřením byla spontánní návštěva koncertu IDLES s kamarádem, kterého jsem dlouho neviděl. Byla to opět účast „na hyenu“, tzn. že mu někdo vypadl, a já vzal volňásek a šel s nulovým očekáváním na kapelu, o které jsem nic netušil. O to intenzivnější byl zážitek z koncertu, kde jsme i pogovali a chvíli jsem tam měl pocit, že žiju přítomným okamžikem, ale bohužel jen chvíli. Starosti se tak hlásily o slovo, že i ten koncert jsem prožil tak trochu pod jejich tíhou.

Dno

Minulý víkend jsme se hezky hodili do klidu a dcera šla teď na jeden týden do letní školky, takže jsem od pondělka začal zase pracovat na junior.guru s tím, že můžu mít běžný režim, tak to půjde samo.

V klubu se po delší době oživilo „pondělní povídání“, z čehož mám sice velkou radost, ale tentokrát se po něm rozjela diskuze, která mě nepřímo přivedla k vyloženě fyzické úzkosti z toho, kam směřuje programování, AI, a celý trh s juniory.

A na chvíli jsem sám ztratil důvěru v to, že mám pro juniory nějakou naději a řešení, a tento paradox, spolu se špatným vyspáním a dlouhodobě nasbíranou frustrací ze sysifofského tříletého snažení zachránit mé podnikání, způsobil naprostou implozi motivace.

Měl jsem najednou chuť celé junior.guru zavřít a všeho nechat. Po sedmi letech si odpočinout. Úplně. Všechno pustit. Zmizet. Přestat se o to celé starat. Nenést dál břímě očekávání a nadějí juniorů. Přestat řešit, co AI způsobí zítra nebo za týden. Jaká firma bude propouštět zítra nebo za měsíc. Nebo kdo další si do juniorů rýpne na LinkedInu a prohlásí je za zbytečné. Přestat být majákem, který dává naději, protože taky možná lidi jen zbytečně navádí na holou skálu. Pečovat chvíli hlavně o sebe a ne o druhé. Zjistit, zda ještě sám mám vůbec na trhu nějakou hodnotu, nebo mám jít už rovnou jako programátor pokukovat po pracáku.

Došla mi prostě šťáva.

Probral jsem to se ženou, s pár kamarády, a s moderátory v klubu. Někdo mi naznačoval, že to ještě není tak žhavé, jak to vidím, někdo zase že jsem odvedl pořádný kus poctivé a důležité práce, ale že jedu na mrtvém koni už dlouho a gratuloval mi, že mi konečně došlo, že mám sesednout. Nakonec mi ale nejvíc pomohlo vyspat se.

Taky mi hodně pomohlo sepsat si, co na junior.guru vyžaduje pravidelnou údržbu, kde jsou jaké náklady, co by se dalo osekat, umenšit, nebo delegovat. Představil jsem si, jak by mohlo junior.guru fungovat v omezenějším režimu, a došlo mi, že by se toho možná zas tak moc omezovat nemuselo. A že i kdybych toho musel omezit hodně, tak to jádro pořád drží pohromadě.

Nechal jsem to trochu odeznít, promyslel jsem to z více stran, a mám teď při pátečku jasněji, co by měla být cesta vpřed.

Přechod k částečnému úvazku

V první řadě, co musím udělat, je opravdu si teď od junior.guru odpočinout. Když jsem v pondělí začal pracovat, bylo to zřejmě pouze zdání, že jsem odpočatý, a ve skutečnosti jsem se k zodpovědným věcem a pracovním starostem vrátil příliš brzy. Stačilo se párkrát špatně vyspat, o něco mentálně zakopnout, a hned jsem shořel jak papír.

Dám si teď dva týdny (červenec + srpen) s Apify, čímž doženu domluvené pracovní závazky (1 týden/měs). Během toho budu junior.guru chvíli pozorovat z dálky. A když to bude potřeba, dám si pak klidně ještě volno. Prostě si dám tak dlouhé volno, jaké bude nutné. Jsou prázdniny, takže se to snese.

V dohledné době pak zmenším svou časovou dotaci pro junior.guru na poloviční úvazek a mentálně jej přesunu z kategorie „frustrující podnikání, které mě neuživí“ do kategorie „velmi dobře vydělávající hobby projekt s komunitou plnou milých lidí“. V praxi se nejspíš nic nezmění, ale moje psychické zdraví mi za toto nové rámování poděkuje.

Budu na junior.guru dál provozovat přednášky, posílat newslettery, koukat do klubu, budu se snažit propagovat junior.guru na sociálních sítích. Prostě budu všechno dělat tak, jak to už pár týdnů dělám.

Nejspíš ale nebudu nic nového programovat a jestli budu aktualizovat kapitoly v příručce, to se uvidí podle toho, kolik budu mít síly. Budu se taky snažit být trochu méně centrální osobou pro klub a posílit tam roli aktivních členů a moderátorů. Pokud něco nebudu stíhat, zkusím hledat dobrovolníky, kteří by mohli nějaké agendy přebrat.

Ale je nakonec dost možné, že nebudu muset žádné aktivity kolem junior.guru omezovat, že se to do té časové dotace vleze, protože bez vývoje nových věcí toho prostě není tolik.

A to hlavní, co teď potřebuju, je odpočinek a změna toho rámování. Říct si sám pro sebe, že z junior.guru se po sedmi letech stává opět hobby projekt, a tak k němu mám přistupovat. Dát tomu tolik, kolik dát můžu, ale ne víc a nestresovat se zodpovědností za svět, na který nemám žádnou páku.

I tak bude tento projekt mnoha lidem pomáhat. Stále si lidi nacházejí práci jako junioři v IT, stále má smysl se snažit. Tenhle maják má existovat. Klub je skvělá parta lidí a jedinečné místo na internetu, kde se k sobě lidi chovají fakt mile.

A potřebujeme pochopit, jak AI mění IT a jak se v tom mají junioři orientovat. Jaké jsou praktické rady, které mají následovat. Tohle všechno se v klubu denodenně probírá a i když to nestíhám přepisovat do příručky, je to takový táborák, u kterého z lidí vypadávají užitečné rady a postřehy, a u kterého má velký smysl sedět.

A kdo ví! Třeba když si odpočinu, sepíšu do příručky novou stránku o AI a pak se lidi jen pohrnou 😆 Jak říkal v podcastu (odkaz na konkrétní čas) Simon Willison, když komentoval sepisování Agentic Engineering Patterns:

Something that I'm enjoying with the book that I'm writing is most of the things that make agents write better code work for humans, too. Like, I'm basically just writing a book about software engineering and what works well and pretending it's about agents, but it's not.

Možná je pro junior.guru cesta vpřed v tom, že by se mělo vetřít mezi vibekodéry a ukázat jim, že pokud chtějí, aby jim aplikace líp držely pohromadě, tak se mají naučit testování, vědět co je linter, umět s Gitem… no prostě se mají stát aspoň polovičními programátory 😎

Protože něco mi říká, že tam tahle díra je, že spousta lidí zkouší s AI tvořit aplikace, ale o programování nic neví a zároveň neví, že to co potřebují umět, je vlastně programování. No uvidíme.

Reakční článek

Na podobnou notu… Když jsem scrolloval LinkedIn, narazil jsem na článek od Miroslava Uďana o tom, jak si navibekódil celý web. Je to návod, jak to může udělat každý. A když jsem to četl, rostl ve mě silný pocit ze známého XKCD komiksu: „somebody is wrong on the internet“

Takže jsem se neudržel a sepsal reakční článek. Původně to byl komentář, pak status, ale ani do limitu znaků pro LinkedIn status se to nevešlo 😆 No psal jsem to skoro celý jeden den. Takže článek: Jak programátor sám za pět týdnů postavil SaaS, který mu loni nacenili na dva miliony.

Jak to dopadlo? Takhle. Žádná bouře na sociálních sítích se nekonala. Uďan mi napsal: „Honzo jsem dojat, díky, vlastně máte asi pravdu a já to neviděl“ a tím to skončilo 😆 Ale tak aspoň mám po dlouhé době na blogu i nějaký jiný článek než týdenní poznámky.

Generování příspěvků na sociální sítě

Když jsem prokrastinoval vytváření reelsek na sociální sítě, abych propagoval junior.guru, napadlo mě, jako správného programátora, že by se to dalo vyřešit programováním.

Tady jsem si z toho dělal ještě srandu, ale neubránil jsem se tomu to zkusit navibekódit a ono to fakt funguje. Jmenuje se to crowing a je to udělátko, kterému předhodím odkaz na kapitolu v příručce a ono z toho za pár sekund umotá reelsko nebo carousel pro LinkedIn.

Nejsou to žádná světoborná reelska, nikdo si z toho na zadek nesedne, ale je to způsob, jak tyhle věci, které vznikly psanou formou, dostat k lidem, kteří sjíždějí jen video obsah. První pokusy měly docela úspěch, ale další už tak slavné nebyly, nicméně pořád si říkám, že je v rámci marketingu lepší publikovat toto, než nic, a věčně to prokrastinovat. Chtěl jsem něco natočit i se svou hlavou, na kameru, s mikrofonem, ale vůbec jsem se na to necítil a prostě jsem to vždy jen oddaloval.

Takže mám teď tenhle kulomet na reelska. Hážu ty věci na YouTube Shorts, Instagram, TikTok, a na LinkedIn to dávám jako PDFkový carousel.

Ze začátku to umělo jen vzít odstavce z příručky a udělat z toho slideshow. Dodělal jsem, aby tam byla písnička, pak aby se přepínaly ty obrázky jakoby swipe efektem.

Na YouTube mi pak vyskočil Content ID claim, i když jsem měl na písničku licenci, a musel jsem to řešit. Protože jsem to nechtěl řešit a dávat do každého popisku licenci, tak jsem nakonec vybral jiný, nějaký úplně royalty-free song.

Celé jsem to tvořil v Claude Code tak, že jsem do README psal, jak to má fungovat, a pak ho jen nechal to všechno udělat. README-driven development! Zkoušel jsem i Claude Code v mobilní appce, kde se to rozjíždí ve vlastním kontejneru a pošle to Pull Request na můj open source repozitář, to bylo taky pěkné a od té doby to používám čím dál víc.

Nechal jsem Claude udělat nějaké performance improvements, a pak jsem ještě přidal podporu pro propagaci online akcí a rozhovorů s juniory. Tam už jsem ho nechal nejen generovat obrázky, ale dělat i screenshoty různých částí webu a kombinovat to.

Dneska jsem pak strávil hodinu tím, abych si nageneroval spoustu těchto materiálů, připravil jsem je na YouTube jako unlisted pro Táňu, a naplánoval jsem je na následující týdny na svém LinkedInu. A jsem zvědav, jestli bude mít tahle „kampaň“ nakonec vlastně nějaký efekt a jaký.

Jen tady upozorním, že netvořím slop, že ta generovaná reelska vychází vyloženě z věcí, které normálně jako člověk udělám, jen je to jiná forma. Asi jako bych na základě „lidských“ podkladů generoval propagační obrázek, akorát že je to video a ne obrázek. Abych mohl vygenerovat reelsko, tak musím mít ručně promyšlený a napsaný text v příručce, nebo rozhovor s juniorem, nebo naplánovanou živou akci v klubu.

Reelska s Patrikem a Táňou

S Patrikem zkoušíme výrobu reelsek ze záznamů přednášek. Zkoušeli jsme různé věci, hráli jsme si s titulkama, whisperem, canvou, davinci, capcutem. Vyrobil pár reelsek s Danem Srbem o motivačních dopisech a časem vyrobí další a budeme je publikovat. Podle mě by to mohlo dobře oživovat moje sítě jako protiváha těch generovaných reelsek, kde jen rotuje text, ale zase je náročnější je vyrábět.

Pak jsem strávil netriviální množství času tím, že jsem se snažil dostat Patrika a Táňu do Meta Business Suite, aby měli přístupy na můj Instagram a Facebook, a ještě na TikTok, aby tam taky mohli nahrávat. Snažím se nastavit proces, kdy bych já vyráběl generovaná reelska, Patrik reelska z přednášek, a Táňa by tomu dávala nějaký publikační plán a popisky a sypala by to ven v naplánované časy.

Online akce v klubu

Měli jsme super online akci v klubu s Adinou Fox. Sice jsem byl nakřáplý a trochu nemocný, a jak jsem se odmlčel, tak si chudáci v klubu chvíli dokonce mysleli, že jsem zmizel a nevěděli, zda vůbec na přednášku dorazím… ale dobře to dopadlo. Užili jsme si to, bylo to milé a poučné a hlavně hodně interaktivní! Lidem se to moc líbilo, Adině se to moc líbilo, takže to mě hodně potěšilo. Žádné technické potíže nebyly, ač jsem to moderoval od babičky z vesnice.

Teď připravujeme workshop s Eliškou Čejpovou o impostor syndromu, tak doražte! Budou se prý losovat i lístky na DevFest.cz. Když se chystala tahle akce, tak měla Táňa dovolenou, takže jsem to dotahoval já a dalo to zabrat trochu víc, než jsem čekal. Eliška dodala docela dlouhý popis, a trvalo mi asi 10 pokusů, než jsem to zkrátil tak, aby to neztratilo význam, a zároveň se to vlezlo do limitu 1000 znaků pro popis akce na Discordu 😅 Protože už jsem teď měl hotový ten kulomet na reelska, hned jsem ho vyzkoušel a propaguju tuhle akci i pomocí reelsek.

Vyprázdnila se nám pipeline na speakery, takže bych měl oslovit nějaké další, ale vzhledem k předchozím odstavcům jsem na to neměl úplně myšlenky. Nicméně počítám s tím, že to brzo udělám a vhodné lidi naťuknu. Patrik přišel s dobrými nápady, koho bychom mohli pozvat, a na jedno jméno se vyloženě těším.

Rozhovor s Lucií a propouštění v Mews

Sotva mi Adéla dodala rozhovor s Lucií, který jsme domlouvali a připravovali dlouhé měsíce, tak mi LinkedIn zaplavila informace o tom, že Mews propouštějí hromadu lidí. Lucii naštěstí nepropustili, ale jiné lidi ano, a je mi z toho smutno. Zvlášť když se ke mně dostaly i nějaké zákulisní informace o tom, jak to probíhá a z jakých důvodů.

Každopádně jsme to tedy vydali a jsem rád, že Lucie tohle propouštění přežila, protože to by pak bylo asi dost zvláštní, takový rozhovor vydávat, a možná bych musel spláchnout několik tisíc korun do záchodu 🙈

A Mews vyhodili celý jejich komunitní tým, takže jsem smířen s tím, že teď neprodlouží sponzorství junior.guru a zmizí další logo z webu, další příjem.

Další

  • Abych měl i něco pozitivního: V červnu skoro třicet kontrol GitHub profilů měsíčně, a to tam není žádný příjemný UI.
  • Začal jsem používat caveman, odinstaloval jsem VS Code, zkouším Zed, a v něm Claude Code, ale taky Claude Code na webu a v mobilní appce. Zrušil jsem GitHub Copilot.
  • Připravujeme narozeninovou oslavu dcery.
  • Opravil jsem nějaké rozbité odkazy na webu, stahování CSV z Memberful, čištění dat z LinkedIn příspěvků (myslím, že scraper se zase rozjel). Přegeneroval jsem po roce jeden GitHub token.
  • Vylepšil jsem s Claude Code kontrolu GitHub profilů: #140, #142, #143, #145. Bude to teď benevolentnější u špatně se načítajících produkcí hobby projektů a bude to varovat, když lidi v profilu nemají e-mail.
  • V hlavním kódu junior.guru jsem konečně všude nahradil requests za httpx a vylepšil jsem si přípravu newsletterů, samozřejmě skrze Claude Code.
  • Připravuje se napodzim nějaký meetup pro juniory pod záštitou jedné velké firmy a já řešil, jak to skloubit s termínem porodu druhého potomka. (Nijak, dám tomu pouze propagační podporu.)
  • Oprášil jsem mírně fiobank balíček: #72, #73
  • Opravoval a vylepšoval jsem si agregátor zpráv o F1: #34, #36
  • Vylepšoval jsem performance spouštění CLI na hlavní codebase junior.guru a pak jsem poslal Claude Code i na profiling tady toho blogu a několika malými úpravami to zrychlilo generování celého blogu o netriviální množství sekund.
  • Občas jsem se neubránil komentovat věci na sociálních sítích, třeba tady nebo tady.
  • Poslal jsem newsletter. E-maily, klubový Discord, Pyvec Slack, zprávy na LinkedIn, upgrady závislostí na všech projektech. Udělil jsem jedno stipendium. Z finančních důvodů jsem zrušil všechna svá sponzorování jiných lidí nebo projektů na GitHubu. Opravil jsem jednomu uživateli e-mail v administraci. Řešil jsem emotivní odchod jednoho člena z klubu. Udělal jsem důkladné review tří CVček. Půl hodiny jsem odepisoval e-mail jedné konferenci, abych jim vysvětlil, jaké jsou moje hranice v propagaci cizího eventu.
  • Tady bývala věta o tom, kolik jsem toho nachodil, naběhal, nebo ujel na kole. Tahle věta už tu nebude, protože Strava nyní umožňuje používat API pouze platícím uživatelům. Fuck enshittification.

Plánuji

  • Dva týdny pro Apify,
  • oslavit dceřiny narozeniny,
  • vylepšovat bydlení.

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: