Zaznacz stronę

Jak wygląda praca w Shareablee?

 Żeby uniknąć górnolotnych haseł i pustych frazesów.

Szewska 5 – zapraszamy na herbatę albo kawę. Umów się z nami: +48 576 137 010.

Przyjdź i przekonaj się. Zobacz nad jakimi problemami pracujemy. To świetna okazja by doświadczyć tego jak pracujemy, poznać ludzi z którymi będzie się miało okazję pracować na co dzień oraz zapytać o wszystko co Cię ciekawi.

Kto?

Correct Context organizuje IT firmy Shareablee (z Nowego Jorku) oraz działu Customer Success we Wrocławiu.

Dział IT we Wrocławiu istnieje od 2017-09 i jest to trzon IT firmy Shareablee. We Wrocławiu zespół liczy ~12 osób (w Stanach jest CTO oraz jedna osoba z zespołu infrastruktury, na Węgrzej jedna osoba z zespołu Kolekcji).

Co budujemy?

Budujemy platformę internetową do przetwarzania danych social media na dużą skalę (obecnie setki maszyn na AWS oraz setki maszyn na Azure).

Naszymi klientami są między innymi: Facebook, Google, Amazon, Disney, Manchester United.

Organizacja pracy

Podzieleni jesteśmy na kilka zespołów, z których każdy ma swoją charakterystykę pracy oraz obszar działania. Zespoły opisane poniżej.

Pracujemy w czasie lokalnym, między 8:00 a 18:00.

O 14:00 zaczyna się dzień w USA i zazwyczaj do 16:00 naszego czasu wszystkie telefony i synchronizacje są wykonane. Jest to o tyle wygodne, że mamy całkiem długi kawałek dnia, w którym nikt nie przeszkadza.

Do komunikacji online używamy Slack + Zoom.

Inne narzędzia, z których korzystamy: JIRA, Confluence, GitHub, Small Improvements, GMail, Google Calendar.

Technologia

(o specyficzną technologię najlepiej zapytać konkretny zespół)

 Frontend = Python/Django + ReactJS

Backend – jest nieco mniej chomogeniczny.

Sporo przetwarzania to Django/celery, całkiem sporo pythona, basha. Kolektory danych w sporej mierze oparte o technologie Clojure oraz Python.

Infrastruktura – AWS (głównie) oraz Azure to dwa miejsca, w których mamy sporą część infrastruktury. Używamy EC2, R53, ElastiCache, RDS, MapReduce, S3 (dużo).

Jeśli chodzi o narzędzia to często dobieramy do określonych zadań i tak mamy przykładowo:

klastry Kubernetesa (+KeyCloak), klastry Cassandry, ElasticSearcha, RabbitMQ, Redis, Apache Airflow, Apache Kafka, Apache Storm.

Zespół Kolekcji

Zespół odpowiedzialny za to by dane były zebrane na czas.

Główne technologie: Clojure, Python,Docker, Bash, EC2, S3, Cassandra, ElasticSearch

Problemy do rozwiązania:
– jak zebrać dane na czas kiedy klucze API naszych klientów wygasły?
– jak szybko dopasować się zo zmian w API Facebooka?
– jak optymalnie trzymać dane historyczne by nie płacić ogromnych kosztów dysków
– ile zapytań do API wykonuje cała infrastruktura?
– jak skutecznie i szybko wiedzieć czy kolekcja 50 mln elementów przebiega pomyślnie
– jak zautomatyzować kolekcję 50mln elementów i odpowiednio reagować na błędy
– jak automatycznie żąglować limitami na API by zebrać dane jakie potrzebujemy

Zespół Metryk / Big Data

Zespół odpowiedzialny za to by dane były dostępne i łatwo odpytywalne.

Główne technologie: druid.io (baza danych metryk z bardzo szybkimi agregacjami), Cassandra, ElasticSearch, EC2, S3, PostgreSQL.

Problemy do rozwiązania:

– jak efektywnie trzymać dane by można bardzo szybko odpytywać

– jak efektywnie trzymać dane pod względem miejsca na dysku

– jak zapewnić dostęp do danych pod dużym obciążeniem

– jak skopiować 20TB danych z jednej bazy do drugiej w sensownym czasie ale jednocześnie nie zabijając żadnej z baz nadmiernym obciążeniem

Zespół Web

Zespół odpowiedzialny za aplikację, z której korzystają klienci.

Główne technologie: Python/Django/Celery, ReactJS

Problemy do rozwiązania:

– jak dostarczyć szybki i responsywny UI przy API dostarczającym ogrnomne ilości danych

– jak efektywnie zbudować API do obsługi ogromnej ilości danych (pod względem wydajności ale i szybkości odpowiedzi)

– jak przenieść projekt z python2 do python3

– jak przenieść dość dużą bazę kodu na django REST framework

 

Zespół Infrastruktury

Zespół odpowiedzialny za to by całość działała jak w zegarku.

Główne technologie: AWS, Azure, Kubernetes, Airflow, Python, Bash, RabbitMQ, Cassandra, ElasticSearch, Druid.io, prometheus, KeyCloak.

– jak zapewnić dostępność danych dla kilku dużych klastrów danych (dane w terabajtach)

– jak zapewnić wydajność takich baz jak Cassandra, ElasticSearch, Druid.io

– jak przeprowadzić migrację danych z klastra do klastra (ze zmianą kilku wersji oprogramowania oraz zmianą schematów danych) – w sensownym czasie, zachowując dostępność, nie zabijając istniejących klastów

– jak zapewniść dostępność usług takich jak API

– jak zapewnić SLA na dostarczanie raportół

– jak zapewnić programistom środowiska do testowania (cały stack dla każdego Pull Requesta)

– jak ustawić procesy obejmujące dwa cloudy, kilka klastrów baz danych i kubernetesa by alarmy nie budziły cię w nocy

Zespół Wsparcia Technicznego

Zespół wspierający wszystkie inne zespoły.

Główne technologie: wszystkie wymienione wyżej.

Zespół wsprarcie to złote rączki, które pomagają tam gdzie najbardziej potrzeba pomocy w danej chwili lub tam, gdzie wyskakują nieoczekiwane priorytety.

Przykładowe problemy do rozwiązania:

– jak naprawić problemy z dostępnością bazy danych

– jak wygenerować brakujące raporty

– jak zebrać dane, których nie udało się zebrać w normalnym trybie

– jak zablokować stronę logowania przed atakami brute force