Senior Backend Developer (Python) (m/f)
Shoper
⚲ Kraków
22 000 - 24 000 PLN (B2B)
Wymagania
- Python
- Django
- Flask
- FastAPI
- Cache
- Microservices
- MySQL
- RDBMS
- RabbitMQ
- Celery
- Redis
- PUB
- ELK Stack
- DevOps
- Docker
- GitLab CI
- Kubernetes
- Big Data
- OWASP (nice to have)
- Spark (nice to have)
- ClickHouse (nice to have)
Opis stanowiska
O projekcie: Cześć! Dołącz do Grupy Shoper! Jesteśmy jedną z największych platform e-commerce w Polsce. Jako Senior Backend Developer w dziale AI Product będziesz odpowiedzialny/a za tworzenie i rozwój produktów oraz narzędzi wykorzystywany przez klientów oraz pracowników Shopera. Szukamy osoby z doświadczeniem, która jest gotowa do pracy projektowej. Sukająca rozwiązań oraz ceniąca sobie dobrą współpracę zespołową. Jak pracujemy? - Z otwartą głową - chcemy się rozwijać i dzielić wiedzą. - W dziale AI Product, który rozwija bardzo wazne obszaru biznesu. - Z użyciem najnowszych technologii dostępnych na rynku. Co zyskasz? - Opiekę medyczną Luxmed. - Pracę w systemie hybrydowym w naszych biurach lub zdalną. - Masaże w biurach. - Ubezpieczenie grupowe na życie - System kafeteryjny (m.in.: kartę Multisport, bilety do kina, vouchery, zniżki do sklepów). - Dostęp do platformy eTutor (a także możliwość uczestnictwa w lekcjach online j.angielskiego). - ShoperUp! - unikatowy program rozwoju kompetencji wewnątrz organizacji. - Dofinansowanie dojazdów do pracy. - Eventy integracyjne. - Gry wideo w biurach. - Owocowo-warzywny dzień w biurze. - Świadczenia z ZFŚS m.in. dofinanowanie do wypoczynku, dodatki świąteczne. - Dzień wolny na urodziny. - Grupowe aktywności po pracy: piłka nożna czy siatkówka. - Budżet szkoleniowy. - Płatny program rekomendacji pracowników. - Sklep na Shoper za 1 zł (!) Wymagania: Co jest dla nas ważne? - Minimum 5 letnie doświadczenie w programowaniu w Pythonie – biegłość w zaawansowanych elementach języka, standard library oraz w praktycznym użyciu frameworków Django / Flask (mile widziane także FastAPI). - Doświadczenie w projektowaniu i rozwoju architektury systemów – umiejętność tworzenia rozwiązań skalowalnych, wysokowydajnych, odpornych na błędy i bezpiecznych (microservices/modular monolith, event-driven, asynchroniczność, cache, observability). - Budowa i utrzymanie wysokowydajnych aplikacji – optymalizacja wydajności (profilowanie, bottlenecks, cache, I/O), stabilność i niezawodność w środowiskach produkcyjnych. - Bazy danych relacyjne – solidne doświadczenie z MySQL (oraz ogólnie RDBMS), w tym modelowanie danych, indeksowanie, optymalizacja zapytań, transakcje, spójność. - Systemy kolejkowe / zadaniowe – praktyczne doświadczenie w projektowaniu i implementacji przetwarzania asynchronicznego, znajomość RabbitMQ oraz narzędzi typu Celery (lub równoważnych). - Cache i komponenty infrastrukturalne – bardzo dobra znajomość Redis (cache, locks, rate limiting, pub/sub – w zależności od potrzeb). - Observability i analiza logów – doświadczenie z ELK (logowanie, metryki, korelacja zdarzeń, diagnostyka problemów). - DevOps / CI/CD – praktyka w automatyzacji buildów, testów i wdrożeń z użyciem GitLab CI (pipeline’y, quality gates, automatyczne deploye, rollback). - Konteneryzacja i orkiestracja – realne doświadczenie z Docker oraz Kubernetes (deploy, scaling, config/secrets, healthchecks). - Mentoring i koordynacja – wsparcie młodszych programistów (code review, wyznaczanie standardów, dzielenie się wiedzą, prowadzenie przez decyzje techniczne). - Silne rozumienie potrzeb biznesowych – umiejętność analizy wymagań, doprecyzowania niejasności i przekładania ich na decyzje techniczne oraz sensowne kompromisy (koszt/ryzyko/czas). - Codzienne użycie narzędzi typu Codex (lub podobnych) – wykorzystywanie w pracy (np. do przyspieszenia developmentu, refactorów, generowania testów, analizy kodu), z zachowaniem jakości i bezpieczeństwa. - Ważne!!! Gotowość do pracy w krakowskim biurze 2 dni w tygodniu. Mile widziane: - Bezpieczeństwo aplikacji – znajomość dobrych praktyk (OWASP, secure coding, secrets management, hardening, kontrola dostępu). - Big Data / przetwarzanie strumieniowe – doświadczenie z Spark (lub podobnymi), ClickHouse i pracą na dużych wolumenach danych. Codzienne zadania: - Projektowanie architektury i rozwój kluczowych komponentów systemu (Django/Flask, integracje, moduły domenowe, API, worker’y). - Tworzenie i utrzymanie wysokowydajnych usług: profilowanie, optymalizacja, eliminacja wąskich gardeł, cache’owanie (Redis), praca z asynchronicznością i kolejkami (RabbitMQ/Celery). - Zapewnianie jakości i niezawodności: testy (unit/integration), standardy kodu, code review, dbanie o stabilność produkcji, obsługa incydentów i post-mortem. - Praca z bazami danych: projektowanie modeli danych, migracje, optymalizacja zapytań, indeksy, transakcje, planowanie zmian minimalizujących ryzyko. - Współpraca z biznesem i produktem: doprecyzowywanie wymagań, proponowanie rozwiązań, ocena ryzyk, estymacje, priorytetyzacja techniczna. - Mentoring i rozwój zespołu: wsparcie młodszych programistów, pair programming, prowadzenie przeglądów architektury, budowanie dobrych praktyk. - CI/CD i DevOps w praktyce: rozwój pipeline’ów GitLab CI, automatyzacja testów i wdrożeń, wspieranie bezpiecznych i powtarzalnych releasów. - Konteneryzacja i wdrożenia: przygotowywanie i utrzymanie kontenerów (Docker), współpraca przy deploymentach i skalowaniu na Kubernetes. - Observability: standaryzacja logowania i monitoringu, analiza logów w ELK, szybka diagnostyka problemów. - Efektywne użycie narzędzi typu Codex: przyspieszanie prac inżynierskich (refactor, testy, dokumentacja techniczna), przy jednoczesnym utrzymaniu jakości i zgodności z zasadami bezpieczeństwa.