← STRONA GŁÓWNA
// Archiwum połączeń

Doświadczenie

Co dostarczyliśmy organizacjom, z którymi pracowaliśmy.

LABORATORIUM DANYCH

Pfizer

USA · Farmacja
sty 2022 – obecniezdalnie · Nowy Jork, USA
2platformy: R&D i logistyka
50–100użytkowników w zespole
Platforma MLTech leadArchitekturaArchitektura sterowana zdarzeniamiDomain-driven designAWSAzureRaySparkGitOps · FluxDockerDevOps

Początkowo wsparcie DevOps dla wielu projektów i inicjatyw w całej organizacji, z czasem rola architekta i lidera technicznego dwóch platform klasy enterprise. Pierwsza to złożona, zorientowana na usługi platforma R&D, która obsługuje krytyczne procesy biznesowe dla ponad 1000 użytkowników; w jej rozwój zaangażowanych jest ponad 100 osób. Druga to wielochmurowa platforma analizy danych i raportowania, w której modele uczenia maszynowego odpowiadają za metryki, transformacje i predykcje. Efekt: zespoły wydają oprogramowanie z pewnością i same dobierają narzędzia do swoich przypadków użycia.

Bezpośredni wpływ na kluczowe decyzje architektoniczne, deweloperskie i techniczne w skali całej platformy. Projekt API platformy i architektury mikroserwisów oraz prowadzenie deweloperów przez implementację.

Zaprojektowane i przetestowane plany disaster recovery dla wielu projektów, oparte na mechanizmach kopii zapasowych i retencji danych.

Pełny wgląd zespołów w zachowanie aplikacji: warstwa monitoringu na stosie Grafany z Loki, Mimir i Tempo, OpenTelemetry zintegrowane z kodem aplikacji wraz z wielokrotnego użytku skillem do instrumentacji, szczegółowe dashboardy, alerty wczesnego ostrzegania oraz szkolenia, po których zespoły obsługują to wszystko samodzielnie.

Architektura sterowana zdarzeniami zgodna ze specyfikacją CloudEvents, zbudowana wokół obiektów zasobów. Domain-driven design stosowany konsekwentnie w każdym module. Na tych API z rdzeniem platformy zintegrowano cztery duże moduły.

System uprawnień oparty na URN, z siedmiopoziomową hierarchią dostępu. Zarządzanie użytkownikami i kontrola dostępu, które w jednym płynnym wdrożeniu otworzyły platformę dla 700 użytkowników o odrębnych uprawnieniach.

Architektura platformy ML klasy enterprise do przygotowania i transformacji danych oraz modeli predykcyjnych, rozpiętej między AWS i Azure. Platforma obejmuje chatboty, agentów i agentowe przepływy pracy.

Orkiestracja i równoległe wykonywanie zadań dla zespołów danych w tym samym procesie CI/CD: Airflow do potoków, Ray i Spark do obliczeń równoległych i zdalnych.

Centrum dowodzenia AI: oparty na LLM hub wiedzy i zarządzania projektem, wdrożony na dwóch platformach. Zbiera spotkania, Git, Jirę i Confluence, zarządza zadaniami oraz pomaga analizować i usuwać incydenty produkcyjne. Agent konwersacyjny pozwala każdemu uczestnikowi programu poznać projekt w rozmowie. Ogranicza to bus factor: wiedza o programie jest zebrana w jednym miejscu, zamiast zależeć od kilku osób.

Agentowy interfejs na Vercel AI SDK, w którym użytkownicy tworzą i edytują panele dashboardów przez czat, oraz kolejna aplikacja AI na LangChain i Langfuse. Agenci przygotowują zmiany w kodzie i wykonują zadania DevOps, a każda zmiana przechodzi przegląd, zanim trafi na produkcję.

Kompletny system śledzenia użytkowników, zaprojektowany i zbudowany z pomocą AI. Przepływy AI używane szeroko na całej platformie.

Powtarzalne wdrożenia we wszystkich projektach: GitOps z Fluxem stał się standardem, a jedna konfiguracja Fluxa zarządza dziś klastrami Kubernetes i wdrożeniami w AWS i Azure.

Płynna migracja ponad 130 usług z Azure do AWS na tę konfigurację wdrożeniową. Kolejne 15–20 usług z trzeciego projektu przeniesione na tę samą platformę, a jego doraźny proces rozwoju i wydawania zastąpiony tą samą metodyką. Deweloperzy i wsparcie DevOps tego projektu przeszkoleni, dzięki czemu mogą samodzielnie utrzymywać rozwiązanie.

