Banner

Fullstack / Back-end developer (Pricing team) | Knihobot & Bookbot

Dle domluvy Plný úvazek

O nabídce

Knihobot is a re-commerce platform where over 5 million books have already changed hands. Every day, we send around 22,000 books to new homes and gain thousands of new customers — figures we plan to double within the next year. We're among the top 10 fastest-growing tech startups in the CEE region and have won the Heureka ShopRoku award for 2021, 2022, and 2023. We operate in four European markets (CZ, SK, AT, and DE) and have big plans, especially in Germany. In our high season, we spread the idea that a second-hand book makes a great holiday gift — and together, we aim to make second-hand the new European standard. A new warehouse in Prague's Hostivař and €4 million from our latest funding round help us accelerate this mission. Sounds exciting? Take a look at the position and join us in conquering the European book market! We’re looking for a Fullstack/Backend Developer (Pricing Team) What you’ll be doing:

  • Continuous development of our pricing engine, one of the key systems driving our competitiveness and profitability.
  • Initial Pricing — building automation using web scraping and AI to eliminate manual pricing entirely.
  • Repricing — developing dynamic pricing logic that reacts to external competitor prices, internal performance data, and price elasticity of demand.
  • Creating and refining channel-specific pricing strategies.
  • Developing and maintaining FE administration tools for pricing management.
  • Working on current initiatives such as upgrading our AI pricing model, refactoring initial pricing, adding new data sources, and shifting pricing logic from individual editions to all editions within the same language.
Tech Stack:
  • Languages & Frameworks: Typescript (Next.js + AdonisJS), MySQL, Redis, Manticore
  • Infrastructure: Kubernetes in AWS, Prometheus
  • Nice-to-have: PHP, Python, Kafka or RabbitMQ
How we work:
  • We run two-week sprints and review our backlog twice a week.
  • We have daily short stand-ups, weekly Backend/Frontend Tech meetings, and dedicated Pricing syncs.
  • Open discussions and honest feedback — our developers are not code churners but active contributors to shaping solutions.
  • Our office is at Kolbenova metro station; Wednesdays are mandatory on-site days.
  • We regularly dedicate time to technical debt and code clean-up, especially important in pricing systems.
What we offer:
  • The chance to work on one of the core engines of Knihobot’s business.
  • A highly impactful role — pricing improvements have visible effects across the entire company within minutes.
  • Everything is built in-house, offering a wide variety of challenges and learning opportunities.
  • Collaboration with skilled colleagues across Product, Data, Tech, and Operations.
  • An opportunity to significantly influence the future of pricing at Knihobot and grow rapidly with us.
  • Multisport card, employee discounts on buying and selling books, partner discounts.
  • Option for ESOP (employee stock ownership plan).
  • A pragmatic, informal environment where we enjoy humor and getting things done.

Podobné nabídky

TOP
logo

Česká pošta, s.p. • Praha

27.11.2025
TOP
logo

Lidl Česká republika s.r.o. • Praha

04.12.2025
TOP
logo

ADECCO spol. s r.o. • Praha

02.12.2025

🐛 Debug Panel

