Utekl další týden (3.5. — 7.5.) a tak stejně jako minule sepisuji, co jsem dělal a co zajímavého jsem se naučil. Především se snažím rozvíjet junior.guru. Nemám šéfa, kterému bych reportoval každý svůj krok, ale mám klub, a členy by mohlo zajímat, jestli se neflákám. Taky je to způsob, jak se sám doma nezbláznit a nepropadat pocitu, že je zase pátek a já jsem přitom nestihl nic udělat.
Májová sleva
Májová sleva na klub dopadla tak, že se zaregistrovalo celkem 10 nových lidí. To nebylo špatné. Zřejmě to dost zregulovalo to, že byl víkend, státní svátek a minimálně v pátek i docela hezké počasí. Kupón jsem nakonec nechal funkční až do pondělí, zaregistrovali se ještě 3 opozdilci. Myslím, že ze všeho nejvíc to byl test mojí bubliny na sociálních sítích a toho, zda lidi vidí nějakou hodnotu v klubu z toho, co je o něm vidět za informace zvenku.
Příště bych měl ale slevy dělat spíš s nějakou promyšlenou strategií. Našel jsem si k tomu tento článek, ale ještě nečetl. Také jsem přemýšlel, že bych mohl ty kupóny sdílet v proužku na webu, jako to dělají eshopy, které jsem v poslední době viděl (např. Bonami, Zalando), a ne jen na sociálních sítích.
Ceník pro firmy
Jsem v kontaktu s jednou firmou a napadlo mě, že už se mi v hlavě celkem poskládalo, jak by měl vypadat budoucí nový ceník pro firmy. Byli jsme domluvení, že jim pošlu do mailu nabídku, tak jsem to vzal jako příležitost a velkou část pondělí jsem tvořil nový ceník. Udělal jsem ho jednoduše v Google Dokumentech a možná jej hodím na web prostě takhle, než se to úplně ustálí, abych se nekódoval s HTML a pak to složitě nepředělával. Nechal jsem se trochu inspirovat i prospektem pro sponzory PyCon CZ.
Četl jsem si trochu o pricingu a zkusil jsem nějaké triky z tohoto článku, ale ne zas moc, nechci, abych působil jako podomní prodejce.
Nový ceník nemám kupodivu klasicky jako tři možnosti levná/střední/drahá, protože mi přišlo, že to vlastně nesedí na to, s čím za mnou firmy chodí. Každá je trochu jiná. Takže jsem to zkusil udělat tak, že je nějaký základ, placené partnerství, a na něj lze vršit různé balíčky navíc dle libosti. Díval jsem se, jak to má řešené Levels tady. Hodně se mi líbí, že má u těch upsell možností vždy napsáno „2x more views“ apod., takže kupující hned vidí hodnotu, jakou dostane. Jenže nic takto přímočarého jsem u svých balíčků zatím vymyslet nedokázal.
Nabídky práce
Tento týden jsem odmítl dvě nabídky přidané na JG, protože nebyly dost juniorní. Byly zadány jako komunitní, takže mě to nemrzí, jelikož nepřicházím o peníze, ale vlastně mrzí, protože přicházím o čas. Tohle neškáluje. Každou ručně zadanou nabídku musím přečíst, zvážit, naformátovat do Markdownu. Ano, jednu nebo dvě nabídky jsem taky přidal, ale ty byly teda taky zadarmo.
Přemýšlím, jak toto řešit. Přijde mi, že se s firmou buď neshodnu na tom, kdo je junior, nebo tu komunitní možnost využívají firmy na své nabídky s tím, že je to zadarmo, tak o nic nejde a pošlou tam cokoliv, hlavně aby se to někde uveřejnilo a někdo to přečetl. Jak moc se navíc některé ty firmy kvalifikují na onu komunitní možnost, to nevím. Občas napíšou, že třeba spolupracují s PyLadies, nebo jde vidět, že to je fakt malá firma, ale někdy fakt nevím a říkám si, tyjo, to nepustí ani pětikilo za inzerát?
Mám z toho smíšené pocity, tím spíš, že nabídky teď nejsou můj primární zdroj příjmů. Ano, 500 Kč je pořád jako zhruba 5 členů v klubu za měsíc, na zemi to neleží, ale v současné chvíli to začíná mít velkou režii na to, že to pomalu ani těch 500 Kč nevydělá. Zároveň chci zachovat možnost přidat nabídku, protože chci, aby nebylo drahé poptávat juniory. Nejlevnější nabídka na StartupJobs stojí 1500 Kč a já chci, aby na JG mohl přidat stáž nebo nějakou brigádu fakt kdokoliv. Navíc jsem od začátku domluvený s PyLadies, že když někdo pošle nabídku jim, na JG ji uveřejním zadarmo. Jenže teď mi přijde, že firmy tu komunitní možnost spíš zneužívají, nebo prostě není dost jasné, co tam ne/mají zadávat.
Nápady, co můžu udělat:
- Přidat do formuláře checkbox, kde budou muset odsouhlasit, že nabídka je fakt pro entry level uchazeče, aby si to uvědomili, než to pošlou.
- Přidat do formuláře políčko, kam musí napsat, co je kvalifikuje na komunitní variantu.
- Dát vkládání všech nabídek zadarmo. Naučit třídícího robota rozpoznat text nabídky na prakticky jakékoliv stránce. Umožnit zadávání nabídek jen skrz URL, ne zadáváním textu a vyplňováním formuláře. Robot si URL stáhne, najde text nabídky, vyhodnotí její junioritu a pošle inzerentům verdikt mailem, proti kterému se mohou odvolat tím, že na mail odepíšou. Pokud chci nabídku uveřejnit i přes robotův nesouhlas, označím ji v tabulce.
Poslední možnost se mi líbí a škáluje, ale má problém v tom, že je to spousta programování něčeho, co nepřináší peníze a zároveň mi ubyde věc, kterou mohu prodávat firmám. Ale těm asi můžu prodávat společné sepsání hezké nabídky, konzultaci, paušální permanentní nabídku… to se asi dá řešit.
Stagnace růstu počtu členů?
Přemýšlel jsem spolu s kamarádem nad jeho i nad svým byznysem. Jeho byznys jsme probrali a došli k tomu, že musí držet focus na ty nejdůležitější věci, neodbíhat od nich a dělat to, co ví, že má udělat. Můj byznys se má tak, že tabulka vykazuje, že mám zhruba 21000 Kč měsíčně čistý příjem. Jenže se toto číslo moc nehýbe. Přemýšlel jsem s tím kamarádem i s investorkou, co se děje:
- Nemám chybu v tabulce a ve výpočtech? (To je dost možné, ale nestihl jsem to zkontrolovat. Našel jsem zatím jen jednu chybu, a to že se vrácené peníze z ČSSZ a VZP započítaly jako špatně kategorizované příjmy, to jsem opravil.)
- Uzavírám partnerství s firmami, ale přijde mi, že sotva nějaké uzavřu, už abych hledal nové, protože uplyne měsíc a strhnou se zase zálohy apod., vše se zase přepočítá a výsledkem je stejný příjem jako předtím.
- Najdou lidi klub? (Snad jo, ale marketing mimo bublinu mám teď chabý.)
- Chtějí lidi do klubu? (Těžko říct, osobně si myslím, že stránku klubu už je potřeba předělat, aby lépe informovala o tom, co v klubu lidi najdou, lépe vysvětlila hodnotu klubu, aby tam byly všechny novinky, atd. Mohlo by to podstatně zlepšit konverze.)
- Uživatelé mají vždy 2 týdny, než začnou platit, takže je to jak s koronavirem, nikdy úplně přesně nevím, na čem jsem, je to o dva týdny posunuté.
- Odchází lidi? (Zdá se, že moc ne. Nějaká retence je přirozená, je otázka jak velkou bych teď měl mít, ale osobně si myslím, že to není teď ten hlavní problém.)
- Partnerství s firmama stále přibývají a spousta věcí je rozjednaných. Možná stačí počkat a nebýt tak hrr a chtít všechno hned?
Pokud bych měl 12 firem (zhruba 12x10000 Kč za rok), mám 10000 Kč měsíčně jistých. K tomu MRR z členů klubu, stačilo by zhruba 200 platících, abych měl dohromady 30000 Kč čistého. Potom bych prohlásil, že mě JG uživí, očekával postupný posun na 35000 (průměrná hrubá mzda v ČR) a začal se zase zabývat i věcma, které nemusí nutně vydělávat peníze. Na takových číslech teď nejsem, ale zdaleka mi to nepřijde nemožné. Myslím, že jsem rozhodně na dobré cestě. Možná by mi k lepšímu pocitu pomohlo, kdybych měl konkrétnější plán co se týče marketingu, věděl kolik mi má přibýt lidí za měsíc nebo kolik mám uzavřít firemních partnerství a nějak lépe bych viděl, jestli jsem nad plán nebo pod plán? Nemůžu jenom dělat věci tak, jak přicházejí a spoléhat se na to, že směr je dobrý a dříve či později se na požadovaný měsíční příjem dostanu. Nebo můžu? Aby se to taky nestalo až za pět roků, když budu mít pomalé tempo…
Věc, ke které jsme došli a kterou bych měl rozhodně udělat, je napsat lidem. Napsat soukromé zprávy lidem v klubu, ptát se jich, jak mě našli, co se jim v klubu nejvíc líbí, nelíbí, co jim tam chybí, jak jim jinak můžu pomoct, atd. Dokud neudělám tuhle mravenčí práci, nevím nic a můžu sice koukat na čísla, ale čísla jsou taky jenom čísla, nemají kontext. Když budu vědět co se ne/líbí lidem v klubu, budu navíc vědět co přidat, nebo co vyzdvihnout na nové stránce lákající na klub.
Mezitím se do konce týdne do klubu přidali další noví lidé, kteří ani nevím, jak klub našli :D Takže je otázka, jaká to je potom stagnace. Jestli je reálná, nebo je to jen chyba v mé hlavě a k tomu třeba i v excelové tabulce. Taky si musím připomínat, že tohle všechno mám za 3 měsíce provozu klubu. Mě to přijde jako věčnost, ale ve skutečnosti je to samozřejmě skvělý výkon.
Role v klubu a výběr toho nej za poslední týden
Už minulý týden jsem přidal bota, který přiděluje role členům v klubu na základě jejich aktivity. Tento týden jsem kód pročistil, předělal a hlavně otestoval a vychytal nějaké hraniční případy. Taky jsem ladil seznam kanálů, které se berou v úvahu pro počítání hodnocených příspěvků, některé jsem ještě přidal do seznamu ignorovaných.
Dále jsem naprogramoval věc, která projde zprávy za poslední týden a vyhodnotí, které byly nejvíc pozitivně hodnoceny. Z toho se pak poskládá výběr toho nej za poslední týden a posílá se to do kanálu s oznámeními, momentálně by se tak mělo dít každý pátek. Výroba tohoto nebyla nakonec moc složitá. Některé části jsem trochu naprasil, ale zdá se, že to funguje, tak se to zatím přežije. Naučil jsem se, jak lze v Discord příspěvku udělat odkazy pomocí Markdownu (lze to jen botem, v description pro Embed). Zjistil jsem, že by bylo dobré vidět začátek příspěvku, takže jsem použil textwrap.shorten() ze standardní knihovny na zkrácení textu.
Hodně jsem si hrál s tím, jak výsledek vypadá, aby byl jednak užitečný a jednak nevzbuzoval špatné konotace. Např. jsem původně myslel, že tam budou emoji s medailema, ale pak jsem to zavrhl a udělal jen seznam, protože nechci v členech vzbuzovat soutěživost, spíš kooperaci a „vzájemné předávání díků“. Taky každá zpráva obsahuje vysvětlení, jak se seznam tvoří a jak mohou lidé hlasovat pod příspěvky pomocí reakcí s emoji, a tím děkovat autorům užitečných zpráv. Zároveň se nejvíc pozitivně hlasované zprávy zobrazí v tom výčtu, takže to pomůže těm, kdo nemají čas si číst klub každý den důkladně, ale nakouknou jednou za týden.
Myslím, že přesně něco takového v klubu chybělo. Např. lidi, kteří hledali práci a potom ji našli, jsou zasypáni úkoly a učením v nové práci a vůbec nemají čas klub číst. Chtějí ale zůstat v kontaktu. Tyto týdenní výčty by mohly pomoct s tím, aby o nic důležitého nepřišli. Uvidíme, jak to bude fungovat.
Přednášky do YAMLu
Už mě nebaví dělat kolem přednášek vše ručně a začíná toho být nějak moc. Také už jich dost proběhlo, takže vím, co vše to obnáší a jak různorodá data se mohou objevit. Nejvyšší čas automatizovat. Začal jsem tím, že jsem přednášky přepsal z tohoto HTML souboru do tohoto YAML souboru.
Pak soubor čtu přes strictyaml a ukládám do SQLite. Následně chci přednášky do HTML dynamicky vypisovat a třeba si i generovat plakátky apod., ale to ještě nemám. Jediné, co jsem zatím udělal, je to, že se lidem na Discordu přiřadí nová, modře obarvená role „Mám přednášku“, pokud měli v historii přednášku, nebo se s nimi přednáška plánuje. Je to malé poděkování za to, že si něco připravili, zároveň to může pomoci ostatním je rozeznat, kdyby jim chtěli poslat dotaz apod.
AMA s Jirkou Psotkou
Do posledního dne jsem nevěděl, jestli budou nějaké otázky na AMA, ale pak někdo prorazil mlčení a spustilo se otázek milion. Poučení je prorazit mlčení sám, nebo někoho instruovat, aby jej prorazil. Nemusel jsem si tedy prakticky připravovat svoje otázky, ale tak pár jsem jich doplnil.
AMA byla strašně super. Přišla hromada lidí. Jirku jsme grilovali 2 hodiny a úžasně odpovídal na všelijaké dotazy, bylo to boží. Například:
- Je lepší začít hodně dole s nějakou stáží a podobně, nebo raději mít nastudováno a zkusit naskočit co nejvýš?
- Kolik bylo let nejmladšímu juniorovi bez praxe, kterého jsi přijímal, a naopak kolik bylo let nejstaršímu?
- Jak to máte s juniory na full remote? Jsem z druhého konce republiky.
- Očekáváš nějakou zkušenost s Open Source?
- Co bývá v prvních měsících pro nově nastupující juniory nejtěžší? A co pro ty, co je zaškolují a věnují se jim?
- Uvádět do životopisu netechnické vzdělání nebo neuvádět žádné?
- Co děláte v případě, když si kandidát řekne o míň peněz?
- Jaké je typické zvýšení mzdy juniora a kdy?
- Proč firmy nezaměstnávají zaměstnance na zkrácené úvazky?
- Když procházíš CV, co bys určil jako takový jeden největší nebo tři největší nešvary, které ti brání efektivně se jimi probrat a vyhodnotit kandidáta?
- Jak bys popsal potřebnou úroveň angličtiny?
- O jakou mzdu si mám říct jako junior?
- Jaký je poměr v týmech mezi seniory a juniory, jakou pozornost může junior očekávat, když nastoupí?
Ještě jednou to napíšu: PERFEKTNĚ SE TO POVEDLO. Až na jednu věc. Úplně jsem pokazil záznam. Nastavoval jsem si nahrávání na poslední chvíli a musel jsem někde udělat chybu, nebo muselo něčemu někde vadit pořadí toho, jak jsem věci zapnul (většinou nastavuji BlackHole a až potom zapínám OBS a Discord, teď jsem to nějak zmatlal napřeskáčku), každopádně je na záznamu Jiří strašně potichu a já strašně nahlas a je to naprosto nepoužitelné. O to víc, že se večer tak povedl, mě teď mrzí, že se nepovedl ten záznam. Plánuji ještě zkusit nějak to audio upravit, třeba ručně pozesilovat co půjde, ale je to velké zklamání a chyba na mé straně. Nicméně záznam jsem nahrál jako unlisted video na YT a pár lidí, kteří se nemohli dostavit, si to pustilo a zvuk přetrpělo.
Další poznatek byl, že AMA v pohodě fungovala na bázi psaní otázek do chatu a poslouchání, takže by se na ni dala využít clubhousová funkce Discordu, stage. To jsem si uvědomil ve chvíli, kdy se připojovali lidé nechtěně se zapnutým mikrofonem a rušili probíhající akci. Nic vážného, ale na té stage by to bylo víc v pohodě. Byl bych tam já jako předčítač otázek a Jirka jako odpovídač a kdo by chtěl mluvit, mohl by „zvednout ruku“. A možná by to takhle mohlo fungovat i na přednášky a ne jenom na AMA?
Co se týče experimentu s FB událostí, nemyslím si, že měla výrazný efekt. I když jsem pozval celou JG skupinu na FB, kde je přes 700 lidí, nakliklo se snad 5 lidí, které všechny osobně znám nebo jsou už v klubu. Takže FB události asi dělat nebudu. Jsem rád, že jsem to neprogramoval a vyzkoušel to nejdřív vytvořit ručně.
Další poznámky
- Narazil jsem na SimpleAnalytics a zjistil jsem, že nejsou zas tak drahé: 500 Kč měsíčně, při platbě za rok dokonce jen 230 Kč měsíčně. Zatím do toho nejdu, platím jen zcela nezbytné věci, ale mít do budoucna privacy-first analytics místo Google Analytics, to by bylo super. Pod tweetem mi lidi posílali ještě další tipy na podobné služby. Nevím jak ty další služby, ale SimpleAnalytics na webu tvrdí, že má podporu i pro eventy. To by pokrylo vše, co potřebuji.
- Se vzdělávací agenturou jsme dospěli k dohodě, ale ještě musím upravit smlouvu, aby podchycovala to, co jsme si dohodli, tedy že budou posílat absolventy do klubu a proplácet jim členství. Mám obchodní podmínky, ale ty toto neřeší. Asi bych mohl sepsat speciální smlouvu, ale vzhledem k tomu, že chci toto běžně nabízet, rozhodl jsem se, že podmínky doplním. Napsal jsem právničce.
- Opravil jsem vizuální bug toho, jak se na mobilu zobrazoval a zalamoval text pod hlavama členů klubu na webu JG.
- Psal jsem na dvě neziskovky, abychom uzavřeli partnerství a firmy případně mohly proplácet členství v klubu za lidi, které by doporučili. Zatím bez odpovědi.
- Pomáhal jsem AutoMatu s uveřejněním nabídek práce, hledají lidi a to i klidně juniorní. Taky hledají někoho, kdo se vyzná v AWS a pomohl by jim lépe nastavit služby, které u AWS používají.
- Odepisoval jsem za Pyvec někomu, kdo hledal pythonistu. Pokud hledáte pythonisty, návod je tady. Pokud hledáte juniorní pythonisty, dejte to na JG.
- Zašel jsem si pro novou občanku. Zjistil jsem, že to funguje stejně jako pošta, pokud přijdu před obědem, čekám 3 minuty. Pokud po obědě, čekám 3 hodiny. Tentokrát jsem přišel před obědem.
- Odpověděl jsem některým lidem po delší době na maily. Jiným lidem jsem odpověděl, že jim nestíhám odpovědět, ale určitě jim někdy odpovím.
- Dal jsem si cyklistický meeting s Mílou, abychom se domluvili na dalším postupu ohledně třízení nabídek práce na JG pomocí ML.
- Zjišťoval jsem, jestli může Discord bot někomu poslat soukromou zprávu tak, jako bych to byl já a ne jako by to byl ten bot. Chtěl jsem to použít na uvítací zprávu novým členům, na kterou kdyby odepsali, tak už bych mohl reagovat jako živá osoba. Pokud zprávu pošle bot, je to trochu neosobní a hlavně, když mu odepíšou, přijde to do zpráv jemu a ne mně. Výsledek asi hodinového bádání je, že to nejde. Na Redditu mi zprávu smazali, že tam nepatří, tak jsem hledal, kam patří. Našel jsem Discord o Discordu a tam jsem se zeptal, odpovědí bylo, že automatizovat zprávy, které vypadají jako od člověka, je proti ToS. Což mě teda přivádí na myšlenku, že když je něco proti ToS, tak to znamená, že tomu nelze technicky zabránit :D Ale „nelze technicky zabránit“ a „lze udělat přes API“ je velký rozdíl. Dál to nehodlám řešit.
- Pracovní nabídky poslané přímo na JG schvaluji tak, že k nim do Google Sheetu zadám datum schválení. Bohužel jsem se ale u dvou spletl a napsal místo 2021 rok 2020. Nabídky to místo schválení vyhazovalo z výpisu jako prošlé, ale já si toho vůbec nevšiml. Dnes jsem to zjistil, inzerentům se omluvil a datum opravil.
- Psal mi týpek, který se přeučuje z geodeta na programátora. Na takové konzultace po mailech teď už nemívám moc čas odpovídat. Věnuju se lidem v klubu, takže pokud máte podobný dotaz, přidejte se do klubu (prvních 14 dní zadarmo…) a dotaz položte tam. Aspoň si to přečte víc lidí a mohou si z toho taky něco vzít. Nebo vám odpovím v soukromé zprávě, ale aspoň budu vědět, že jste vstoupili do klubu a existuje nenulová šance, že se vám tam zalíbí a zůstanete :) Nicméně jsem teda po asi dvou týdnech, co to na mě svítilo v inboxu, konečně odpověděl. Podle mě už toho uměl tolik, že by si dávno mohl sehnat první práci jako programátor :)
- Začal jsem už domlouvat další přednášku: Život HTTP požadavku. Vytvořil jsem už i plakátek a záznam na stránce s akcemi, ale propagovat budu přednášku až příští týden. Věci kolem přednášky dělám zase komplet ručně, nestihl jsem zatím automatizovat nic, co by mi reálně s něčím pomohlo.
- Během 7 dní od 1.5. do 7.5. jsem naběhal 11 km, při procházkách nachodil 11 km, ujel na kole 34 km. Celkem jsem se hýbal 13 hodin a zdolal při tom 56 kilometrů.
Co plánuji
Tři věci, které bych chtěl zvládnout udělat příště:
- Začít pracovat na materiálu, který připravujeme společně s Engetem.
- Automatizovat věci kolem přednášek.
- Promovat Vildovu přednášku.
A co vy?
Pokud byste čistě náhodou měli dojem, že jste oproti mě za uplynulý týden vůbec nic nestihli, tak mám pro vás skvělou zprávu! V klidu se na ten dojem můžete vykašlat. Není zač!
Co mě zaujalo
Když si něco přečtu nebo poslechnu a líbí se mi to, sdílím to na Pocketu. Od posledních poznámek jsem sdílel toto:
- Je vám 30 a ještě jste nic nedokázali?
Ve 30 nejste ani v polovině své kariéry. - Komentář: Kolo nepotřebuje propagaci. Stačí nezabíjet cyklisty
Stále víc lidí jezdí na kole i navzdory tomu, že stát a města tento způsob dopravy podporují minimálně. - Apolena Rychlíková: S pojmem Západ se u nás nakládá čistě instrumentálně. Fakticky k němu patřit nechceme
Patřit na Západ? Ok, ale se vším všudy, prosím. - Turbo-venkovy
Nesmírně zajímavý článek o tom, kam se v dnešní době ubírají venkovy, regiony, odlehlé vesnice. Tradiční zemědělství budeme znát už jen z pohádek, na beton v pralese bychom si měli zvyknout. Opravdový rozvoj venkova, který by mu umožnil podílet se na blahobytu, je v nedohlednu, vesnice budou mizet, nebo budou živeny penězi odjinud. - Cory Doctorow naskočil na byznys model inkoustu do tiskáren.
- Telling people to delete Facebook won’t fix the internet
Kritika The Social Dilemma a naivního zavrhování velkých sociálních sítí - Cryptocurrency is an abject disaster
Rant proti kryptu. Nakládá jak babiččina naběračka. - Hosting SQLite databases on Github Pages
SQLite v prohlížeči, hostovatelná jako statické stránky - Jak to mají mileniálové s bydlením? Často mizerně. Rodiče jim ale vštípili, že stát to řešit nemusí
„Zdejší mentalita, utvářená tradicí dědit byty po rodičích a přesvědčením, že každý se musí snažit a pomoct si sám, nedává mnoho prostoru pro hledání řešení, jež by pomohlo zlepšit kvalitu života velkého počtu lidí.“
Vygenerováno pomocí pocket-recommendations.