Dedykowane klastry EKS zgodne z rygorystycznymi wymaganiami i procedurami korporacyjnymi, z automatyzacją certyfikatów przez cert-manager i zarządzaniem ruchem przez Envoy i Gateway API.

Umożliwienie zespołowi opiekującemu się danymi dostarczania zmian w Snowflake i przenoszenia danych przez CI/CD jak każdego innego kodu: moduły Terraform i potoki GitHub Actions, wraz z udziałem w kształtowaniu zwinnego procesu wydawniczego.

Niższe koszty baz danych dzięki współdzieleniu instancji RDS między aplikacjami i środowiskami, z zautomatyzowanym, idempotentnym provisioningiem przez Liquibase. Centralne logowanie na stosie ELK przez Elastic Operator, działające stabilnie od ponad czterech lat.

Szybkie rozwiązywanie incydentów na produkcji. Problemy wydajnościowe usunięte przez skalowanie infrastruktury i warstwy serwisowej, optymalizację kodu i własnoręcznie wykonane testy wydajnościowe.

Prowadzenie kierunku technologicznego prac platformowych dla zespołów ponad 30 inżynierów i kształtowanie architektury programu liczącego ponad 100 osób. Mentoring deweloperów i inżynierów DevOps: wyszkolony zespół 10 inżynierów DevOps, z których kilku jest dziś seniorami i menedżerami, a prowadzony równolegle zespół SRE stosuje te wzorce w wielu projektach. Szkolenia i wdrażanie zespołów deweloperskich i DevOps w organizacji rozproszonej globalnie, od USA przez Europę po Indie.

ZWIŃ
RADAR RYZYKA

Riskfintech

Fintech · Startup
kwi 2021 – sty 2022zdalnie · Londyn, Wielka Brytania
Złożone, wieloetapowe przetwarzanie danychModele predykcyjneTech leadDevOpsArchitekturaKubernetesAWSSpark

Przejęcie dostarczania platformy predykcyjnej dla banków w startupie analizy ryzyka finansowego i przekształcenie bazy kodu na wczesnym etapie w produkt gotowy na produkcję: wdrożenia z laptopa zastąpione CI/CD, wersjonowane i testowane buildy oraz osobne środowiska dla bezpiecznych wydań. Właściciel otrzymał produkt, który można było bezpiecznie wydawać i prezentować dyrektorom banków.

Odpowiedzialność za cały obszar DevOps. Wdrożenia z laptopa zastąpione CI/CD oraz automatycznymi, wersjonowanymi i testowanymi buildami Dockera.

Wdrożenia Flux i GitOps oraz Terraform dla infrastruktury AWS, w tym Lambda i S3. Wiele środowisk i procedury testowe dla bezpiecznych wydań.

Doradztwo dla właściciela firmy w zakresie dostarczania oprogramowania i zarządzania wydaniami. Prezentacje i sprzedaż produktu dyrektorom banków podczas rozmów handlowych.

Zaprojektowanie architektury platformy zarządzania modelami do wersjonowania modeli ML i śledzenia ich pełnego cyklu życia, recenzji i wyników testów. Specyfikacja OpenAPI i oprogramowania stworzona z użyciem domain-driven design. Prowadzenie zespołu deweloperskiego przez jej implementację.

Ukształtowanie platformy obejmującej eksperymenty data science w Jupyterze, silnik wykonawczy Spark i frontend. Procesy wersjonowania i wydawania modeli danych ustalone wspólnie z zespołem data science.

Prowadzenie większości rozwoju backendu w Javie z API GraphQL, w tym integracji ze Sparkiem i śledzenia postępu.

Refaktoryzacja zawiłego, wielofazowego potoku predykcji, rozgałęziającego się na wiele kroków i zbiegającego w kilka modeli, do dobrze przetestowanego, łatwego w utrzymaniu kodu. Duże części pierwotnej bazy kodu przepisane dla czytelności i niezawodności.

ZWIŃ
SIEĆ EKRANÓW

Outfront Media

USA · Reklama zewnętrzna
sty 2019 – lis 2021zdalnie · Nowy Jork, USA
Tysiąceurządzeń
Aktywne harmonogramowanieSerwowanie dużych plikówCDNMonitoringInfrastruktura chmurowa

Implementacja backendu do kontroli transmisji reklam, na którym Outfront Media mogło polegać przy ekranach cyfrowych w metrze Nowego Jorku i Bostonu: model danych i API w rdzeniu platformy, śledzenie żądań między usługami oraz uwierzytelnianie z dziennikiem audytu.

Zaprojektowanie modelu danych i API kluczowych części platformy planowania. Projekty prezentowane i uzgadniane z szefem rozwoju, z wpływem na architekturę systemu.

