Principal Software Architect (PHP)
175 - 193 PLN/ godz.B2B (netto)
SeniorFull-time·B2B
#322369·Dodano 23 dni temu·62
Źródło: theprotocol.itTech Stack / Keywords
PHPSymfonyMySQLPostgreSQLElasticsearchRabbitMQNginxHAProxyVarnishDockerKubernetesVue.jsNuxt.js
Firma i stanowisko
Projekt dotyczy platformy w branży kosmetycznej, obejmującej obszary użytkowników, recenzji i produktów. Obecny system jest oparty o Magento i posiada istotny dług technologiczny, który należy wyczyścić poprzez uproszczenie i uporządkowanie architektury oraz przygotowanie jej od nowa w bardziej dopasowany do potrzeb klienta sposób. Jednym z głównych celów jest całkowite wyjście z Magento i zastąpienie go rozwiązaniem, które zachowa dotychczasowe funkcjonalności, ale jednocześnie otworzy możliwość dalszego rozwoju i dodawania nowych funkcji w przyszłości.
Wymagania
- Ponad 10 lat doświadczenia w projektowaniu i tworzeniu systemów backendowych o dużej skali
- Bardzo dobra znajomość PHP oraz doświadczenie w projektach o wysokim obciążeniu i dużych wolumenach danych
- Doświadczenie w projektowaniu architektury systemów opartych o PHP (np. Symfony lub podobne frameworki)
- Doświadczenie w projektowaniu i refaktoryzacji dużych systemów (np. monolitów do architektury modułowej lub rozproszonej)
- Praktyczne doświadczenie w projektowaniu architektur skalowalnych i wysokiej dostępności
- Doświadczenie w pracy z technologiami wykorzystywanymi w projekcie, w szczególności: MySQL / PostgreSQL, Elasticsearch, RabbitMQ lub inne systemy kolejkowe
- Doświadczenie w projektowaniu integracji systemowych oraz API
- Umiejętność pracy z dużymi wolumenami danych oraz systemami wysokiej dostępności
- Doświadczenie w tworzeniu dokumentacji architektonicznej i technicznej (diagramy, ADR, modele systemu)
- Umiejętność podejmowania świadomych decyzji architektonicznych oraz ich uzasadnienia technicznego i biznesowego
- Umiejętność definiowania standardów architektonicznych oraz dobrych praktyk programistycznych
- Umiejętność pracy w środowisku zespołowym oraz mentoringu technicznego
- Projektowanie systemów zgodnie z zasadami SOLID
- Stosowanie wzorców projektowych
- Projektowanie architektur takich jak Clean Architecture, Hexagonal Architecture lub podobnych
- Projektowanie systemów testowalnych oraz wspierających automatyzację testów
- Projektowanie czytelnych i stabilnych kontraktów API
- Angielski (B1-B2)
- Polski (C1)
Nice to have:
- Znajomość Domain-Driven Design (DDD) oraz doświadczenie w modelowaniu domeny
- Doświadczenie w prowadzeniu warsztatów Event Storming
- Doświadczenie w projektowaniu architektur event-driven lub CQRS
- Znajomość technologii frontendowych (Vue / Nuxt) w kontekście projektowania integracji z backendem
- Doświadczenie z infrastrukturą kontenerową i orkiestracją (Docker, Kubernetes)
- Znajomość warstwy infrastrukturalnej systemów wysokiej dostępności (Nginx, HAProxy, Varnish)
Obowiązki
- Przygotowanie koncepcji architektonicznej nowej części systemu wraz ze strategią jej wdrożenia
- Analiza istniejącej architektury systemu oraz zrozumienie obecnych ograniczeń technologicznych we współpracy z analitykami biznesowymi i systemowymi
- Opracowanie artefaktów architektonicznych umożliwiających sprawną realizację prac przez zespoły developerskie, w szczególności: diagramów architektury systemu (np. UML, C4 – kontekst, kontenery, komponenty), diagramów przepływu danych oraz integracji między systemami, dokumentacji decyzji architektonicznych (ADR), modelu podziału systemu (moduły, bounded contexts, serwisy)
- Koncepcji integracji z istniejącą częścią systemu oraz systemami zewnętrznymi
- Zaprojektowanie strategii migracji i rozwoju systemu (np. modularny monolit, mikroserwisy lub inne podejście uzasadnione analizą architektoniczną)
- Identyfikacja wąskich gardeł wydajnościowych oraz architektonicznych w obecnym systemie
- Podejmowanie kluczowych decyzji technologicznych dotyczących m.in.: warstwy danych (MySQL, PostgreSQL), wyszukiwania i indeksowania (Elasticsearch), komunikacji asynchronicznej (RabbitMQ), cache oraz warstwy pośredniczącej (Varnish, HAProxy), integracji systemów i API
- Definiowanie standardów architektonicznych, integracyjnych oraz wydajnościowych dla zespołów developerskich
- Definiowanie standardów jakości kodu, testowalności, struktury projektów oraz praktyk developerskich
- Współpraca z zespołami backend, frontend oraz DevOps przy wdrażaniu nowej architektury
- Nadzór architektoniczny nad implementacją oraz wsparcie zespołów developerskich w rozwiązywaniu złożonych problemów technicznych
- Tworzenie referencyjnych implementacji oraz aktywny udział w pracach programistycznych w kluczowych obszarach systemu
- Udział w planowaniu rozwoju systemu pod kątem wydajności, skalowalności oraz odporności na błędy
- Wsparcie zespołu w modelowaniu domeny oraz analizie systemowej (np. z wykorzystaniem podejścia DDD)
Oferta
- 50% Multisport
- Prywatna opieka medyczna Luxmed
- Grupowe ubezpieczenie zdrowotne
- Praca zdalna
Karta sportowa
Opieka zdrowotna
Ubezpieczenie
Develocraft
20 aktywnych ofert