Ahoj Davide. Můžeš ve stručnosti popsat projekt na kterém se podílíš? Z našich setkání vím, že se nejedná jen o nějaké nahrávání obrázků, videa nebo chat, ale že za celým projektem amateri.com je obrovská technická výzva. V čem spočívá?
Ahoj Honzo, projekt Amateri.com (dříve Amateri.cz) funguje už těžko uvěřitelných 17 let. Je to server pro dospělé lidi, pro které není sex tabu a umožňuje lidem se projevit bez zábran. Nekteří uživatelé se jen prezentují, baví se nahotou a nic nehledají. Jiní si chtějí jen popovídat o tématech, o kterých se běžně ve společnosti nemluví. Obecně jsme spíš platforma, která propojuje obyčejné lidi, kteří mají rádi sex ;-)
Hezká definice :-) a teď pojďme probrat technické bonbónky, veřím, že jich máte hromadu. Hledáte PHP vývojáře, tak předpokládám, že nejvíce kódu je PHP + Nette Framework pro vyhledávání bych tipnul Elastic a vlastní serveru už nějaký pátek nemáte? Jsem blízko?
Oficiálně hledáme php vývojáře, ale v praxi se často stává, že si rychle rozšíří své znalosti a najednou píšou microservices v golang, pythonu nebo třeba javascriptu. Často děláme věci, které jsme předtím nikdy nedělali a nikdo z nás o tom na začátku moc neví. Důležité je umět si nové technologie nastudovat a nebát se trochu experimentovat. Nette Framework používáme spolu s mysql (Aurora), memcached, redis, cassandrou atd. pro web, což je ta větší část kódu. Pak tu máme aws lambdy např. na generování pdf a scaling obrázků, které jsou nejčastěji v javascriptu. Dále jsou tu microservices např ke konverzi videí, ty jsou často v golang. Důležitější než programovací jazyk je umět napsat službu efektivně škálovatelně. To znamená, že je produkt připraven na rychlý růst a není třeba přepisovat jednotlivé části kvůli nízké efektivitě.
To už zní jako slušná programová zoo. Jak řešíte správu kódu? Jedete monorepo? Nebo každá servica pokud si to zaslouží tak má vlastní repozitář?
Každá service má svůj vlastní repozitář a vůbec je to úplně v pohodě.
A jak velký tým v současnosti jste? Jak fungujete jako tým? Co práce na remote? Codereview a zodpovědnost za fungování?
Momentálně nás je ve vývoji kolem 8 lidí (celkem 20 včetně podpory), na backend ale jen dva a dva další bychom ideálně chtěli najít. Vzhledem k obsahu webu nemáme a každodenní zpestření nouzi. Práce na dálku byla u nás standard dávno před COVIDem. Bez codereview se neobjede žádný PR, zrovna tak musí zeleně svítit všechny testy. Deploy máme automaticky přes push do masteru, takže by to ani jinak nešlo. Každá feature ma svého task ownera a ten je zodpovědný za finální výsledek. Task owner většinou bývá ten, kdo s danou featurou přišel. U nás vymýšlí nová zlepšení všichni.
Vzpomeneš si na poslední velkou technickou výzvu co jste řešili? Matně si vzpomínám několik let nazpět, jak jsi vyprávěl o nové databázi pro váš interní messeging server a že to byla velká výzva. Asi ta Cassandra?
Backend pro messaging nás před lety celkem trápil, vzkazy zabírali asi 80% databáze a velmi ji zpomalovaly. Přechodem na nosql databázi Cassandru se nám ulevilo a funguje to hladce i s 10x větším provozem, než jsme měli tenkrát. Kdybych měl vypíchnout něco aktuálního, tak by to bylo asi řešení konverze uživatelských videí. Je nám teď jedno, zda lidé nahrají 1 nebo 1000 videí najednou, za pár minut budou všechna připravena. Není to jen o programování service samotné, ale i o programování infrastruktury, která se musí sama během vteřin přizpůsobit.
Diky moc za sdílení a držím palce s hledáním těch správných posil do týmu.
Děkuju moc a přeju ať se Tobě i komunitě dobře daří.
|
|