Pomoc w przejściu na architekturę sterowaną zdarzeniami z integracją Kafki, dla wydajności i skali.

Rozwój kluczowych funkcji backendu planowania w Javie. Rozproszone śledzenie żądań, dzięki któremu zespół może prześledzić żądanie użytkownika przez kolejne warstwy usług podczas diagnozowania problemów.

Dostarczenie uwierzytelniania, autoryzacji i dziennika audytu dla platformy.

Potoki CI/CD wzmocnione automatycznymi testami i konfiguracją wdrożeń. Debugowanie i rozwój usług na Kubernetesie.

Współtworzenie infrastruktury AWS, w tym provisioning S3 i uruchamianie funkcji Lambda.

Prowadzenie rozwoju i monitoringu całej platformy. Nadzór nad jakością dostarczania, tak aby implementacja odpowiadała specyfikacjom.

Mentoring pozostałych deweloperów w zespole.

ZWIŃ
STRUMIEŃ NA ŻYWO

Sky

Wielka Brytania · Media i streaming
lip 2014 – maj 2016stacjonarnie · Londyn, Wielka Brytania
10 mln+klientów
10 tys.żądań na sekundę
Kluczowe komponentyDevelopmentArchitekturaCI/CDRozbijanie monolitu

Architektura i kierunek techniczny przebudowy monolitycznej platformy streamingu wideo Sky w mikroserwisy, obsługującej 10 milionów aktywnych użytkowników: streaming na żądanie, transmisje na żywo i pobieranie. Dwa lata wydań co dwa tygodnie bez ani jednego zepsutego wydania oraz monitoring, który wyłapywał problemy, zanim zauważyli je klienci.

Przez sześć miesięcy członek rady architektury, kształtującej projekt kluczowych usług platformy.

Zaprojektowanie i implementacja frontowych drzwi platformy: bramy API i usługi pobierania. Orkiestrują one uprawnienia, geolokalizację, wybór strumienia i CDN, wstawianie reklam i zakładki dla każdego żądania odtwarzania.

Zbudowanie wysokowydajnych usług w Javie, które jako pierwsze przyjmowały cały ruch przychodzący za load balancerami, strojonych profilowaniem.

Wzmocnienie circuit breaking własnymi strategiami timeoutów i przetestowanym wrapperem na bibliotekę Hystrix. Zidentyfikowany przypadek, którego standardowe timeouty nie wykrywały – transfer pełznący tuż poniżej timeoutu HTTP, nazwany „network dribble” – i dodany timeout, który go wyłapuje.

Zbudowanie usług uwierzytelniania i autoryzacji platformy, konsekwentnie w ścisłym TDD i BDD.

Odpowiedzialność za cały potok dostarczania: CI/CD w Jenkinsie, konfiguracja infrastruktury w Ansible i przejście na kontenery Dockera.

Zaprojektowanie wdrożeń bez przestojów na AWS z własnym narzędziem w Pythonie, które opróżniało, podmieniało i ponownie rejestrowało węzły EC2 za load balancerem, dzięki czemu wydania nie przerywały działania usługi.

Dwa lata wydań co dwa tygodnie bez ani jednego zepsutego wydania. Oparte na środowiskach pośrednich i obowiązkowych testach wydajnościowych przed każdym wydaniem.

Zbudowanie proaktywnego monitoringu ze ścianą zdrowia systemu w czasie rzeczywistym, Dynatrace i Grafaną. Zespół wielokrotnie wykrywał i rozwiązywał problemy, zanim zauważyli je klienci.

Prowadzenie reakcji na incydenty produkcyjne aż do diagnozy sieci na poziomie Wiresharka, przez load balancery, Nginx i usługi. W jednym przypadku sporadyczne błędy wyśledzone do load balancera zrywającego połączenia i niezgodności timeoutów między balancerem, Nginxem a usługą.

Kontynuacja projektu po odejściu seniorskiej części zespołu: prowadzenie deweloperów średniego szczebla, aż zespół został odbudowany.

Rekrutacja, szkolenie i mentoring inżynierów w praktykach TDD, BDD i DevOps.

ZWIŃ
PORTFEL NA SKALĘ

Gamesys

Wielka Brytania · Gry online
sie 2013 – cze 2014stacjonarnie · Londyn, Wielka Brytania
24/7systemy krytyczne
Portfel graczaWysoka częstotliwość transakcjiSystemy krytyczneRozbijanie monolituMikroserwisyNiezawodność

