Principal Software Architect (PHP)
Develocraft sp. z o.o.
⚲ Warszawa
175–193 zł netto (+ VAT) / godz.
Wymagania
- PHP
- Symfony
- MySQL
- PostgreSQL
- Elasticsearch
- RabbitMQ
- Nginx
- HAProxy
- Varnish
- Docker
- Kubernetes
- Vue.js
- Nuxt.js
Opis stanowiska
Nasze 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) Mile widziane: 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) O projekcie: 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. Zakres obowiązków: 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) Oferujemy: 50% Multisport Prywatna opieka medyczna Luxmed Grupowe ubezpieczenie zdrowotne Praca zdalna