Fullstack / Back-end developer (Pricing team) | Knihobot & Bookbot | Fajn-práce.cz

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

Informace o pracovním místě

    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.
Datum nástupu: Ihned
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.195s
PHP: 0.052s
Rozdíl: 0.035s
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
Fullstack / Back-end developer (Pricing team) | Knihobot & Bookbot | Fajn-práce.cz
🔍 SELECT DOTAZY 10
Celkem: 0.017s
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/6141564-fullstack-back-end-developer-pricing-team-knihobot-bookbot/" and presm.shoda = "presna" ) or (locate(presm.zdroj, "https://www.fajn-prace.cz/prace/praha/6141564-fullstack-back-end-developer-pricing-team-knihobot-bookbot/%") > 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 = "6141564"
#3 → 0s
select pr.id `pr.id`, pr.zkratka `pr.zkratka` from projekty pr where pr.`st.id`="1" and pr.`pr_jaz.id`="80"
#4 → 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")
#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 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"
#7 → 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"
#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 adr.gps_x `adr.gps_x`, adr.gps_y `adr.gps_y` from adresycz adr where adr.id = "554782"
#10 → 0s
select ip `ip` from ip_blokace where ip = "216.73.216.167" and archiv = "0"
➕ INSERT DOTAZY 1
Celkem: 0.001s
#1 → 0s
insert `pozadavky` (`id`) values (null)
🔗 $_GET 1
Array
(
    [uri] => /prace/praha/6141564-fullstack-back-end-developer-pricing-team-knihobot-bookbot/
)
📮 $_POST 0
Array
(
)
🔐 $_SESSION 1
Array
(
    [csrf] => 6933ed0609f941.62754167
)
🍪 $_COOKIE 1
Array
(
    [PHPSESSID] => 27ff64e76ef8aea9996aa4813bc8e85b
)
🖥️ $_SERVER 43
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_COOKIE] => PHPSESSID=27ff64e76ef8aea9996aa4813bc8e85b
    [HTTP_REFERER] => https://stage.cz.www.test-fp.cz/prace/praha/6141564-fullstack-back-end-developer-pricing-team-knihobot-bookbot
    [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] => 52929
    [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/6141564-fullstack-back-end-developer-pricing-team-knihobot-bookbot/
    [SCRIPT_NAME] => /index.php
    [CONTENT_LENGTH] => 
    [CONTENT_TYPE] => 
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => uri=/prace/praha/6141564-fullstack-back-end-developer-pricing-team-knihobot-bookbot/
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /index.php/index.php
    [REQUEST_TIME_FLOAT] => 1765010695.3761
    [REQUEST_TIME] => 1765010695
    [cr.id] => 
)