Inżynier backendu Java na wiodącej platformie gier online z 5 milionami użytkowników. Praca w zespole Wallet zarządzającym środkami użytkowników: bezpieczeństwo i spójność pieniędzy graczy przy 400–500 operacjach na sekundę.

Zaprojektowanie mikroserwisów i API dużej integracji z partnerem z USA. Każda usługa miała własną bazę danych, a kluczowa funkcjonalność została wydzielona z monolitu.

Zaprojektowanie API i funkcjonalności rozbudowanego systemu zarządzania portfelami i funduszami graczy. Obsługiwał kilka rodzajów środków i elastyczne sposoby zarządzania nimi przez użytkowników.

Zbudowanie mocno zoptymalizowanych usług w Javie obsługujących 400–500 operacji na sekundę.

Implementacja usług integracyjnych według tego projektu i przeprowadzenie ich przez gładkie uruchomienie integracji z partnerem.

Praca w dobrze ustrukturyzowanej, modułowej bazie kodu zbudowanej na izolowanych bibliotekach. Zarządzanie potokami budowania i testów automatycznych.

Wdrażanie i szkolenie nowych inżynierów z bazy kodu i praktyk wytwarzania oprogramowania.

ZWIŃ
OPROGRAMOWANIE DLA NARODU

HMRC · DWP

Wielka Brytania · Sektor publiczny
HMRC · cze 2016 – cze 2017stacjonarnie · Londyn, Wielka BrytaniaDWP · lip 2017 – lut 2018stacjonarnie · Londyn, Wielka Brytania
90 mlnużytkowników
Transformacja chmurowaAWSSzybkie CI/CDArchitekturaUwierzytelnianieMessagingKluczowe komponenty o wysokiej wydajności
HMRC

Pomoc HMRC w docieraniu do obywateli w całej Wielkiej Brytanii i ich uwierzytelnianiu: API komunikacji za powiadomieniami Self Assessment oraz usługa tożsamości o niskich opóźnieniach, od której zależała cała platforma, w Scali w paradygmacie funkcyjnym.

Zaprojektowanie API i przepływów biznesowych komunikacji w całej platformie: szablony, śledzenie doręczeń i dziennikowanie interakcji użytkowników.

Zbudowanie usługi komunikatów dla obywateli, docierającej do nich w aplikacji i e-mailem.

Dostarczenie uwierzytelniania o niskich opóźnieniach i precyzyjnej autoryzacji: kluczowej usługi tożsamości, od której zależała cała platforma.

Optymalizacja przepustowości przez asynchroniczne IO, optymalizację wątków i wykonanie równoległe. Ścisłe TDD i BDD z wysokim pokryciem testami.

Konfiguracja buildów Jenkinsa i CI z automatycznymi testami włączonymi w ciągłe dostarczanie. Skrypty konfiguracji wdrożeń aplikacji i pomoc w przygotowaniu wydań.

Mentoring młodszych deweloperów i inżynierów QA.

ZWIŃ
DWP

Pomoc DWP w transformacji ręcznych procesów świadczeń na usługi cyfrowe w Universal Credit, krajowym systemie używanym przez urzędy w całym kraju, wydawane bezpiecznie przez kolejne środowiska z TDD i BDD.

Analiza i przełożenie odziedziczonych procesów biznesowych na nowoczesne usługi cyfrowe w Javie. Kształtowanie architektury usług podczas cyfryzacji tych złożonych przepływów.

TDD i BDD w zwinnym zespole dostarczania. Bezpieczne wydawanie oprogramowania przez środowiska pośrednie i skrupulatne testowanie.

Mentoring młodszych deweloperów i QA w zespole, jak wcześniej w HMRC.

ZWIŃ
PRZEPŁYW KAPITAŁU

Nordea

Kraje nordyckie · Bankowość
mar 2018 – gru 2018stacjonarnie · Gdynia
Wsparcie DevOpsSkalowalna platforma wdrożeniowaWsparcie oprogramowaniaHarmonogramowanie

Inżynier platformy wewnętrznej chmury Nordei: systemu zbliżonego do Kubernetesa, uruchamiającego i planującego aplikacje. Działało na nim wiele ważnych projektów banku.

Zbudowanie oprogramowania, które provisionowało i uruchamiało wewnętrzną chmurę banku: planowanie usług i przepływów pracy, zarządzanie maszynami wirtualnymi oraz orkiestracja w stylu Kubernetesa udostępniona zespołom w całym banku.

Budowa rdzenia platformy w Javie, z rozbudowanym programowaniem i skryptami w Pythonie.

Mentoring kilku młodszych deweloperów przez cały projekt.

ZWIŃ
LABORATORIUM KRZEMU

Intel

