Marek Malbrandt
Full range developer
Napisz e-mail

O mnie

„Człowiek wówczas jest spokojny i wesoły, gdy w swoją pracę wkłada serce i stara się ze wszystkich sił.”
- Ralph Waldo Emerson

Marek Malbrandt

architect | backend | lead | devops

Nazywam się Marek Malbrandt i urodziłem się 16 listopada 1994 roku w Elblągu. Uczyłem się zaocznie na studiach I stopnia (inżynierskie) na Instytucie Informatyki Stosowanej Państwowej Wyższej Szkoły Zawodowej w Elblągu na kierunku Informatyka Stosowana ze specjalizacją projektowanie baz danych i oprogramowanie użytkowe.

Programowaniem interesuję od ponad 10 lat. Umiejętności zdobywałem ucząc się samemu z różnych źródeł dostępnych w Internecie oraz książek. Lubię rozwiązywać skomplikowane problemy i wyzwania, niezależnie od technologii w jakiej pracuję. Uważam, że nie ma rzeczy niemożliwych oraz problemów nie do rozwiązania - na wszystko znajdzie się sposób. Mając trzynaście lat, zacząłem swoją przygodę z programowaniem od pisania własnych modów do gry Morrowind przy użyciu języka Lua. Po jakimś czasie skierowałem swoją uwagę na front-end i technologie webowe (m.in. PHP, CSS, HTML, jQuery, MySQL, ActionScript 3). Później zacząłem się interesować aplikacjami desktopowymi na platformie .NET (C#, WPF, wzorzec MVVM). Dodatkowo na studiach zetknąłem się z programowaniem w Javie (JavaFX, JSF), Pythonie (PyQt5), C++ (STM32) oraz C.

Ostatnimi czasy pracowałem w firmie CWK Sp. z o. o. oraz nad własnymi projektami. Z chęcią podejmę pracę, w której mógłbym się dalej rozwijać, najlepiej w kierunku architekta oprogramowania i/lub programisty backend. Znajomość i doświadczenie wielu różnych technologii sprawia, że nowych uczę się bardzo szybko. Staram się tworzyć kod tak, by czytało się go jak prozę, ponieważ dobrze zaprojektowana abstrakcja jest niezależna od szczegółów implementacji w wielu technologiach.

W pracy skupiam się na realizacji potrzeb biznesowych klienta i maksymalizowaniu zysków i oszczędności firmy. Swoim działaniem często wykraczam poza obowiązki na zajmowanym stanowisku. Najważniejszy jest klient i jego potrzeby. Najważniejsze są problemy i ich rozwiązanie. Najważniejsze są szanse i ich wykorzystanie.

Umiejętności

„Nauka jest jak niezmierne morze. Im więcej jej pijesz, tym bardziej jesteś spragniony.”
- Stefan Żeromski

Backend

Potrzebujesz mocnego backendowca, który kocha programować? Dobrze trafiłeś. Dla mnie programowanie jest sztuką, staram się więc dawać siebie jak najwięcej. Mnie i mój kod cechuje:

  • czytelność i prostota - kod powinno czytać się przyjemnie jak książkę, a nie zastanawiać, co się w nim dzieje,
  • generyczność, ponowne użycie, modułowość - wolę zaprojektować i stworzyć raz, a dobrze,
  • dekompozycja funkcjonalna, planowanie, pseudokod - każde skomplikowany problem powinien być dzielony na mniejsze tak długo, dopóki rozwiązania nie będą lepiej widoczne,
  • defensywne programowanie - tracing, obsługa błędów "po bożemu", zamiast pustych bloków try/catch; stałe typy, unikanie "haków",
  • testy: manualne, jednostkowe, TDD - im większe pokrycie kodu testami, tym lepsza jego jakość,
  • znajomość dobrych zasad i wzorców - kod najwyższej jakości, tworzony z użyciem powszechnych wzorców zrozumiałych przez innych,
  • znajomość standardów - ustandaryzowane środowisko usprawnia nawigację w kodzie, komunikację w zespole i chroni przed chaosem (PSR-FIG itp.),
  • konwencje - jedna rzecz - jedno określenie; nadają kodowi matematyczną wręcz symetrię,

Team Leader

Potrzebujesz ogarniętego programisty, który poprowadzi Twój zespół? Chcesz, aby zespół stale się rozwijał, szybko realizował wyznaczone zadania? Zrobię to z przyjemnością, a dzięki mnie Twój zespół mógłby zyskać:

  • maksymalna wydajność - dobór w zależności od wielkości i potrzeb zespołu,
  • szkolenia - aby zespól stale się rozwijał i był coraz mocniejszy,
  • efektywne zarządzanie - nikt się nie będzie nudził,
  • kwestie polityczne - utrzymanie motywacji i zdrowych relacji w zespole,
  • asertywność - usłyszysz "NIE", gdy będziesz wymagał niemożliwego,
  • miarodajne szacowanie - poznaj rentowność i termin wykonania funkcji,
  • pair programming - aby programiści uczyli się od siebie nawzajem i mogli lepiej zrozumieć, że kod jest dobrem wspólnym,
  • procesy i konwencje - żeby wszystko w Dziale IT chodziło "jak w zegarku".
  • komunikacja z kontrahentami - nie będziesz już musiał się martwić o rozwiązywanie problemów technicznych z API usługi zewnętrznej czy zebranie kompletnych wymagań od swoich klientów.

Architect

Startujesz z nowym projektem i nie wiesz od czego zacząć, jaki wybrać framework, biblioteki, narzędzia, infrastrukturę; jak zorganizować procesy, zaprojektować rozwiązanie i jego implementację? Mógłbym Ci pomóc w następujących kwestiach:

  • wybór/zaprojektowanie architektury - tak, by mogła spełnić wszystkie potrzeby opisane w wymaganiach, była wydajna i elastyczna na zmiany,
  • wybór/zaprojektowanie narzędzi i usług - "Don't reeinvent the wheel",
  • wybór infrastruktury - optymalny dobór, bez zbędnych kosztów; kwestie skalowalności,
  • zaprojektowanie klas/struktur danych - wydajne, generyczne i elastyczne struktury, idealnie dopasowane do Twoich potrzeb,
  • DevOps - wdrożenia aplikacji i jej przyszłych aktualizacji.

Web scraping

Potrzebujesz stworzyć ogromną bazę danych używając danych ze stron internetowych? Chcesz stworzyć bazę klientów z danymi kontaktowymi lub bazę produktów z cenami konkurencji? Doskonale trafiłeś, ponieważ:

  • doświadczenie - jestem autorem kilku systemów mających na celu wyciąganie, sanityzację i normalizację różnorodnych danych ze stron,
  • łamanie zabezpieczeń - strona posiada zabezpieczenia, takie jak catpcha? Na wszystko znajdzie się sposób,
  • bezpieczeństwo i anonimowość (proxy) - przekieruj scraping przez kilka kontynentów, aby utrudnić identyfikację źródła scrapingu,
  • indywidualne podejście - każdy projekt web scrapingowy jest inny, do każdego trzeba podejść indywidualnie,
  • mapowanie danych - jeżeli Twoje dane mają charakter "modeli" (systematyczna struktura), mogą być zmapowane do tych struktur, dzięki czemu łatwiej będzie później manipulować używając frameworków z mechanizmami ORM,

UX

Czujesz, że Twoja firma nie pracuje na najwyższych obrotach i się "dławi"? Przeprowadzę audyt procesów i używanych narzędzi w różnych działach, przeanalizuję go i przygotuję strategię oraz jej wdrożenie, aby rozwiązać problemy wewnątrz firmy, o których nawet nie wiesz. Dotyczy to m.in. takich rzeczy jak:

  • zaprojektowanie/optymalizacja procesów kiedy czujesz, że ludzie pracują w chaosie, ciężko się wdraża nowych pracowników, nie ma ładu i harmonii w obecnej organizacji procesów,
  • zaprojektowanie/optymalizacja przepływu informacji kiedy firma używa dziesiątek lub setek arkuszów kalkulacyjnych, proces zdobywania prostych informacji trwa długo, komunikacja między działami leży, występują przestoje, ludzie często przerywają sobie nawzajem pracę itp.,
  • zaprojektowanie/optymalizacja interfejsów i ergonomii, kiedy uważasz, że narzędzia z jakich korzystacie są trudne w obsłudze, nieintuicyjne, powolne, nieergonomiczne itp.

Portfolio

„Wszystko, czego się dotąd nauczyłeś, zatraci sens, jeśli nie potrafisz znaleźć zastosowania dla tej wiedzy.”
- Paulo Coelho

Marek Malbrandt portfolio project thumbnail image screenshot Marek Malbrandt portfolio project thumbnail image screenshot

{{project.name}}

{{project.shortdesc}}

Doświadczenie

Praca daje okazję odnalezienia samego siebie. Własnej rzeczywistości dla siebie i nikogo innego.
- Bolesław Prus

  •  

    05.2018 - obecnie

    Grupa CWK Team Leader

    Obowiązki

    • Wdrażanie nowych funkcji do serwisu dla klientów i pracowników,
    • integracje z wieloma usługami zewnętrznymi (RESTful API, SOAP/WSDL),
    • optymalizowanie wewnętrznych narzędzi pod kątem ergonomii i wydajności (UX),
    • analiza publicznego RESTful API pod kątem bezpieczeństwa i potencjalnych luk,
    • centralizacja informacji,
    • wdrożenie nowoczesnych narzędzi,
    • współpraca z DevOps,
    • kierowanie zespołem i wdrażanie nowych członków,
    • przeprowadzanie szkoleń,
    • testy manualne, interfejsu i automatyczne,
    • analiza danych i raportów z narzędzi,
    • deployment i konfiguracja serwerów,
    • obsługa wszystkich spraw IT firmy,
    • generowanie raportów i statystyk.

    Osiągnięcia

    • Kilka integracji SOAP/WSDL API i REST API usług zewnętrznych,
    • zwiększenie ergonomii narzędzi,
    • analiza bezpieczeństwa API i wdrożenie usprawnień,
    • optymalizacja wydajności serwisów.
  •  

    04.2018 - 05.2018

    AfterMarket starszy programista/100% zdalnie

    Obowiązki

    • Tworzenie funkcji do nowej wersji serwisu
    • .naprawianie błędów
  •  

    08.2017 - 04.2018

    Viola Software starszy programista

    Obowiązki

    • Projektowanie systemu ERP,
    • tworzenie zaawansowanego systemu zarządzania parametrami produktów,
    • tworzenie wydajnych mechanizmów importu, migracji i synchronizacji danych.

    Osiągnięcia

    • Ponad 50% własnych zmian w 6-cio osobowym zespole (ok. 40 tys. linii kodu PHP),
    • migracja ponad 30 mln rekordów z prawie 7 tys. tabel (z systemu MagAD-SQL).

    Portfolio

  • ❤️