Backend Developer / Typescript + Node.JS | IP Fabric s.r.o. | Fajn-práce.cz

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

Informace o pracovním místě

    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.
Datum nástupu: Ihned
Mzda: Dle domluvy
Počet míst: 1
Úvazek: Plný
Min. vzdělání: Středoškolské
Firma: StartupJobs.com s.r.o.
Zadavatel: StartupJobs Jobot

Máte zájem o práci?

Získej Fajn práci s naší Fajn apkou

fajn-prace

🐛 Debug Panel

📄 STRÁNKA
Nginx: 0.37s
PHP: 0.087s
Rozdíl: 0.063s
s.id
199
s.kontroler
inzeraty/polozka/hlavni/k.i.polozka.hlavni.php
s.uri_cs
/prace/*/+-*/
s.nazev_cz
Detail inzerátu
s.titulek_cs
Detail inzerátu
s.popis_cz
Detail inzerátu
s.popis_cs
Detail inzerátu
s.autorizovany_uchazec
vse
titulek
popis
Detail inzerátu
s.titulek
Backend Developer / Typescript + Node.JS | IP Fabric s.r.o. | Fajn-práce.cz
🔍 SELECT DOTAZY 10
Celkem: 0.024s
Max: 0.006s
#1 → 0.01s
select presm.id `presm.id`, presm.cil `presm.cil`, presm.status `presm.status` from presmerovani presm where (presm.zdroj = "https://www.fajn-prace.cz/prace/praha/6142721-backend-developer-type-nodejs-ip-fabric-sro/" and presm.shoda = "presna" ) or (locate(presm.zdroj, "https://www.fajn-prace.cz/prace/praha/6142721-backend-developer-type-nodejs-ip-fabric-sro/%") > 0 and presm.shoda = "volna" )
#2 → 0s
select i.id `i.id`, i.titulek_cz `i.titulek_cz`, i.titulek_sk `i.titulek_sk`, i.adresa_pracoviste_adresa `i.adresa_pracoviste_adresa`, i.adresa_pracoviste_id_mesta `i.adresa_pracoviste_obcecz_obec_casti_id`, i.termin_od `i.termin_od`, i.termin_do `i.termin_do`, i.mzda_od `i.mzda_od`, i.mzda_do `i.mzda_do`, i.mzda_mena `i.mzda_mena`, i.mzda_typ `i.mzda_typ`, i.pocet_mist `i.pocet_mist`, i.uvazek `i.uvazek`, i.vhodne_pro `i.vhodne_pro`, i.id_min_vzdelani `i.id_min_vzdelani`, i.id_kraje `i.kr.id`, i.id_okresu `i.okr.id`, i.id_mesta `i.ob.id`, i.id_statu `i.st.id`, i.zobraz_telefon `i.zobraz_telefon`, i.zobraz_videohovor `i.zobraz_videohovor`, i.telefon `i.telefon`, i.adresa_pracoviste `i.adresa_pracoviste`, i.id_sekce `i.se_i.id`, trim(BOTH "," from i.hledane_obory) `i.obory_id`, trim(BOTH "," from i.hledane_pozice) `i.pozice_id`, i.datum `i.datum`, i.datum_schvaleni `i.datum_schvaleni`, i.datum_expirace `i.datum_expirace`, i.url_videohovor `i.url_videohovor`, i.zobraz `i.zobraz`, i.id_statu_zahranici `i.id_statu_zahranici`, i.id_kategorie_brigad `i.id_kategorie_brigad`, i.vek `i.vek`, i.pohlavi `i.pohlavi`, i.doplneni `i.doplneni`, i.id_inzerenta `i.id_inzerenta`, i.id_jazyku1_uroven `i.id_jazyku1_uroven`, i.id_jazyku1 `i.id_jazyku1`, i.lat `i.lat`, i.lon `i.lon`, i.sancemetr_individualni `i.sancemetr_individualni`, i.sancemetr `i.sancemetr`, i.uroven_smazani `i.uroven_smazani`, i.`adr.id` `i.adr.id`, i.termin_slovy `i.termin_slovy`, i.placeny `i.placeny`, u.firma_nazev `u.firma_nazev`, fi.ident `fi.ident`, fi.nazev `fi.nazev`, fi.popis `fi.popis`, fi.id `fi.id`, fi.koncovka1 `fi.koncovka1`, fi.oddil_inzeraty_zobrazeni `fi.oddil_inzeraty_zobrazeni`, fi.sancemetr_individualni `fi.sancemetr_individualni`, u.jmeno `u.jmeno`, u.prijmeni `u.prijmeni`, u.id `u.id`, u.telefon `u.telefon`, u.predvolba_telefon `u.predvolba_telefon`, u.zobraz_telefon `u.zobraz_telefon`, i_text.popis_cz `i_text.popis_cz`, i_text.popis_sk `i_text.popis_sk`, i_text.pozadujeme_cz `i_text.pozadujeme_cz`, i_text.pozadujeme_sk `i_text.pozadujeme_sk`, i_text.nabizime_cz `i_text.nabizime_cz`, i_text.nabizime_sk `i_text.nabizime_sk`, i_text.emaily `i_text.emaily`, adr.nazev `adr.nazev`, adr.nazev_ulice `adr.nazev_ulice`, adr.cislo_domovni `adr.cislo_domovni`, adr.cislo_orientacni `adr.cislo_orientacni` from inzeraty i join firmy fi on i.id_firmy = fi.id join uzivatele u on u.id = i.id_uzivatele join inzeraty_text i_text on i_text.id_inzeratu = i.id left join adresycz adr on adr.id=`adr.id` where i.id = "6142721"
#3 → 0s
select adr.gps_x `adr.gps_x`, adr.gps_y `adr.gps_y` from adresycz adr where adr.id = "554782"
#4 → 0s
select s.id `s.id`, s.kontroler `s.kontroler`, s.uri_cs `s.uri_cs`, s.nazev_cz `s.nazev_cz`, s.titulek_cz `s.titulek_cs`, s.popis_cz `s.popis_cz`, s.popis_cz `s.popis_cs`, s.autorizovany_uchazec `s.autorizovany_uchazec` from stranky s where s.archiv = "0" and s.id="199" and s.`pr.id` = "99"
#5 → 0s
select s.id `s.id`, s.uri_cs `s.uri_cs` from stranky s where 1 and s.archiv = "0" and s.`pr.id` = "99" and s.stara_url_fb = "0" and s.id not in (10)
#6 → 0s
select pr.id `pr.id`, pr.zkratka `pr.zkratka` from projekty pr where pr.`st.id`="1" and pr.`pr_jaz.id`="80"
#7 → 0s
select s.id `s.id`, s.uri_cs `s.uri_cs`, s.nazev_cz `s.nazev_cz` from stranky s where id in("100","102","103","104","105","106") order by FIELD(s.id, "100","102","103","104","105","106")
#8 → 0s
select ob.ident `ob.ident`, ob.nazev `ob.nazev` from krajecz kr join obcecz ob on kr.`ob.id-hlavni` = ob.id where kr.id not in (0, 19) and kr.id = "19"
#9 → 0s
select ip `ip` from ip_blokace where ip = "216.73.216.167" and archiv = "0"
#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"
➕ INSERT DOTAZY 1
Celkem: 0.002s
#1 → 0s
insert `pozadavky` (`id`) values (null)
🔗 $_GET 1
Array
(
    [uri] => /prace/praha/6142721-backend-developer-typescript-nodejs-ip-fabric-sro/
)
📮 $_POST 0
Array
(
)
🔐 $_SESSION 1
Array
(
    [csrf] => 6934046043dc75.78996039
)
🍪 $_COOKIE 0
Array
(
)
🖥️ $_SERVER 42
Array
(
    [magick_temporary_path] => /www/hosting/test-fp.cz/tmp
    [magick_tmp_path] => /www/hosting/test-fp.cz/tmp
    [magick_tmpdir] => /www/hosting/test-fp.cz/tmp
    [sys_temp_dir] => /www/hosting/test-fp.cz/tmp
    [sys_tmp_dir] => /www/hosting/test-fp.cz/tmp
    [HOME] => /www/hosting/test-fp.cz
    [USER] => www-data
    [HTTP_REFERER] => https://stage.cz.www.test-fp.cz/prace/praha/6142721-backend-developer-typescript-nodejs-ip-fabric-sro
    [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-fp.cz
    [KOREN] => /www/hosting/verzovani/stage/
    [STAT] => cz
    [PROJEKT] => fp
    [PATH_INFO] => /index.php
    [SCRIPT_FILENAME] => /www/hosting/verzovani/stage/index.php
    [REDIRECT_STATUS] => 200
    [SERVER_NAME] => ~^(?<sub>(mara|risa|kuba|master|hotfix|stage)).cz.www.test-fp.cz
    [SERVER_PORT] => 443
    [SERVER_ADDR] => 95.168.198.11
    [REMOTE_USER] => 
    [REMOTE_PORT] => 23330
    [REMOTE_ADDR] => 216.73.216.167
    [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] => /prace/praha/6142721-backend-developer-typescript-nodejs-ip-fabric-sro/
    [SCRIPT_NAME] => /index.php
    [CONTENT_LENGTH] => 
    [CONTENT_TYPE] => 
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => uri=/prace/praha/6142721-backend-developer-typescript-nodejs-ip-fabric-sro/
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /index.php/index.php
    [REQUEST_TIME_FLOAT] => 1765016671.9947
    [REQUEST_TIME] => 1765016671
    [cr.id] => 
)