📄 STRÁNKA
Nginx: 2.345s
PHP: 0.103s
Rozdíl: 0.049s
s.id
2228
s.kontroler
inzeraty/polozka/hlavni/k.i.polozka.hlavni.php
s.uri_cs
nabidka/**/**
s.uri_sk
s.nazev_cz
Inzeráty detail
s.nazev_sk
Inzeráty detail
s.titulek_cz
Inzeráty detail
s.titulek_sk
s.popis_cz
Inzeráty detail
s.popis_sk
s.autorizovany_uchazec
vse
titulek
Inzeráty detail
s.titulek
Fullstack / Back-end developer (Pricing team) | Knihobot & Bookbot, nabídka práce | Flek.cz
popis
Inzeráty detail
s.popis
Knihobot is a re-commerce platform where over 5 million books have already changed hands. Every day, we send around 22,000 books to new homes and gain thousands of new customers — figures we plan to double within the next year. We're among the top 10 fastest-growing tech startups in the CEE region and have won the Heureka ShopRoku award for 2021, 2022, and 2023. We operate in four European markets (CZ, SK, AT, and DE) and have big plans, especially in Germany. In our high season, we spread the idea that a second-hand book makes a great holiday gift — and together, we aim to make second-hand the new European standard. A new warehouse in Prague's Hostivař and €4 million from our latest funding round help us accelerate this mission. Sounds exciting? Take a look at the position and join us in conquering the European book market! We’re looking for a Fullstack/Backend Developer (Pricing Team) What you’ll be doing: * Continuous development of our pricing engine, one of the key systems driving our competitiveness and profitability. * Initial Pricing — building automation using web scraping and AI to eliminate manual pricing entirely. * Repricing — developing dynamic pricing logic that reacts to external competitor prices, internal performance data, and price elasticity of demand. * Creating and refining channel-specific pricing strategies. * Developing and maintaining FE administration tools for pricing management. * Working on current initiatives such as upgrading our AI pricing model, refactoring initial pricing, adding new data sources, and shifting pricing logic from individual editions to all editions within the same language. Tech Stack: * Languages & Frameworks: Typescript (Next.js + AdonisJS), MySQL, Redis, Manticore * Infrastructure: Kubernetes in AWS, Prometheus * Nice-to-have: PHP, Python, Kafka or RabbitMQ How we work: * We run two-week sprints and review our backlog twice a week. * We have daily short stand-ups, weekly Backend/Frontend Tech meetings, and dedicated Pricing syncs. * Open discussions and honest feedback — our developers are not code churners but active contributors to shaping solutions. * Our office is at Kolbenova metro station; Wednesdays are mandatory on-site days. * We regularly dedicate time to technical debt and code clean-up, especially important in pricing systems. What we offer: * The chance to work on one of the core engines of Knihobot’s business. * A highly impactful role — pricing improvements have visible effects across the entire company within minutes. * Everything is built in-house, offering a wide variety of challenges and learning opportunities. * Collaboration with skilled colleagues across Product, Data, Tech, and Operations. * An opportunity to significantly influence the future of pricing at Knihobot and grow rapidly with us. * Multisport card, employee discounts on buying and selling books, partner discounts. * Option for ESOP (employee stock ownership plan). * A pragmatic, informal environment where we enjoy humor and getting things done.
🔍 SELECT DOTAZY 12
Celkem: 0.054s
Max: 0.017s
#1 → 0.02s
select `i.id`, `i.mzda_typ`, `i.mzda_od`, `i.mzda_do`, `i.mzda_od`, `i.mzda_do`, `i.mzda_mena`, `i.titulek_cz`, `i.popis_cz`, `i.datum`, `i.poz.id`, `i.datum_schvaleni`, `i.zdroj`, `i.se_i.id`, `i.kr.id`, `i.okr.id`, `i.ob.id`, `i.obor.id`, `i.st.id`, `i.uvaz.id`, `zvyh.top`, `zvyh.vip`, `fi.id`, `fi.nazev`, `fi.koncovka1`, `fi.odpovime_ihned` from inzeraty_select i where `i.se_i.id`= "3" and `i.st.id` = "1" and `i.kr.id` in("19") and `i.obor.id` in(",58,") and `i.poz.id` in(",1,") order by `zvyh.vip_datum` desc, `zvyh.top_datum` desc ###FZH - proc tu neni nase metoda na stranovani limit 3, 3
#2 → 0.01s
select `i.id` from inzeraty_select i where `i.se_i.id`= "3" and `i.st.id` = "1" and `i.kr.id` in("19") and `i.obor.id` in(",58,") and `i.poz.id` in(",1,")
#3 → 0.01s
select i.`id` `i.id`, i.`id_zdroje` `i.id_zdroje`, i.`zdroj` `i.zdroj`, i.`zdroj__datum_upravy` `i.zdroj__datum_upravy`, i.`id_uzivatele` `i.id_uzivatele`, i.`id_firmy` `i.id_firmy`, i.`titulek_cz` `i.titulek_cz`, i.`titulek_sk` `i.titulek_sk`, i.`oznaceni` `i.oznaceni`, i.`kontaktni_osoba` `i.kontaktni_osoba`, i.`_popis_cz` `i._popis_cz`, i.`_popis_sk` `i._popis_sk`, i.`url_videohovor` `i.url_videohovor`, i.`videohovor_poznamka` `i.videohovor_poznamka`, i.`zobraz_videohovor` `i.zobraz_videohovor`, i.`id_sekce` `i.id_sekce`, i.`hledane_obory` `i.hledane_obory`, i.`hledane_pozice` `i.hledane_pozice`, i.`pozice_fulltext` `i.pozice_fulltext`, i.`cela_sk` `i.cela_sk`, i.`cela_cr` `i.cela_cr`, i.`id_statu` `i.id_statu`, i.`st.zkratka` `st.zkratka`, i.`st.zkratka` `i.st.zkratka`, i.`id_kraje` `i.id_kraje`, i.`id_okresu` `i.id_okresu`, i.`id_mesta` `i.id_mesta`, i.`id_statu_zahranici` `i.id_statu_zahranici`, i.`id_kategorie_brigad` `i.id_kategorie_brigad`, i.`adr.id` `adr.id`, i.`adr.id` `i.adr.id`, i.`adresa_pracoviste` `i.adresa_pracoviste`, i.`adresa_pracoviste_adresa` `i.adresa_pracoviste_adresa`, i.`adresa_pracoviste_id_mesta` `i.adresa_pracoviste_id_mesta`, i.`id_smlouvy` `i.id_smlouvy`, i.`termin_od` `i.termin_od`, i.`termin_slovy` `i.termin_slovy`, i.`termin_do` `i.termin_do`, i.`pocet_mist` `i.pocet_mist`, i.`mzda_typ` `i.mzda_typ`, i.`mzda_od` `i.mzda_od`, i.`mzda_od_float` `i.mzda_od_float`, i.`mzda_do` `i.mzda_do`, i.`mzda_do_float` `i.mzda_do_float`, i.`mzda_mena` `i.mzda_mena`, i.`mzda_od_mesicne` `i.mzda_od_mesicne`, i.`mzda_od_mesicne_float` `i.mzda_od_mesicne_float`, i.`mzda_do_mesicne` `i.mzda_do_mesicne`, i.`mzda_do_mesicne_float` `i.mzda_do_mesicne_float`, i.`mzda_od_hodinove` `i.mzda_od_hodinove`, i.`mzda_od_hodinove_float` `i.mzda_od_hodinove_float`, i.`mzda_do_hodinove` `i.mzda_do_hodinove`, i.`mzda_do_hodinove_float` `i.mzda_do_hodinove_float`, i.`mzda_od_mesicne_eur` `i.mzda_od_mesicne_eur`, i.`mzda_od_mesicne_eur_float` `i.mzda_od_mesicne_eur_float`, i.`mzda_do_mesicne_eur` `i.mzda_do_mesicne_eur`, i.`mzda_do_mesicne_eur_float` `i.mzda_do_mesicne_eur_float`, i.`mzda_od_hodinove_eur` `i.mzda_od_hodinove_eur`, i.`mzda_od_hodinove_eur_float` `i.mzda_od_hodinove_eur_float`, i.`mzda_do_hodinove_eur` `i.mzda_do_hodinove_eur`, i.`mzda_do_hodinove_eur_float` `i.mzda_do_hodinove_eur_float`, i.`mzda_prum_mesicne` `i.mzda_prum_mesicne`, i.`mzda_prum_mesicne_float` `i.mzda_prum_mesicne_float`, i.`mzda_prum_hodinove` `i.mzda_prum_hodinove`, i.`mzda_prum_hodinove_float` `i.mzda_prum_hodinove_float`, i.`mzda_prum_mesicne_eur` `i.mzda_prum_mesicne_eur`, i.`mzda_prum_mesicne_eur_float` `i.mzda_prum_mesicne_eur_float`, i.`mzda_prum_hodinove_eur` `i.mzda_prum_hodinove_eur`, i.`mzda_prum_hodinove_eur_float` `i.mzda_prum_hodinove_eur_float`, i.`pohlavi` `i.pohlavi`, i.`vhodne_pro` `i.vhodne_pro`, i.`vek` `i.vek`, i.`delka_inzerce` `i.delka_inzerce`, i.`id_jazyku1` `i.id_jazyku1`, i.`id_jazyku1_uroven` `i.id_jazyku1_uroven`, i.`id_jazyku2` `i.id_jazyku2`, i.`id_jazyku2_uroven` `i.id_jazyku2_uroven`, i.`id_jazyku3` `i.id_jazyku3`, i.`id_jazyku3_uroven` `i.id_jazyku3_uroven`, i.`id_vhodne_pro_zahranici` `i.id_vhodne_pro_zahranici`, i.`id_kategorie_zahranici` `i.id_kategorie_zahranici`, i.`id_inzerenta` `i.id_inzerenta`, i.`uvazek` `i.uvazek`, i.`id_delka_prac_pomeru` `i.id_delka_prac_pomeru`, i.`id_min_vzdelani` `i.id_min_vzdelani`, i.`id_zamereni_studia` `i.id_zamereni_studia`, i.`predvolba_telefon` `i.predvolba_telefon`, i.`telefon` `i.telefon`, i.`zobraz_telefon` `i.zobraz_telefon`, i.`telefon_poznamka` `i.telefon_poznamka`, i.`datum_schvaleni` `i.datum_schvaleni`, i.`datum_aktualizace` `i.datum_aktualizace`, i.`datum_newsletter` `i.datum_newsletter`, i.`datum_expirace` `i.datum_expirace`, i.`datum` `i.datum`, i.`datum_upravy` `i.datum_upravy`, i.`datum_upravy2` `i.datum_upravy2`, i.`zobrazeni_detail` `i.zobrazeni_detail`, i.`pocet_zobrazeni_celkem` `i.pocet_zobrazeni_celkem`, i.`pocet_zobrazeni_projekty` `i.pocet_zobrazeni_projekty`, i.`pocet_emailu` `i.pocet_emailu`, i.`pocet_emailu_celkem` `i.pocet_emailu_celkem`, i.`pocet_emailu_projekty` `i.pocet_emailu_projekty`, i.`pocet_telefonatu` `i.pocet_telefonatu`, i.`pocet_telefonatu_celkem` `i.pocet_telefonatu_celkem`, i.`pocet_telefonatu_projekty` `i.pocet_telefonatu_projekty`, i.`zobraz` `i.zobraz`, i.`zvyhodneni_top_datum` `i.zvyhodneni_top_datum`, i.`pozice` `i.pozice`, i.`datum_smazani` `i.datum_smazani`, i.`info` `i.info`, i.`newsletter` `i.newsletter`, i.`placeny` `i.placeny`, i.`dokoncen_krok2` `i.dokoncen_krok2`, i.`krok2_upozorneni` `i.krok2_upozorneni`, i.`id_typ_firmy` `i.id_typ_firmy`, i.`je_sablona` `i.je_sablona`, i.`export_nabidky_prace` `i.export_nabidky_prace`, i.`top` `i.top`, i.`top_standard` `i.top_standard`, i.`zvyhodneni_aktualizovano` `i.zvyhodneni_aktualizovano`, i.`zkontrolovano_dnesni_news` `i.zkontrolovano_dnesni_news`, i.`qr` `i.qr`, i.`qr_datum` `i.qr_datum`, i.`software__prezdivka` `i.software__prezdivka`, i.`ip` `i.ip`, i.`vporadku_kontrola` `i.vporadku_kontrola`, i.`smazat_kontrola` `i.smazat_kontrola`, i.`kontrola_kontrola` `i.kontrola_kontrola`, i.`evidovat` `i.evidovat`, i.`smazano_rucne_smazane` `i.smazano_rucne_smazane`, i.`benefity` `i.benefity`, i.`smeny` `i.smeny`, i.`sezony` `i.sezony`, i.`typy_brigad` `i.typy_brigad`, i.`doplneni` `i.doplneni`, i.`zobraz_aplikace` `i.zobraz_aplikace`, i.`uroven_smazani` `i.uroven_smazani`, i.`smazal` `i.smazal`, i.`telefon_smazani` `i.telefon_smazani`, i.`historie_inzeratu` `i.historie_inzeratu`, i.`i.typ_nabidky` `i.typ_nabidky`, i.`i.typ_nabidky` `i.i.typ_nabidky`, i.`i.typ_inzerce` `i.typ_inzerce`, i.`i.typ_inzerce` `i.i.typ_inzerce`, i.`i.fulltext` `i.fulltext`, i.`i.fulltext` `i.i.fulltext`, i.`sancemetr_individualni` `i.sancemetr_individualni`, i.`sancemetr` `i.sancemetr`, i.`projekty` `i.projekty`, i.`datum_nastaveni_pocet` `i.datum_nastaveni_pocet`, i.`sancemetr_vypocet` `i.sancemetr_vypocet`, i.`lat` `i.lat`, i.`lon` `i.lon`, i.`souradnice` `i.souradnice`, i.`poznamka_import` `i.poznamka_import`, i.`url_firebase` `i.url_firebase`, i.`url_formular` `i.url_formular`, i.`zobrazit_detail_smazany` `i.zobrazit_detail_smazany`, i.`admin_u.id` `admin_u.id`, i.`admin_u.id` `i.admin_u.id`, i.`pr.id-pridani` `pr.id-pridani`, i.`pr.id-pridani` `i.pr.id-pridani`, i.`jaz.ids` `jaz.ids`, i.`jaz.ids` `i.jaz.ids`, i.`opakovane_vystaveni` `i.opakovane_vystaveni`, i.`anonymizace` `i.anonymizace`, i.`preloz` `i.preloz`, i.`prelozeno` `i.prelozeno`, i.id_firmy `fi.id`, i.titulek_cz `i.titulek_cz`, i.id_sekce `i.se_i.id`, i.id_kraje `i.kr.id`, i.id_okresu `i.okr.id`, i.id_mesta `i.ob.id`, i.id_kraje `i.kr.id`, i.id_statu `i.st.id`, i.id_kategorie_brigad `i.kat_brig.id`, i.hledane_obory `i.obor.id`, i.hledane_pozice `i.poz.id`, i.vhodne_pro `i.vhod.id`, i.mzda_typ `i.mzda_typ`, i.adresa_pracoviste_id_mesta `i.adresa_pracoviste_obcecz_obec_casti_id`, i.id_uzivatele `u.id`, i.uvazek `i.uvaz.id`, i.id_sekce `i.se_i.id`, (select count(`i.id`) from inzeraty_select where fi.id = `fi.id`) `i.pocet_inzeratu`, i_text.popis_cz `i_text.popis_cz`, i_text.nabizime_cz `i_text.nabizime_cz`, i_text.pozadujeme_cz `i_text.pozadujeme_cz`, fi.id `fi.id`, fi.nazev `fi.nazev`, fi.koncovka1 `fi.koncovka1`, fi.email `fi.email`, fi.ident `fi.ident`, fi.kontaktni_osoba `fi.kontaktni_osoba`, u.id `u.id`, u.jmeno `u.jmeno`, u.prijmeni `u.prijmeni` from inzeraty i join inzeraty_text i_text on i.id = i_text.id_inzeratu join firmy fi on fi.id = i.id_firmy join uzivatele u on u.id = i.id_uzivatele where i.id="6141564"
#4 → 0.01s
select presm.id `presm.id`, presm.cil `presm.cil`, presm.status `presm.status` from presmerovani presm where (presm.zdroj = "https://www.flek.cz/nabidka/fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564/" and presm.shoda = "presna" ) or (locate(presm.zdroj, "https://www.flek.cz/nabidka/fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564/%") > 0 and presm.shoda = "volna" )
#5 → 0s
select column_name `column_name` from information_schema.columns where table_schema ="fajnbrig5" and table_name = "inzeraty"
#6 → 0s
select `i.id` from inzeraty_select where `fi.id`="112190" and `i.st.id` = "1"
#7 → 0s
select s.id `s.id`, s.kontroler `s.kontroler`, s.uri_cs1 `s.uri_cs`, s.uri_sk `s.uri_sk`, s.nazev_cz `s.nazev_cz`, s.nazev_sk `s.nazev_sk`, s.titulek_cz `s.titulek_cz`, s.titulek_sk `s.titulek_sk`, s.popis_cz `s.popis_cz`, s.popis_sk `s.popis_sk`, s.autorizovany_uchazec `s.autorizovany_uchazec` from stranky s where s.archiv = "0" and s.`pr_jaz.id` = "8" order by s.poradi_nacteni desc
#8 → 0s
select rekl_ban.id `rekl_ban.id`, rekl_ban.obrazek1 `rekl_ban.obrazek1`, rekl_ban.prokliku `rekl_ban.prokliku`, rekl_ban.zobrazeni `rekl_ban.zobrazeni`, rekl_ban.max_pocet_zobrazeni `rekl_ban.max_pocet_zobrazeni`, rekl_ban.max_pocet_prokliku `rekl_ban.max_pocet_prokliku`, rekl_ban.od `rekl_ban.od`, rekl_ban.do `rekl_ban.do`, rekl_ban.url `rekl_ban.url` from reklamni_bannery rekl_ban where rekl_ban.reklamni_bannery_umisteni_id = 52 and rekl_ban.zobraz = "1" and rekl_ban.archiv = "0" and rekl_ban.smazano = "0" and case when rekl_ban.max_pocet_zobrazeni is null then 1 else rekl_ban.zobrazeni <= rekl_ban.max_pocet_zobrazeni end and case when rekl_ban.max_pocet_prokliku is null then 1 else rekl_ban.prokliku <= rekl_ban.max_pocet_prokliku end and case when rekl_ban.do is null then 1 else rekl_ban.do >= curdate() end and case when rekl_ban.od is null then 1 else rekl_ban.od <= curdate() end order by rand() limit 1
#9 → 0s
select s.id `s.id`, s.uri_cs `s.uri_cs`, s.`pr.id` `s.pr.id` from stranky s where s.id = "120"
#10 → 0s
select s.id `s.id`, s.uri_cs `s.uri_cs`, s.`pr.id` `s.pr.id` from stranky s where s.id = "120"
#11 → 0s
select ip `ip` from ip_blokace where ip = "216.73.216.57" and archiv = "0"
#12 → 0s
select s.id `s.id`, s.uri_cs `s.uri_cs`, s.`pr.id` `s.pr.id` from stranky s where s.id = "120"
➕ INSERT DOTAZY 1
Celkem: 0.001s
#1 → 0s
insert `pozadavky` (`id`) values (null)
🔗 $_GET 5
Array
(
    [stranka] => nabidka/fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564
    [titulek] => 
    [id] => 0
    [params] => Array
        (
            [0] => fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564
            [1] => 
        )

    [f90] => Array
        (
            [i.kr.id.2] => Array
                (
                    [0] => 19
                )

            [i.obor.id.2] => Array
                (
                    [0] => 58
                )

            [i.poz.id.2] => Array
                (
                    [0] => 1
                )

        )

)
📮 $_POST 0
Array
(
)
🔐 $_SESSION 1
Array
(
    [csrf] => 6933dc18250d97.84592515
)
🍪 $_COOKIE 1
Array
(
    [PHPSESSID] => e11fc67b8ecedffcc0cf8230f575063d
)
🖥️ $_SERVER 43
Array
(
    [magick_temporary_path] => /www/hosting/test-fl.cz/tmp
    [magick_tmp_path] => /www/hosting/test-fl.cz/tmp
    [magick_tmpdir] => /www/hosting/test-fl.cz/tmp
    [sys_temp_dir] => /www/hosting/test-fl.cz/tmp
    [sys_tmp_dir] => /www/hosting/test-fl.cz/tmp
    [HOME] => /www/hosting/test-fl.cz
    [USER] => www-data
    [HTTP_COOKIE] => PHPSESSID=e11fc67b8ecedffcc0cf8230f575063d
    [HTTP_REFERER] => https://stage.cz.www.test-fl.cz/nabidka/fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564
    [HTTP_ACCEPT_ENCODING] => gzip, br, zstd, deflate
    [HTTP_USER_AGENT] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
    [HTTP_ACCEPT] => */*
    [HTTP_HOST] => stage.cz.www.test-fl.cz
    [KOREN] => /www/hosting/verzovani/stage/
    [STAT] => cz
    [PROJEKT] => fl
    [PATH_INFO] => /index.php
    [SCRIPT_FILENAME] => /www/hosting/verzovani/stage/index.php
    [REDIRECT_STATUS] => 200
    [SERVER_NAME] => ~^(?<sub>(mara|risa|kuba|dominik|master|hotfix|stage)).(?<st>(.*)).www.test-fl.cz
    [SERVER_PORT] => 443
    [SERVER_ADDR] => 95.168.198.11
    [REMOTE_USER] => 
    [REMOTE_PORT] => 11923
    [REMOTE_ADDR] => 216.73.216.57
    [SERVER_SOFTWARE] => nginx/1.22.1
    [GATEWAY_INTERFACE] => CGI/1.1
    [HTTPS] => on
    [REQUEST_SCHEME] => https
    [SERVER_PROTOCOL] => HTTP/2.0
    [DOCUMENT_ROOT] => /www/hosting/verzovani/stage
    [DOCUMENT_URI] => /index.php
    [REQUEST_URI] => /nabidka/fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564/
    [SCRIPT_NAME] => /index.php
    [CONTENT_LENGTH] => 
    [CONTENT_TYPE] => 
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => stranka=nabidka/fullstack-back-end-developer-pricing-team-knihobot-bookbot/6141564
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /index.php/index.php
    [REQUEST_TIME_FLOAT] => 1765006392.4244
    [REQUEST_TIME] => 1765006392
    [cr.id] => 
)