- [Case Studies](/kategorie/case-studies)
- [E‑commerce tipy](/kategorie/e-commerce-tipy)
- [E‑shopové riešenia a platformy](/kategorie/e-shopove-riesenia-platformy)
- [Mergado Pack](/kategorie/mergado-pack)
- [Mergado tipy](/kategorie/mergado-tipy)
- [Novinky v Mergade](/kategorie/novinky-v-mergade)
- [Novinky z porovnávačov cien](/kategorie/novinky-z-porovnavacov-cien)
- [Pracujeme s Mergadom](/kategorie/pracujeme-s-mergadom)
- [Rozhovory](/kategorie/rozhovory)
- [Rozšírenia](/kategorie/aplikacie)
- [S Mergadom do zahraničia](/kategorie/s-mergadom-do-zahranicia)
- [Zo života Mergada](/kategorie/zo-zivota-mergada)
 



 

 1. [  Domov  ](/)
2. [     Blog  ](/blog)
3. [     Pracujeme s Mergadom  ](/kategorie/pracujeme-s-mergadom)
4. <a class="flex items-center gap-2 hover:underline" href="" itemid="" itemprop="item" itemscope="" itemtype="https://schema.org/Thing">    **Poďte k nám programovať v Pythone!** </a>
 
  

 

#  **Poďte k nám programovať v Pythone!** 

 

 

 [    ![](https://www.mergado.sk/sites/default/files/perm/user-avatar/dan-mergado.jpg)   Daniel Czetner  ](/blog/daniel-czetner) [Pracujeme s Mergadom](/kategorie/pracujeme-s-mergadom) 

10. 11. 2015

2 minúty čítania

 

 

 

 

 

  ![](https://www.mergado.sk/sites/default/files/field/image/job-python_1.png)  

Už je to tak. Rastieme, a tak na pozíciu backend vývojára hľadáme nového kolegu/​kolegyňu. Krotiť bude veľké dáta českej aj zahraničnej e‑commerce, a to od spracovania analytických dát až po učiace sa algoritmy. Prečítajte si o pracovnej ponuke viac.



 

 

 
                function tableOfContents() {
                  return {
                    headings_menu: [],
                    heading_active: '', // Added to track the active section
                    shouldBeSticky: false,

                    generateToC() {
                      const headings = document.querySelectorAll('.js-article-full-headings h2, .js-article-full-headings h3');
                      let headingMap = {};

                      headings.forEach((heading) => { // Use an arrow function to maintain `this` context
                        // Normalize heading text to remove diacritics, then replace non-alphanumeric characters with dashes
                        var normalizedText = heading.textContent.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); // Remove diacritics
                        var id = heading.id ? heading.id : normalizedText.trim().toLowerCase()
                          .split(' ').join('-').replace(/[^a-z0-9\-]/ig, ''); // Updated regex to replace non-alphanumeric characters
                        headingMap[id] = headingMap[id] !== undefined ? ++headingMap[id] : 0;

                        // Use the updated `id` with diacritics removed for the heading id and the TOC
                        const finalId = headingMap[id] ? `${id}-${headingMap[id]}` : id;
                        this.headings_menu.push({
                          id: finalId,
                          title: heading.textContent,
                          level: heading.tagName.toLowerCase(), // Track heading level
                          active: false, // Initially set active to false
                        });
                        heading.id = finalId;
                      });
                    },

                    checkStickyNeeded() {
                      const ul = this.$el.querySelector('ul');
                      if (ul) {
                        this.shouldBeSticky = ul.scrollHeight < window.innerHeight;
                      }
                    },

                    setActiveHeading() {
                      // disabled not working with active state on click
                      // add @scroll.window="setActiveHeading()" to the parent div

                      // const headings = document.querySelectorAll('.js-article-full-headings h2');
                      // let activeHeading = '';
                      // let closestHeadingDistance = Infinity;

                      // headings.forEach((heading) => {
                      //   const rect = heading.getBoundingClientRect();
                      //   const offset = rect.top - window.innerHeight / 2; // Consider heading in the middle of the screen as active

                      //   if (offset < 0 && Math.abs(offset) < closestHeadingDistance) {
                      //     activeHeading = heading.id;
                      //     closestHeadingDistance = Math.abs(offset);
                      //   }
                      // });

                      // // Update the active state in headings_menu
                      // if (activeHeading !== this.heading_active) {
                      //   this.headings_menu = this.headings_menu.map(item => ({
                      //     ...item,
                      //     active: item.id === activeHeading,
                      //   }));
                      //   this.heading_active = activeHeading;

                      // }
                    },

                    setActiveItem(clickedId) {
                      this.headings_menu.forEach(item => {
                        item.active = (item.id === clickedId);
                      });
                      this.heading_active = clickedId; // Optionally update the heading_active property if used
                    },
                  };
                }
               1. <a :class="{ 'border-r-[3px] border-secondary': item.active, 'text-sm': item.level === 'h3' }" :href="'#' + item.id" class="inline-block text-balance hover:underline p-0.5 pr-3">  — </a>
  



 

## O Mergade a prečo hľadá Python vývojára

Ak čítate tento blog častejšie, potom viete, že Mergado je distribuovaná webová aplikácia pre správu inzercie na Heureke, Zboží.cz aj v iných cenových porovnávačoch. Denne ju využívajú ako pracovníci e‑shopov, tak špecialisti marketingových agentúr. Tiež viete, že sa Mergado venuje ako vývoji technológie, tak výskumu marketingových metód.

Keď sa na vec pozriete z iného uhla, možno povedať, že Mergado je start-up — technologická spoločnosť s rastovou stratégiou, ktorá čelí zaujímavým vývojárskym a marketérským výzvam. A ako tento start-up rastie, rozširuje tím o backend vývojára.

## Aké technológie tvorí Mergado

- **Python**, ktorý poháňa backend Mergada a poskytuje logiku pre spracovanie dát.
- **MySQL** (hlavné úložisko), **PostgreSQL** (úložisko pre štatistické dáta), **MongoDB** (úložisko pre dočasné dáta bez pevnej schémy), **Redis** (úložisko slúžiace primárne ako message broker, sekundárne ako in-memory cache).
- **PHP**, frontend je napísaný v Nette. Jeho vývoju sa venujú kolegovia, frontend vývojári.
- **Celery**, asynchrónna fronta, ktorá zabezpečuje najmä distribuované spracovanie dát a tiež komunikáciu medzi frontendom a backendom.
- HTTP REST API, poskytuje užívateľskému rozhraniu API pre prácu so štatistickými dátami, ktoré spracováva a agreguje samostatná aplikácia napísaná v Pythone.
- SQLAlchemy, Flask, LXML, NumPy, Pandas a mnoho ďalších.

## Čo bude robiť Python vývojár

V spolupráci s ostatnými členmi tímu bude rozvíjať backend aplikácie — teda programovať v Pythone nástroje od biznis analytiky až po učiace sa algoritmy. Hodiť sa mu pritom budú znalosti:

- Programovacieho jazyka Pythonu
- Relačných databáz (MySQL, PostgreSQL)
- Značkovacích jazykov (XML)
- Algoritmov a dátových štruktúr
- Verzovacích systémov (Git)
- Linuxu a základných príkazov shellu

## Ako postupovať ďalej

Zaujala Vás táto ponuka? Pošlite svoje CV s ukážkou kódu v Pythone Michalovi Janíkovi na [michal.janik@mergado.com](mailto:%6d%69%63%68%61%6c%2e%6a%61%6e%69%6b%40%6d%65%72%67%61%64%6f%2e%63%6f%6d). Ak máte nejaké otázky , píšte na rovnakú adresu, alebo volajte na +420 777 628 156.




 

- [  Mergado ](/tema/mergado)
 
 [    ![](https://www.mergado.sk/sites/default/files/perm/user-avatar/dan-mergado.jpg)  ](/blog/daniel-czetner)###  [ Daniel Czetner ](/blog/daniel-czetner) 

Daniela ste poznali zo slovenskej podpory Mergada. Pomáhal riešiť problémy, písal návody v nápovede a testoval nové funkcie v Mergade. Mal jednoznačne najdlhšie dredy v tíme a jeho drsnému humoru sa vyrovnal snáď len jeho spolupracovník Přemek.

 

 

 

 

 

 

 

 

 

## Mohlo by vás *zaujímať*

 

 [    ![](https://www.mergado.sk/sites/default/files/perm/image/shoptet_shopify_sk.jpg)  

### Ako sme s Mergadom previedli e‑shop zo Shoptetu na Shopify: kompletná migrácia bez straty dát

 

 ](/blog/ako-sme-s-mergadom-previedli-e-shop-zo-shoptetu-na-shopify-kompletna-migracia-bez-straty-dat) 

 [    ![nastavenie uživatelských účtov](https://www.mergado.sk/sites/default/files/perm/image/new-nahladovka-na-blog-1200-x-628-px-38.png)  

### Ako nastavovať užívateľské účty agentúrnych pracovníkov v Mergade

 

 ](/blog/opravnenie-uzivatelskych-uctov-pre-agentury) 

 [    ![produktový feed 5 najčastějších cýb](https://www.mergado.sk/sites/default/files/perm/image/new-nahladovka-na-blog-1200-x-628-px-19_0.png)  

### 5 najčastejších chýb v produktovom feede a ako ich upraviť v Mergade

 

 ](/blog/najcastejsie-chyby-v-produktovom-feede) 

 

 

 

## Nenechajte si nič *ujsť*

 Prihláste sa k odberu nášho newslettera 

   

       

   Prihlásením súhlasíte s tým, že vaše údaje budeme spracovávať v súlade s našimi [zásadami ochrany osobných údajov](/vyhlasenie-o-cookies). 

  Ďakujeme, úspešne ste sa pripojili k nášmu zoznamu odberateľov. 

 

 

 
      function ml_webform_success_5807248() {
        var r = ml_jQuery || jQuery
        r('.ml-subscribe-form-5807248 .row-success').show(), r('.ml-subscribe-form-5807248 .row-form').hide()
      }