About the role
Centrum e-Zdrowia (CEZ) to instytucja odpowiedzialna za rozwój i utrzymanie systemów informatycznych wspierających funkcjonowanie ochrony zdrowia w Polsce. Jednym z kluczowych elementów infrastruktury CEZ jest hurtownia danych (Data Warehouse – DWH), która gromadzi i integruje dane pochodzące z różnych systemów medycznych i administracyjnych.
Our expectations
- Doświadczenie zawodowe na stanowisku Programisty Machine Learning lub na stanowisku Data Scientist, minimum 3 lata;
- Doświadczenie projektowe w zaawansowanym modelowaniu opartym o ML, minimum 1 projekt;
- Doświadczenie projektowe w programowaniu w języku Python, minimum 1 projekt;
- Doświadczenie projektowe w przetwarzaniu i analizie dużych zbiorów danych, minimum 1 projekt;
- Doświadczenie we wdrażaniu rozwiązań opartych o ML na środowisko produkcyjne, minimum 1 projekt;
- Znajomość bibliotek uczenia maszynowego (scikit-learn, MLLib, XGBoost);
- Znajomość PySpark;
- Znajomość Airflow;
- Znajomość MLFlow;
- Dobra organizacja pracy własnej, orientacja na realizacje celów;
- Umiejętności interpersonalne i organizacyjne, planowanie;
- Komunikatywność, kreatywność, samodzielność, kultura osobista i odporność na stres, dociekliwość;
- Zdolność adaptacji i elastyczność, otwartość na stały rozwój i gotowość uczenia się.
Nice to have
- Doświadczenie projektowe w obszarze ochrony zdrowia
- Doświadczenie projektowe w obszarze Hurtownia Danych
- Doświadczenie w projektach IT w obszarze Hurtownia Danych dla ezdrowie
- Znajomość procesów biznesowych z obszaru ochrony zdrowia
- Znajomość słowników i rejestrów z obszaru zdrowia np.: ICD9, ICD10, OID, PESEL
- Doświadczenie z wykorzystaniem bazy Postgre SQL/EDB do analizy danych do określonej wolumetrii
- Doświadczenie z wykorzystaniem środowiska Spark/Hadoop do przetwarzania zbiorów o określonej wolumetrii
Main responsibilities
- Projektowanie i rozwój potoków ML: Opracowywanie, implementacja i utrzymywanie kompleksowych potoków (pipelines) do pozyskiwania, przetwarzania, trenowania, walidacji i serwowania modeli uczenia maszynowego, wykorzystując PySpark do przetwarzania dużych zbiorów danych i Airflow do orkiestracji procesów.
- Implementacja i optymalizacja modeli ML: Aktywne programowanie, implementacja oraz optymalizacja algorytmów i modeli uczenia maszynowego (z użyciem bibliotek takich jak scikit-learn, MLLib, XGBoost) w języku Python, w celu rozwiązywania zidentyfikowanych problemów biznesowych, np. wykrywania nieprawidłowości, przewidywania trendów w ochronie zdrowia.
- Wdrażanie i zarządzanie modelami na środowisku produkcyjnym: Odpowiedzialność za proces wdrażania wytrenowanych modeli ML do środowiska produkcyjnego, zapewnienie ich skalowalności, niezawodności i monitorowanie ich wydajności po wdrożeniu. Wykorzystanie narzędzi do zarządzania cyklem życia modeli, takich jak MLFlow.
- Analiza i inżynieria cech (Feature Engineering): Współpraca z analitykami danych i specjalistami domenowymi w celu identyfikacji, ekstrakcji i tworzenia nowych cech (features) z dużych zbiorów danych medycznych (np. z hurtowni danych CEZ, o wolumetrii 1 mld rekordów lub większej) pod kątem ich użyteczności w modelach ML.
- Monitorowanie i utrzymanie modeli produkcyjnych: Implementacja systemów monitorowania wydajności wdrożonych modeli ML, wykrywanie dryftu danych (data drift) i pogorszenia jakości predykcji, a także planowanie i realizacja re-treningu lub aktualizacji modeli.
- Współpraca z zespołami Data Scientists i Data Engineering: Ścisła współpraca z Data Scientistami w zakresie przenoszenia prototypów modeli do środowiska produkcyjnego oraz z Data Engineerami w zakresie dostępu do danych, ich transformacji i integracji z potokami ML.
- Automatyzacja procesów ML: Tworzenie i utrzymywanie zautomatyzowanych procesów Continuous Integration/Continuous Delivery (CI/CD) dla modeli uczenia maszynowego, w tym automatyzacja testów, wdrażania i monitorowania.
- Dokumentowanie rozwiązań ML: Przygotowywanie szczegółowej dokumentacji technicznej dotyczącej architektury modeli, potoków danych, procesów wdrożeniowych oraz monitoringu, zapewniając klarowność i powtarzalność rozwiązań.
- Optymalizacja wykorzystania zasobów: Efektywne zarządzanie zasobami obliczeniowymi i pamięciowymi, zwłaszcza w kontekście przetwarzania dużych zbiorów danych przy użyciu Spark/Hadoop i PostgreSQL/EDB.