O mnie

Komercyjnie programuję od 5 lat, ale przygodę z programowaniem rozpocząłem już na studiach (Geofizyka na Akademii Górniczo-Hutniczej w Krakowie), gdzie miałem dość sporo do czynienia z Pythonem oraz zagadnieniami przetwarzania i analizy danych.

Jako osoba bez wykształcenia IT cały czas czuję potrzebę poszerzania wiedzy i rozwoju w tej branży, do której wszedłem dość późno. Stąd też pomysł bloga pisanego w pierwszej osobie, będącego niejako zapisem notatek z procesu nauki. Tak naprawdę opisuje tu powtarzające się w mojej pracy problemy oraz to jak je rozwiązać. Każdy artykuł pisany jest jako przepis jak napisać konkretny fragment aplikacji lub jako opis technologi, którą chcę utrwalić.

Języki programowania

Programuję obecnie prawie wyłącznie w TypeScript i JavaScript. Jest to głównie kod backendowy, sporadycznie praca z frontendowymi frameworkami lub jakieś proste skrypty czy CLI. W prywatnych projektach staram się jednak pisać dużo w Golang'u i jest to zdecydowanie język, a który chciałbym się w jakimś stopniu przesiąść również w pracy zawodowej.
Wcześniej sporo programowałem również w Pythonie. Pracowałem przy przetwarzaniu i analizie danych, ale również pisałem serwisy i narzędzia w postaci skryptów.

Technologie backendowe

Najwięcej ostatnio do czynienia mam z microservisami zbudowanymi w Nest.JS, komunikującymi się poprzez RabbitMQ. Pracuję z systemami rozproszonymi, opartymi mi. o DDD, rzadziej TDD, ale również bardziej wyspecjalizowanymi pomocniczymi narzędziami czy bibliotekami.
Bardzo lubię również pracę z systemami opartymi o serverless (nie framework a podejście!).
Pracuję lub pracowałem zarówno z relacyjnymi, jak i nierelacyjnymi bazami danych. Najwięcej doświadczenia zdobyłem w pracy z MongoDB oraz z silnikiem wyszukiwań Elasticseach.

Infrastruktura

Zarówno zadania komercyjne, jak i prywatne projekty staram się zawsze budować z myślą o chmurze. Stąd też swoją pracę i rozwój opieram o technologie związane z komercyjną chmurą obliczeniową AWS, konteneryzacją i podejściem do opisywania infrastruktury jako kodu (IaaC).
W projektach poza samym Dockerem i Terraformem używam podejść CI/CD, głównie opartych o Gitlab-CI i GithubActions, rzadziej Jenkins. W najbliższym czasie szczególnie zamierzam się skupić na zagadnieniach związanych z Kubernetesem i pogłębić wiedzę na temat AWS.
W wolnych chwilach sporo czasu poświęcam projektom opartym o platformę RaspberryPI, głównie w zagadnieniach związanych z networkingiem i DevOps.