Banner

Backend Developer / Typescript + Node.JS | IP Fabric s.r.o.

Dle domluvy Dle domluvy Plný úvazek

O nabídce

About The Role We are looking for a senior backend engineer to join our Network Automation team (NAE) at IP Fabric. Our mission is to automatically discover and model complex networks in a unified way. We're currently redesigning our core Discovery Service. It is a core system component that scans and analyzes large enterprise networks containing hundreds of thousands of devices. Its primary objective is to build a complete and consistent view of the network topology, device inventory, and configuration state.We are redesigning the service with a parallel-processing architecture, allowing simultaneous traversal of multiple network segments. You’ll play a key role in shaping the future of this platform, from architecture to implementation. Most of your time will be hands-on (90%+), but with strong impact on design decisions. You'll work independently, have ownership of the codebase from the ground up, and bring your ideas and experience to the table. We don’t expect you to be an expert in everything — but we’re looking for an experienced engineer with a strong distributed systems mindset, capable of designing and delivering resilient backend services, and eager to explore new technologies like Go. What You’ll Do

  • Design and implement distributed backend systems for network data discovery and processing
  • Participate in the architectural redesign of our Discovery Service
  • Lead the migration of existing services to Docker and Kubernetes
  • Take part in designing deployment and scaling strategies
  • Work hands-on with Node.js/TypeScript and optionally Go
  • Collaborate with other backend, frontend and network engineers
  • Improve reliability, observability, and performance of our systems
  • Integrate messaging, caching, and database systems (RabbitMQ, Redis, PostgreSQL)
What You'll Need
  • 6+ years of backend engineering experience
  • Proven experience designing and building distributed systems
  • Excellent programming skills in TypeScript/Node.js or Golang
  • Experience with Docker, Kubernetes, and CI/CD practices
  • Solid understanding of networking concepts (IP, routing, protocols)
  • Self-starter mindset and ability to work independently
  • Passion for clean code and robust system architecture
  • Willingness to take ownership and bring new ideas
Bonus Points If You Have
  • Experience with Go
  • Previous exposure to network automation tools or platforms
  • Used Sentry before
  • Used grammars to implement parsers
  • Worked with big data, etl
  • Microservices architecture
  • k8s on-premise deployment
Our Stack
  • Node.js, TypeScript, Go (optional)
  • PostgreSQL, Redis
  • RabbitMQ
  • Docker, Kubernetes
  • GitLab CI, Monorepo (Nx)
Benefits & Perks
  • 25 days of holidays + 5 flexi-days.
  • Pluxee Flexi Card (up to 16 000 CZK per year)
  • Full remote or hybrid role depending on your choice.
  • Anniversary rewards.
  • Collaboration with diverse, international teams.
  • A pet-friendly office at IP Pavlova.
  • Complementary and yummy snacks, coffee, brew and refreshments.
  • Regular team and company events.

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.275s
PHP: 0.112s
Rozdíl: 0.059s
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
Backend Developer / Typescript + Node.JS | IP Fabric s.r.o., nabídka práce | Flek.cz
popis
Inzeráty detail
s.popis
About The Role We are looking for a senior backend engineer to join our Network Automation team (NAE) at IP Fabric. Our mission is to automatically discover and model complex networks in a unified way. We're currently redesigning our core Discovery Service. It is a core system component that scans and analyzes large enterprise networks containing hundreds of thousands of devices. Its primary objective is to build a complete and consistent view of the network topology, device inventory, and configuration state.We are redesigning the service with a parallel-processing architecture, allowing simultaneous traversal of multiple network segments. You’ll play a key role in shaping the future of this platform, from architecture to implementation. Most of your time will be hands-on (90%+), but with strong impact on design decisions. You'll work independently, have ownership of the codebase from the ground up, and bring your ideas and experience to the table. We don’t expect you to be an expert in everything — but we’re looking for an experienced engineer with a strong distributed systems mindset, capable of designing and delivering resilient backend services, and eager to explore new technologies like Go. What You’ll Do * Design and implement distributed backend systems for network data discovery and processing * Participate in the architectural redesign of our Discovery Service * Lead the migration of existing services to Docker and Kubernetes * Take part in designing deployment and scaling strategies * Work hands-on with Node.js/TypeScript and optionally Go * Collaborate with other backend, frontend and network engineers * Improve reliability, observability, and performance of our systems * Integrate messaging, caching, and database systems (RabbitMQ, Redis, PostgreSQL) What You'll Need * 6+ years of backend engineering experience * Proven experience designing and building distributed systems * Excellent programming skills in TypeScript/Node.js or Golang * Experience with Docker, Kubernetes, and CI/CD practices * Solid understanding of networking concepts (IP, routing, protocols) * Self-starter mindset and ability to work independently * Passion for clean code and robust system architecture * Willingness to take ownership and bring new ideas Bonus Points If You Have * Experience with Go * Previous exposure to network automation tools or platforms * Used Sentry before * Used grammars to implement parsers * Worked with big data, etl * Microservices architecture * k8s on-premise deployment Our Stack * Node.js, TypeScript, Go (optional) * PostgreSQL, Redis * RabbitMQ * Docker, Kubernetes * GitLab CI, Monorepo (Nx) Benefits & Perks * 25 days of holidays + 5 flexi-days. * Pluxee Flexi Card (up to 16 000 CZK per year) * Full remote or hybrid role depending on your choice. * Anniversary rewards. * Collaboration with diverse, international teams. * A pet-friendly office at IP Pavlova. * Complementary and yummy snacks, coffee, brew and refreshments. * Regular team and company events.
🔍 SELECT DOTAZY 12
Celkem: 0.053s
Max: 0.018s
#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="6142721"
#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/backend-developer-type-nodejs-ip-fabric-sro/6142721/" and presm.shoda = "presna" ) or (locate(presm.zdroj, "https://www.flek.cz/nabidka/backend-developer-type-nodejs-ip-fabric-sro/6142721/%") > 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 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
#7 → 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
#8 → 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"
#9 → 0s
select `i.id` from inzeraty_select where `fi.id`="112190" and `i.st.id` = "1"
#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/backend-developer-typescript-nodejs-ip-fabric-sro/6142721
    [titulek] => 
    [id] => 0
    [params] => Array
        (
            [0] => backend-developer-typescript-nodejs-ip-fabric-sro/6142721
            [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] => 6933e816489ba4.70830710
)
🍪 $_COOKIE 1
Array
(
    [PHPSESSID] => aa2eb7e0fb37fadcd45e4495f3087362
)
🖥️ $_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=aa2eb7e0fb37fadcd45e4495f3087362
    [HTTP_REFERER] => https://stage.cz.www.test-fl.cz/nabidka/backend-developer-typescript-nodejs-ip-fabric-sro/6142721
    [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] => 52639
    [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/backend-developer-typescript-nodejs-ip-fabric-sro/6142721/
    [SCRIPT_NAME] => /index.php
    [CONTENT_LENGTH] => 
    [CONTENT_TYPE] => 
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => stranka=nabidka/backend-developer-typescript-nodejs-ip-fabric-sro/6142721
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /index.php/index.php
    [REQUEST_TIME_FLOAT] => 1765009448.5134
    [REQUEST_TIME] => 1765009448
    [cr.id] => 
)