Gdańsk · Półprzewodniki
lut 2012 – lip 2013stacjonarnie · Gdańsk
USBkażda klasa urządzeń, w pętli
Niskopoziomowy framework testów USB z prawdziwymi urządzeniamiSterowniki jądra LinuksaIntegracja niemal każdej klasy urządzeń w LinuksieAutomatyzacja testów hardware-in-the-loopCLinux

Inżynier platformy automatycznego testowania urządzeń USB w Intelu. Platforma walidowała najnowsze układy USB Intela na prawdziwych urządzeniach przez sieciowy, zdalnie sterowany sprzęt przełączający USB.

Zbudowanie linuksowego klienta rozproszonej platformy testowej koordynującej wykonawców, wielu klientów i sieciowe przełączniki. Odpowiedzialność za tego klienta w Javie w wielojęzycznym systemie obok serwera w C# i komponentów Windows.

Napisanie natywnego sterownika Linuksa w C dla niestandardowego urządzenia USB emulującego dowolny typ urządzenia USB. Zbudowanie biblioteki klienta Bluetooth implementującej protokoły transferu. Zaprojektowanie wymagającego przetwarzania współbieżnego na mutexach blisko sprzętu.

Zapewnienie projektowi powtarzalnego buildu i wspólnej kontroli wersji: wprowadzenie Mavena i przejście całego projektu na Gita.

Położenie technicznego fundamentu pod dużą część późniejszego rozwoju platformy. Dostarczenie znacznej części funkcjonalności, która wyraźnie zwiększyła możliwości testowe platformy. Mentoring młodszych deweloperów.

ZWIŃ
LABORATORIUM BADAWCZE

Politechnika Gdańska

Gdańsk · Projekt naukowy
lis 2010 – kwi 2012stacjonarnie · Gdańsk
Obrazowanie medyczneWidzenie komputeroweKlasyfikatory SVMSieci neuronoweOprogramowanie badawcze

Inżynier uczenia maszynowego i widzenia komputerowego w projekcie badawczym Mayday 2012. Budowa automatycznego wykrywania chorób w nagraniach endoskopowych we współpracy z Gdańskim Uniwersytetem Medycznym.

Implementacja metod ekstrakcji cech obrazu z literatury naukowej do budowy zbiorów treningowych i detekcyjnych. Trenowanie i ocena modeli SVM i sieci neuronowych pod kątem swoistości, czułości, precyzji i pełności.

Rozwój w C++ automatycznego wykrywania zmian, takich jak guzy i krwawienia, w wideo endoskopowym. Potoki uczenia i detekcji działały jako zadania na klastrze superkomputerowym.

Zbudowanie w C# aplikacji przeglądarki we wzorcu MVVM do przeglądania nagrań i wykrytych klatek.

Ścisła współpraca ze specjalistami gastroenterologii nad etykietowaniem klatek wideo i budową danych treningowych.

Wykorzystanie wcześniejszego doświadczenia w widzeniu komputerowym z pracy magisterskiej o wykrywaniu anomalii w ruchu tłumu z użyciem przepływu optycznego i OpenCV.

ZWIŃ
PIERWSZY COMMIT

Wolters Kluwer

Gdańsk · Informacja prawna
FrontendSystem informacji prawnejInterfejs webowy
KONIEC TRANSMISJI

Połączmy się

Opowiedz nam o swoim projekcie. Zaczniemy od krótkiej rozmowy.

NAPISZ DO NAS
RAPIDSYNAPSE
{{tx.back}}
{{tx.xpKick}}

{{tx.xpTitle}}

{{tx.p8}}

{{tx.x0.kick}}

{{tx.x0.title}}

{{tx.x0.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x1.kick}}

{{tx.x1.title}}

{{tx.x1.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x2.kick}}

{{tx.x2.title}}

{{tx.x2.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x3.kick}}

{{tx.x3.title}}

{{tx.x3.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x4.kick}}

{{tx.x4.title}}

{{tx.x4.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x5.kick}}

{{tx.x5.title}}

{{tx.x5.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x6.kick}}

{{tx.x6.title}}

{{tx.x6.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x7.kick}}

{{tx.x7.title}}

{{tx.x7.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x8.kick}}

{{tx.x8.title}}

{{tx.x8.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{bx.head}}

{{bx.first}}

{{it.t}}

{{bx.sign}}
{{tx.x9.kick}}

{{tx.x9.title}}

{{tx.x9.region}}
{{w.t}}
{{st.n}}{{st.u}}
{{tc}}
{{tx.endKick}}

{{tx.t5}}

{{tx.p5}}

{{tx.cta}}