$30 off During Our Annual Pro Sale. View Details »

Jak vzniká junior.guru: Otevřený „startup“ v jednom člověku

Honza Javorek
November 06, 2021

Jak vzniká junior.guru: Otevřený „startup“ v jednom člověku

V jednom člověku jsem v českém prostředí vytvořil otevřený projekt, který (zatím) vydělává 20 tisíc čistého měsíčně. Vše je kompletně na GitHubu, kód je pod MIT, texty pod CC BY-SA. Finanční výsledky mám napsané v patičce webu, zveřejňovat se chystám i návštěvnost. Svůj postup dokumentuji v každotýdenních poznámkách na svém blogu. Chtěl jsem se učit od Indie Hackers, ale na východ od Německa jsem žádné nenašel. Nezbývá tedy, než sám přednášet a ukazovat, že jde něco takového dělat a jak.

https://www.openalt.cz/2021/program_detail.php#event_7

Honza Javorek

November 06, 2021
Tweet

More Decks by Honza Javorek

Other Decks in Business

Transcript

  1. Jak vzniká junior.guru
    Otevřený „startup“ v jednom člověku

    View Slide

  2. Kdo je Honza Javorek
    • Karviná, Brno, Praha

    • FIT VUT, FI MUNI

    • na volné noze 5 let, Mergado 2 roky,
    na volné noze 2 roky, Apiary 3 roky,
    Oracle 2,5 roku, junior.guru 2 roky

    • Python komunita 10 let

    View Slide

  3. Co je junior.guru
    • Web pro všechny, kteří se chtějí učit
    programovat a případně si pak hledat
    práci v oboru

    • Příručka (rozcestník, rady)

    • Klub
    • Pracovní nabídky
    • Moje podnikání na plný úvazek

    View Slide

  4. Jak to vzniklo
    • Python komunita, PyLadies, práce se začátečníky

    • Táborákové nápady: Job board? Vyrobíme za víkend přes Google Forms...

    • Příležitost uživit se komunitní prací? Jen vydělat na provoz webíku?

    • Mnoho měsíců uvažování, sbírání nápadů a názorů

    • Odchod z Oracle

    • Kdybych neodešel před covidem, asi by to nikdy nevzniklo?

    View Slide

  5. Vzory
    • „Lean startup“ - en.wikipedia.org/wiki/Lean_startup

    • Pieter Levels (nomadlist, remoteok), Maciej Cegłowski (pinboard)

    • Indie Hackers, Open Startup List

    • MAKE: The Indie Maker Handbook (Levels), Getting Real (Basecamp)

    • Reconsider (DHH) - m.signalvnoise.com/reconsider/

    • Apiary, LoukyKvět :)

    View Slide

  6. Vzory?
    • EU je speci
    fi
    cký trh (GDPR, DPH byrokracie, různé
    jazyky)

    • ČR je speci
    fi
    cký trh (Stripe tu donedávna nebyl,
    spousta služeb není lokalizovaná, CZK místo EUR
    nebo USD)

    • Chybí návody jak něco danit, co a jak řešit :(

    • Málem jsem byl mezi prvními zákazníky Stripe v
    Česku

    • GitHub Sponsors jsem zkoušel mezi prvními

    • Nedivil bych se, kdybych byl první zákazník
    Memberful v Česku

    View Slide

  7. Já jsem vzor na OpenAltu dělat
    nechtěl! Ale co mi zbylo. Třeba
    takhle aspoň někoho inspiruju.

    View Slide

  8. One man show
    • Po letech práce v týmu jsem chtěl být zase chvíli sám

    • Využít všechno co umím, vč. např. marketingu, ne pouze programovat

    • Mít plnou kontrolu nad směrem podnikání, nad cílem
    fi
    rmy

    • „Když budu řešit nějaké problémy, aspoň to budou moje problémy”

    • Mít plnou kontrolu nad svým dnem a počtem meetingů

    • Soustředit se při práci, lidi si nadělit na oběd a na kafe

    View Slide

  9. Udržitelnost
    • Vyskočit z kolotoče investic a akvizicí, kde jde nakonec vždy jen o peníze

    • Mít svůj internetový corner shop, kde se za pultem usmívám na reálné lidi

    • „Dělat svět lepší“

    • Mít tak akorát peněz, aby to uživilo moji jednu rodinu

    • Makat tak akorát, aby mi to dělalo radost, mít
    fl
    exibilitu v životě

    • Mít možnost pracovat odkudkoliv a kdykoliv, dokud dítě nechodí do
    institucí

    View Slide

  10. TL;DR Není to startup,


    spíš opak startupu

    View Slide

  11. Služba jako produkt
    • Nechci a nemůžu prodávat čas - produkt funguje i když onemocním. Produkt
    škáluje.

    • V jednom člověku nemůžu nosit pager - technická omezení, žádný runtime

    • Pasivní příjem je blbost, automatizace je však mocná čarodějka

    • Nemám rád reklamy a paywally - nebudu je provozovat

    • Na kusový prodej (např. kniha) je v Česku malý trh, druhý den to bude na
    Uložto, neumím a nechci to tvořit jak na běžícím páse (Zibura)

    • Nedělám kompromisy - když to nevyjde, klidně půjdu někam programovat

    View Slide

  12. Kapitál
    • 'Follow your passion' is wrong:

    Cal Newport speaks at World Domination
    Summit 2012

    • Úspory z Apiary a korporátu

    • 10 let zkušeností: komunita, marketing,
    frontend, backend, komunikace,
    produktový vývoj, podnikání na volné
    noze…

    • Sociální kapitál

    View Slide

  13. Investorka
    • S manželkou jsme v tom spolu, zásadní
    rozhodnutí konzultujeme

    • V prvním roce JG můj čistý příjem vydělal
    na nájem

    • V druhém roce JG můj čistý příjem vydělal
    na nájem :))))

    • Každých několik měsíců počítáme rodinné
    fi
    nance a vymýšlíme co dál

    • Dítě (3 měs) si teď užíváme společně,
    fl
    exibilita a rodina > peníze

    View Slide

  14. Byznys model
    • Udělám stránku s nabídkami práce čistě pro juniory, je těžké je hledat
    jinde v záplavě dalších nabídek,
    fi
    ltry na existujících portálech jsou na
    houby

    • Aby tam chodili lidi, přidám nějaké ty rady, co pořád opakujeme
    začátečníkům: jak začít, jak získat praxi a pak šup na nabídky

    • Nabídek pro juniory nebude moc, ale kdybych je posbíral všechny, třeba
    mě to uživí nebo aspoň zaplatí provoz a údržbu toho projektu

    View Slide

  15. Byznys model
    Udělám stránku s nabídkami práce


    ...


    PROFIT

    View Slide

  16. Proč to nefungovalo
    • Měl jsem si spočítat, kolik těch nabídek může reálně být, analyzovat jejich
    počet na aktuálních job boardech, zhodnotit konkurenci

    • První rok jsem nechápal kdo je můj klient, vytvářel jsem víc obsahu a dělal
    marketing pro juniory a vůbec neřešil
    fi
    rmy, inzerovat ale měly
    fi
    rmy

    • Cesta od stránky „začni se učit programovat“ ke stránce „procházej
    nabídky práce“ trvá lidem třeba půl roku nebo roky dva

    • Covid-19 zbrzdil pracovní trh

    • Více na honzajavorek.cz/blog/spoustim-klub/

    View Slide

  17. Proč to nefungovalo
    hodně chtění, málo počítání

    View Slide

  18. Příručka
    • Chtěl jsem zvýšit tra
    ff
    i
    c na nabídkách práce, tak že
    napíšu nový obsah přímo pro lidi, co si tu práci hledají

    • Nějak mi to ujelo a místo krátké nové stránky jsem
    napsal desítky normostran rad :((

    • Řešil jsem jak to u
    fi
    nancovat, vydání za paywallem
    nebo jako knihu jsem zavrhl, zkusil jsem sponzorská
    loga a dobrovolné příspěvky

    • Oznámil jsem vydání a pokusil se vytvořit
    marketingové FOMO, o příručce napsalo několik
    médií (můj první kontakt s médii)

    View Slide

  19. První velký klient
    • Validace byznys plánu, je zájem! Známé jméno, přitáhne další klienty

    • Speci
    fi
    cké požadavky, musel jsem vyrábět spoustu věcí, které žádný jiný
    klient nepotřeboval

    • Uzavřít deal je velká byrokracie a trvá to strašně dlouho

    • Zaměřil jsem se pak na menší a střední
    fi
    rmy, kde je deal hotový za
    týden

    • Mám už rok rozjednaný deal s dalším gigantem, ale vlastně jim ani
    nepíšu

    View Slide

  20. Dobrovolné příspěvky
    • Inspirace: Fuka, PHPStan, yablko

    • Experiment, nic moc jsem od toho nečekal

    • Patreon, GitHub Sponsors, účet

    • pravidelné/jednorázové, zdvojnásobování

    • Celkem 52.000 Kč za 2020

    • Celkem 54.000 Kč za 2021 (listopad)

    • Upozaďuju na úkor klubu, ale stále velká pomoc
    (21 % příjmů)

    • Bez nich by už asi JG neexistovalo?

    View Slide

  21. View Slide

  22. Média
    • V ČR nemáme HackerNews nebo
    ProductHunt

    • Pokusy s tiskovými zprávami

    • Reálně je potřeba mít zajímavé téma,
    znát novináře, exkluzivně pro ně něco
    napsat (nebo mít peníze na PR článek)

    • Podzim 2020 úspěchy, ale to ještě
    nebyl klub, návštěvnost vniveč

    View Slide

  23. Pivot

    View Slide

  24. Aktuální byznys model
    • Junioři si platí členství v klubu, měsíční fee, tzn. buduji MRR

    • Mají za to mou pozornost a unikátní komunitu se mnou jako
    zahradníkem

    • Firmy se také mohou stát členy, mají z toho CSR, D&I talent
    pool, případně službu pro své studenty/juniory

    • Narovnání toho, kdo je můj zákazník a komu se
    zodpovídám, mohu být kritický ke vzdělávacím agenturám
    nebo neférovým
    fi
    rmám

    • Cílem je stabilní příjem aspoň 30 tis čistého (aktuálně
    stagnuju na 20 tis)

    • V zahraničí to frčí (NomadList, Rosie Sherry, mnoho dalších
    paid communities), ale u nás první? Víte o podobných
    klubech? (Rozumný investor?)

    View Slide

  25. Sales
    • Neumím, nebaví, nechci

    • Nemám problém dělat sales cally a
    komunikovat s klienty

    • Mám problém chodit jako podomní
    prodejce a nabízet

    • Udělal jsem si dlouhou „CRM“ tabulku s
    fi
    rmami k oslovení a nikdy žádnou neoslovil

    • Povedlo se vyřešit pivotem,
    fi
    rmy chodí
    samy ¯\_(ツ)_/¯

    View Slide

  26. Česko vs svět
    • Doménu .guru jsem vybíral tak, aby byla mezinárodně pochopitelná

    • Když jsem měl byznys model založený na nabídkách práce, uvažoval jsem zda neudělat expanzi do
    zahraničí

    • Překlad webu není totéž co jeho úprava na místní podmínky (ani Praha a Bruntál nemají stejný trh,
    natož Londýn, Atlanta, Dublin, Dillí), musel bych dělat vše dvakrát (EN, CS)

    • Faktura do zahraničí = plátce DPH, byrokracie navíc, zprvu jsem to chtěl dát zdarma jako průzkum

    • Úvahy o MVP pro Dublin nebo Londýn, pokukování po Brexitu (DPH)

    • Nakonec neřeším, pro klub je v ČR trh velký dost na to, aby mě to uživilo

    • Angličtinu neplánuju, Čeština snižuje začátečníkům bariéru

    • Slovensko plánuju

    View Slide

  27. Covid-19
    • Zabil trh s nabídkami práce zrovna když jsem se rozjížděl

    • JG se dostalo do „koronápadů“ apod. věcí jako „co dělat když se nudíte
    doma v karanténě” a tím se o něm dovědělo hodně lidí

    • JG klub je online a lidi tráví víc času online (ale klub by asi fungoval i tak, pro
    lidi z vesnice, introverty, lidi co nemají večer čas a chuť někam chodit…)

    • Jen díky klubu mohu být teď v kontaktu s reálnými juniory a nejsem odtržený
    od jejich problémů

    • Chtěl jsem pracovat z domova a nadělovat si lidi na oběd, na kafe, na pivo,
    ale místo toho došlo k mojí izolaci

    View Slide

  28. Otevřený kód
    • Taky vás vždycky štvalo, že vidíte na
    cizím webu překlep, ale nemůžete poslat
    PR s opravou?

    • Od začátku otevřený kód na GitHubu

    • MIT licence na kód

    • CC BY-SA licence na texty

    • Zatím spíš open-sourced než open
    source, pracuje se na tom

    • Nikdo mi nic zatím „neukradl“ :))

    View Slide

  29. Technologie
    • Continuous Delivery: GitHub, CircleCI, žádné feature branches

    (YouTube: Dave Farley)

    • No Runtime, No Pager (statické stránky + build na CI, kde jede backend)

    • Outsourcing: Google Sheets/Docs/Forms, Memberful, Discord,
    SendGrid, Mailchimp…

    • HTML, SCSS, Python, Flask, SQLite, Scrapy, Frozen-Flask, Jinja2, Vercel,
    vanilla JavaScript, discord.py

    View Slide

  30. Změny v technologiích
    • SCSS špagety → SCSS BEM → SCSS Bootstrap

    • Vercel → GitHub Pages

    • SendGrid → Gmail SMTP :))

    • MailChimp → (zrušeno)

    • Flask, Frozen-Flask → MkDocs

    • HTML, Jinja2 → Markdown, Jinja2

    • Google Analytics → Simple Analytics

    • 1 vanilla JS soubor → 10 vanilla JS souborů → 5 vanilla JS souborů :))

    View Slide

  31. Otevřený startup?

    View Slide

  32. Otevřené příjmy
    • Nejdřív v článku na blogu, nic se nestalo

    • Levels svoje
    fi
    nanční výsledky tweetuje běžně, je
    to etiketa i u Indie Hackers

    • Dal jsem do patičky webu (Fio API a Google Sheet)

    • Transparentnost pro lidi, kteří mě podporují

    • Důvěryhodnost pro juniory (kdo mě platí?)

    • Na obrázku stav k 5.11., ale čekám na zaplacení
    dvou velkých faktur, takže to je reálně kolem
    20.000 Kč

    View Slide

  33. Otevřená návštěvnost
    • Původně GA, přestal jsem tam chodit (pomalé,
    nepřehledné, nerozumím)

    • Původně vytahování čísel z GA přes API a
    zobrazení na webu nebo posílání v emailu, pro
    fi
    remní klienty

    • Přecházím na Simple Analytics

    • Privacy, EU, GDPR, žádné cookies

    • Přehledné

    • Veřejný dashboard, podporuje permalinky, které
    mohu poslat i klientovi (např. před
    fi
    ltrované na
    stránku s inzerátem)

    View Slide

  34. Otevřené poznámky
    • Vzory: Čaj týdne, David Nogol, Simon Willison

    • Uspořádávám si myšlenky, dostávám zpětnou
    vazbu

    • Levels tohle dělá na Twitteru, tam mi to moc
    nefungovalo

    • Nemám depku, že je pátek a nic jsem nestihl

    • Transparentnost pro podporovatele

    • Marketing jak sviňa

    View Slide

  35. Víc čísel? Víc grafů?
    • Chtěl bych, nemám zatím čas udělat,
    snad do budoucna

    • Počet platících individuálních členů,
    členů kteří přišli přes
    fi
    rmy

    • Samotnému by se mi to hodilo, místo
    do Google Sheets teď chodím do
    patičky webu koukat kolik vydělávám
    (načítá se to rychleji ¯\_(ツ)_/¯ )

    • Vývoj v čase, ne pouze aktuální stav

    View Slide

  36. Proč otevřenost?
    • zpětná vazba, nápady

    • marketing - jsem outsider, lidi sledujou můj příběh a cítí se být jeho součástí, fandí mi jak
    Trabantům, je to chytlavý

    • transparentnost a důvěryhodnost toho co dělám směrem k juniorům

    • mám rád open source, transparentnost, upřímnost, vždy jsem to všude prosazoval a je to v
    DNA všeho, co jsem se snažil dělat třeba v Python komunitě (viz docs.pyvec.org )

    • mám věci zadarmo! třeba CircleCI, logo.junior.guru

    • můžu časem budovat komunitu i skrze kód, dát někomu spravovat stránku v příručce…
    Co mají
    fi
    rmy z toho, když dělají OSS? Hiring, marketing, komunitní efekt pro jejich produkt. Je to práce a
    risk navíc, málokdo to umí dobře.

    View Slide

  37. Je to jenom mediální kampaň!

    View Slide

  38. Marketing?

    View Slide

  39. Náplň práce
    • Mega mě to baví. Dlouhodobě. Tím jsem si v začátku jistý nebyl, ale teď
    jsem přesvědčený, že to dokážu dělat klidně „do důchodu“.

    • Nemám meetingy, které si sám nedomluvím :) Nemám žádné pravidelné
    meetingy.

    • Střídám činnosti. Píšu, propaguju, programuju backend, přednáším, dělám
    rozhovory, programuju frontend, bavím se s lidmi, radím. Neomrzí se.

    • Jsem programátor a zároveň řeším problémy konkrétních lidí, nevytvářím
    pouze něco, co neadresně „škáluje“ (ačkoliv moje řešení škáluje).

    View Slide

  40. Škáluje?
    • Kdyby komunita začínala být moc velká a já bych nestíhal, pro nové členy
    zdražím. Některé věci by šlo automatizovat.

    • Kdyby
    fi
    rem bylo moc a já bych se jim nestíhal věnovat, zdražím.

    • Některé složité věci časem ruším nebo zdražuji (newsletter, zasílání
    statistik mailem, ruční zadávání a kontrolování vložených inzerátů…).

    • Špatně škálující robot na třídění inzerátů zda jsou juniorní? Vyřeší ML :)

    • Údržba rozrůstající se příručky? Zapojení více lidí z komunity, třeba v
    rámci barteru (garanti obsahu).

    View Slide

  41. Pracovní benefity
    • Mohu pracovat odkudkoliv, celé je to „na dálku“. Mohu pracovat kdykoliv,
    celé je to asynchronní - levels.io/async/ Užívám si mimino!
    • Když na to nemám čas, celé to funguje dál. Není to bez údržby nebo bez
    mojí aktivity, ale může chvíli být, pokud je to potřeba. Mohl bych
    automatizovat víc věcí.

    • Nemám stravenky ani příspěvky na penzijko :(

    View Slide

  42. Psychika?
    • Nemám kolegy :( Mám jednoho „symbiotického“ kolegu, Daniela Srba z
    CoreSkill <3 <3 <3

    • Stále se učím psychickou pohodu a zvládání stresu z toho, že JG krachne
    nebo že tomu nedávám dost, nebo že nedělám prioritně ty správné věci

    • Po přednášce Tomáše Rektora o workoholismu myslím, že jsem guilty as
    charged :(

    • Na JG myslím ve sprše, v noci, když se budím, když usínám, když jdu v
    parku :(

    View Slide

  43. Životní minimalismus
    • Zaplatí to nájem. Potřebuju víc, ale prostor pro růst rozhodně vidím, stačí to
    nepokazit a užonglovat. Holička říkala, že byznys jí trvalo rozjet 3 roky.

    • Nemáme auto, dům, byt, jachtu, tzn. neřešíme spoustu problémů, spokojíme se s
    málem. Jednorázové výdaje jsou OK, pravidelné ne.

    • Kupujeme si hlavně věci, které FAKT potřebujeme, nebo nám zjednodušují život (ne
    zesložiťují), tzn. nemáme auto, máme robotický vysavač ¯\_(ツ)_/¯

    • Nedávalo mi smysl ve vydýchaných zasedačkách na nekonečných callech vydělávat
    peníze, které nejsem schopný utrácet.

    • OSVČ, neplátce DPH. Pokud můžu, za každou cenu se vyhýbám zbytečné byrokracii
    navíc, i když mě to třeba stojí peníze.

    View Slide

  44. 2021
    • Spouštěl jsem klub a budoval jeho základ, bota, rozjel přednášky v
    klubu…

    • V létě jsem natáčel videa s Engeto Academy (stále nejsou uveřejněná)

    • Dělal jsem na nové produktové stránce pro klub: junior.guru/club/ (vyšší
    konverze, lepší vysvětlení produktu, odlišení od „konkurence“)
    • Překopal jsem příručku, sloučil, zpřehlednil, loga
    fi
    rem dal na více stránek
    (hned si jedna
    fi
    rma jedno nově zaplatila)

    • Snažím se teď o marketing, aby o JG vědělo víc lidí (výsledky uvidíme?)

    View Slide

  45. Výhledy do budoucna
    • Víc čísel a grafů, abych se mohl lépe rozhodovat. Teď mám v číslech binec, tak se
    rozhoduju intuitivně spíš podle toho, kde cítím aktuální slabiny

    • Cítím slabinu v marketingu, lidi o JG málo ví a mělo by jich do klubu přijít víc. Firmy
    taky hezký, asi bych mohl pár i sám oslovit a měl bych víc peněz, ale chtěl jsem
    jádro byznysu postavené na juniorech

    • Psaní článků do Heroine - Ženy v IT (barter, boxík s logem u každého článku)

    • Vydání videí natočených s Engeto Academy

    • Tahle přednáška :))

    • Do konce roku má manželka mateřskou, pak zase spočítáme
    fi
    nance

    View Slide

  46. Budoucnost produktu
    • S produktem, jak je v mé hlavě vymyšlený, jsem spokojen a myslím, že má
    potenciál vydělávat a uživit mě, chtějí/milují to lidi i
    fi
    rmy, řeší to problém

    • Postupnými kroky překopávám web, aby se zahladil otočku při pivotu a
    víc odpovídal novému směru (nová stránka pro klub, sloučená příručka,
    nová homepage, nová stránka pro
    fi
    rmy…)

    • Dát lásku stránce s přednáškami

    • Dát lásku příručce: nové dělení, úvodní rozcestník, nový obsah

    • Nový produkt - katalog vzdělávacích agentur, kurzů?

    View Slide

  47. Nabídky práce
    • Významný zdroj návštěvnosti (paradox vzhledem k původnímu
    plánu :D )

    • Robot teď neškáluje, přesunout na ML, omezit ruční vkládání
    nabídek

    • Postavit se na stranu juniora, naservírovat informace o
    fi
    rmách,
    odkazovat na Atmoskop

    • Agregovat více zdrojů

    • Evidovat frekvenci inzerce (vyvozovat růst nebo
    fl
    uktuaci?) aj.
    statistiky

    • První pracovní server, který bude mít kandidáta na prvním místě ]:-)

    • Příručka pro
    fi
    rmy, jak to dělat správně? Rada od kamaráda:
    „Neukazuj na ty, co to dělají blbě, ale dávej za vzor ty, co to dělají
    dobře.“
    Inzeráty: 4.4k
    Příručka: 6.6k

    View Slide

  48. Dík

    View Slide