Cotygodniowa dawka linków, czyli archiwum newslettera Dane i Analizy
Witajcie w kolejnym numerze, który przypomina mi swego rodzaju podróż przez świat danych – od praktycznych problemów po filozoficzne rozważania o przyszłości naszej branży.
Zaczynamy od fundamentów: jak radzić sobie z brakującymi danymi (bo zawsze jest ich za mało, czasem jest ich za dużo ale są wybrakowane), dlaczego UUIDy mogą zabijać PostgreSQLa, i jak Uber (dzisiaj dużo o nim) radzi sobie z backupami petabajtów danych. To te rzeczy, które każdy z nas prędzej czy później musi ogarnąć, ale rzadko kto mówi o nich głośno na spotkaniach.
Dalej mamy sekcję, którą można by nazwać „jak wielcy tego świata radzą sobie ze skalą”. Airbnb obsługuje 10 milionów wyszukiwań dziennie, Spotify zarządza setkami mikrousług w Pythonie (ale bardziej o zarządzanie kodem tu chodzi), a Allegro przyspieszyło pivotowanie danych z godzin do minut. To nie są teoretyczne case’y – to konkretne rozwiązania konkretnych problemów, które mogą was zainspirować (lub przestraszyć skalą).
Nie brakuje też kontrowersji. Mamy spór o to, czy AI zabije juniorów (spoiler: to nie AI jest problemem), debatę nad tym, czy zwalnianie programistów z powodu AI to najgłupsza decyzja, oraz dowody na to, że formaty binarne w browserach mogą być szybsze od JSONa (kto próbował scrapować strony PKW spotkał się z danymi przekazywanymi binarnie). Czasem dobrze jest zakwestionować to, co wydaje się oczywiste.
W zeszłym tygodniu najchętniej czytaliście:
Can AI Replace Software Architects? I Put 4 LLMs to the Test Birthday effect 150 Python Interview Questions and Answers – The ULTIMATE List OpenAI: Introducing Codex Why high performers make assertions: The difference between insights, suggestions, and assertions
Zapraszam też na moje sociale związane z tym newsletterem: fanpage i LinkedIn. Pamiętaj o książce (kup ją!).
PS. Zadzwoń do Mamy, dzisiaj jej święto.
#analiza_danych_koncepcje
Handling Missing Values: A Comprehensive Guide
Brakujące dane to jak dziury w skarpetach – ignorujesz je do momentu, aż stają się nie do zniesienia. Ten przewodnik pokazuje, jak systematycznie diagnozować mechanizmy braków danych (MCAR, MAR, MNAR), porównuje różne strategie imputacji od prostego wypełniania średnią po zaawansowane metody jak MICE i K-NN, a na koniec tłumaczy, jak ocenić wpływ każdej strategii na wydajność modeli. Konkretnie, bez filozofowania.
#analiza_danych_projekty
Time Series Episode 8: Real-world forecasting
Po siedmiu odcinkach z „zabawkowymi” danymi, czas na prawdziwy świat – czyli prognozowanie popytu na produkt z wszystkimi jego niespodziankami. Autor szczerze przyznaje, że rzeczywistość potrafi zweryfikować nawet najlepsze teoretyczne podejścia, i pokazuje jak testować wszystko – od Simple Exponential Smoothing przez Random Forest po RNN i N-HiTS. Plus bonus w postaci regresji kwantylowej, bo niepewność to część gry.
#architektura
How Airbnb Uses AWS to Handle 10 Million Searches a Day
Co dzieje się w tych 150 milisekundach między wpisaniem „domek nad morzem” a wyświetleniem wyników? Airbnb obsługuje ponad 10 milionów wyszukiwań dziennie, uruchamiając dziesiątki mikrousług, modeli ML i operacji bazodanowych. Od monolitu Ruby on Rails przez dekompozycję na mikrousługi po zaawansowane wykorzystanie AWS – konkretny case study tego, jak ewoluuje architektura pod naporem skali.
#bazy_danych
Configuring MongoDB Replication for Self-Managed Workloads
Ten tutorial pokazuje jak skonfigurować MongoDB w konfiguracji primary-secondary od podstaw. Jasno zaznaczone, że to setup do nauki i eksperymentów, nie do produkcji, ale świetnie tłumaczy podstawy replikacji i wysokiej dostępności w praktyce.
Random UUIDs Are Killing Your PostgreSQL Performance: How to Fix It
UUIDv4 to świetny wynalazek, ale może zamieniać twoją bazę danych w powolnego żółwia. Problem leży w losowości – podczas gdy sekwencyjne IDki ładnie układają się w indeksach B-Tree, losowe UUIDy powodują chaos. Autor tłumaczy dlaczego tak się dzieje i przedstawia alternatywy jak UUIDv7 czy ULID, które łączą korzyści UUIDów z wydajnością sekwencyjnych kluczy.
#big_data
I spent 5 hours understanding how Uber built their ETL pipelines
Uber obsługuje 9,44 miliarda podróży rocznie dla 137 milionów użytkowników miesięcznie. Jak radzą sobie z przetwarzaniem danych w takiej skali? Autor zagłębia się w to, dlaczego incremental processing jest kluczowy dla biznesu Ubera i jak Apache Hudi rozwiązuje związane z tym problemy. Hudi może nie jest tak popularny jak Iceberg czy Delta Lake, ale w swoich use case’ach błyszczy.
End-to-End ETL Pipeline for Banking Domain with AWS, PySpark, and Databricks
Sektor bankowy to nie tylko duże pieniądze, ale też duże dane wymagające szczególnej ostrożności. Ten kompleksowy przewodnik pokazuje jak zbudować pipeline ETL dla danych finansowych, uwzględniając wszystkie niezbędne elementy: walidację jakości danych, bezpieczne przetwarzanie wrażliwych informacji, skalowalne przetwarzanie i monitoring. Od S3 i RDS do Redshift, krok po kroku.
Unlock faster data processing for Machine Learning: reducing pivoting time from hours to minutes
Allegro, jako jedna z największych platform e-commerce w Europie, musi radzić sobie z masywną ilością danych. Ten case study pokazuje optymalizację procesu pivotowania danych na platformie AllegroPay ML – od problemu trwającego godzinami do rozwiązania działającego w minuty. Konkretne benchmarki, pitfalls i ciekawe optymalizacje w Snowflake.
#ciekawostki
Stop Building Internal Tools Nobody Wants: A Platform Engineer’s Guide
Ile razy widzieliście świetne narzędzie wewnętrzne, którego nikt nie używa? Programiści często budują narzędzia myśląc jak inżynierowie, nie jak product managerowie. Ten przewodnik pokazuje jak traktować wewnętrzny produkt z należytą czcią – od zbierania wymagań, przez design i feedback, po mierzenie adopcji. Bo narzędzie, z którego nikt nie korzysta, to strata czasu i pieniędzy.
Data Engineering: Now with 30% More Bullshit
Szczera rozmowa o tym, co wszyscy czujemy, ale rzadko mówimy głośno. Autor jest zmęczony kolejnymi „rewolucyjnymi” architekturami i AI-powered młotkami, które obiecują rozwiązać wszystkie problemy. Większość to przerobione stare pomysły, przepłacone oprogramowanie lub w najlepszym przypadku cienkie abstrakje nad tym, co już robimy. Czas na otrzeźwienie w świecie data engineeringu.
#data_engineering
Fun Project: Real-Time Object Tracking with Kafka and YOLO
Czasem najlepsze projekty rodzą się z czystej ciekawości. Autor łączy Kafka z YOLO, żeby stworzyć pipeline real-time object trackingu – wysyła klatki wideo przez Kafka, przetwarza je z YOLO i wyświetla wyniki w czasie rzeczywistym. Prosty setup, Python, odrobina eksperymentów i gotowe. Idealny weekend project dla każdego, kto chce pobawić się computer vision. Projekt bez praktycznego sensu, ale daje sporą wiedzę.
Robust Database Backup Recovery at Uber
Uber backupuje blisko 100 PB danych z dziesiątek petabajtów przechowywanych online. Jak radzą sobie z tak ogromną skalą? Ten blog opisuje ewolucję ich systemu backup-recovery: od naiwnego schedulowania po zaawansowane optymalizacje w schedulingu, infrastrukturze i procesach technology-specific. RPO spadło z 7-21 dni do 4-24 godzin, RTO do sprawnych 300 TB na godzinę.
#devops
Monitoring Logs with ELK Stack
Kompleksowy przewodnik po budowie systemu monitorowania logów z użyciem Fluentbit, Fluentd, Elasticsearch i Kibana. Autor szczegółowo tłumaczy różnice między Fluentd a Fluentbit (waga vs funkcjonalność), pokazuje jak zbudować pipeline od zbierania danych z logów przez processing po wizualizację. Długi artykuł, ale konkretny – idealny z kawą w ręku, szczególnie jeśli nie znasz stacku ELK.
37 INSANE Linux Commands you NEED to Know in 2025
NetworkChuck w swoim stylu prezentuje 37 komend Linux-owych, które „MUSISZ” znać w 2025. Mimo click-baitowego tytułu, to solidna lista praktycznych narzędzi dla każdego, kto pracuje z Linuxem. Ja już „sudo apt install” zrobiłem kilka razy… [YT, 11 minut, trzeba pauzować!]
#flink
Exploring Joins and Changelogs in Flink SQL
Autor zaczyna od prostego SELECT * FROM i stopniowo buduje bardziej złożone zapytania, analizując implikacje changelog na każdym etapie. Szczególnie interesujące jest to, co się dzieje, gdy weźmiesz LEFT OUTER JOIN z tradycyjnej bazy danych i wrzucisz do Flink SQL bez zrozumienia konsekwencji. Nauka przez (bolesne) doświadczenie.
#front_end
Binary Formats are Better Than JSON in Browsers!
JSON kiedyś był najszybszy w browserach, ale to już przeszłość. Autor w 2023 roku odkrył, że wszystkie binarne encodingi były wolniejsze od JSONa, ale trendy się zmieniły. Szybszy internet, bardziej skomplikowane web apps i rosnące oczekiwania użytkowników sprawiają, że warto ponownie przyjrzeć się Avro, Protobuf czy Bebop. Konkretne benchmarki i praktyczne wnioski.
#llm_&_chatgpt
Cutting Tokens by 40% to Lower LLM API Costs Using a Memory-Efficient Algorithm
Każdy, kto płaci za API OpenAI, Claude czy Gemini, wie że koszty rosną z każdym uruchomieniem, szczególnie gdy chatbot pamięta historię rozmów. Autor przedstawia algorytm, który redukuje liczbę tokenów w pamięci o 40%, znacznie obniżając koszty inferencji. Kluczowa obserwacja: LLM nie musi odpowiadać za każdym razem, tylko gdy użytkownik naprawdę oczekuje odpowiedzi, a nie poprawia wiedzy.
#management
AI Won’t Kill Junior Devs – But Your Hiring Strategy Might
AI nie zabije juniorów, ale może to zrobić strategia rekrutacyjna. Zamiast pisać boilerplate code (co AI teraz robi), juniorzy muszą skupić się na wyższego poziomu umiejętnościach: debugowaniu, design systemów, efektywnej współpracy. Firmy, które całkowicie rezygnują z juniorów, ryzykują swój przyszły pipeline talentów. Najlepsi juniorzy będą używać AI jako narzędzia do nauki, nie jako podpórki.
The Dumbest Move in Tech Right Now: Laying Off Developers Because of AI
Większość oprogramowania jest w najlepszym przypadku „wystarczająco dobra” – nieintuicyjna, bugowata i frustrująca. Z AI-assisted codingiem mamy szansę dramatycznie poprawić jakość software’u, ale managerowie widzą w tym głównie sposób na cięcie kosztów. To fundamentalne niezrozumienie potencjału AI. Pytanie nie brzmi „ilu programistów możemy zwolnić?”, ale „co możemy w końcu zbudować teraz, gdy ograniczenia zostały zniesione?”.
#powerbi
Integrating Python with Power BI for Advanced Data Analysis
Power BI i Python to potężne połączenie – intuicyjne wizualizacje spotykają się z elastycznością pandas, NumPy i możliwościami ML. Autor pokazuje jak integrować Python z Power BI, eksploruje zalety i ograniczenia, oraz demonstruje użycie Pythona do transformacji danych i custom visualizations. Praktyczny przewodnik dla tych, którzy chcą wycisnąć więcej z Power BI.
#programowanie_ogólnie
Python at Spotify: How They Manage a Massive Python Codebase
Spotify zarządza jednym z największych Python codebase’ów na świecie: 1200+ mikrousług, 300+ repozytoriów, ~850 inżynierów, ~6 milionów linii kodu i ~18,000 deploymentów tygodniowo. Autor odwiedził ich biuro w Sztokholmie i sprawdził, jak radzą sobie z tą skalą. Architektoniczne wzorce, narzędzia i podejścia organizacyjne, które pozwalają utrzymać velocity i stabilność.
#python
Tiny Agents in Python
MCP (Model Context Protocol) to otwarty protokół standaryzujący interakcje LLMów z zewnętrznymi narzędziami i API. Zamiast pisania dedykowanych integracji dla każdego narzędzia, możesz po prostu podłączyć nowe możliwości do swoich LLMów. Proste i praktyczne wprowadzenie.
How I Built My Own Python Task Scheduler Without Using Celery or APScheduler
Czasem nie potrzebujesz ciężkich narzędzi jak Celery czy APScheduler – tylko minimalistyczny system, który uruchomi zadania w tle, obsłuży powtarzanie operacji i błędy, oraz wszystko zaloguje. Autor zbudował to w czystym Pythonie i przeprowadza przez każdą warstwę: threading, decorators, queues, logging. Konkretny kod, konkretne rozwiązania, bez niepotrzebnych zależności.
[PL] A może coś łatwiejszego [autopromocja]
Dość zaawansowane dzisiaj tematy w Pythonie, więc może coś dla juniorów idących w stronę midów? Ta książka jest praktycznym przewodnikiem, bez pomijania trudnych szczegółów. Kup ją.
Zestawienie linków przygotowuje automat, wybacz więc wszelkie dziwactwa ;-)