Know-how

Co robię, co potrafię…

Fotografia planszy do gry w Go na klawiaturze laptopa

Programowanie

Tworzę głównie wolne oprogramowanie lub skrypty pomagające mi w powtarzalnych czynnościach administracyjnych. Lubię zajmować się przetwarzaniem języka naturalnego, kryptograficznym zabezpieczaniem zbiorów informacji i komunikacją sieciową. Pociąga mnie konstruowanie zwinnych komponentów (np. webowych API), które sprawnie realizują powierzone im zadania.

Ostatnimi czasy prawdziwą frajdę sprawia mi operowanie na teoretycznie nieskończonych strumieniach informacji i kaskadowe ich przetwarzanie z użyciem leniwych iteratorów i funkcji wyższego rzędu. Dużą zasługę ma tu społeczność programistów języka Clojure i innych dialektów języka Lisp, która hołduje dobrym praktykom przetwarzania dużych zbiorów danych.

Staram się wzorować na architektonicznych założeniach Uniksów, tzn. stosować generyczne interfejsy dostępu do danych i budować małe, specjalizowane narzędzia, które architekt systemu czy aplikacji może łączyć ze sobą na różne sposoby.

Lubię czytelny i udokumentowany kod pozbawiony zbędnej magii.

Ruby

Programuję w języku Ruby, znam też środowisko Ruby on Rails, chociaż preferuję lżejsze frameworki (np. Padrino). Kilka z napisanych przeze mnie bibliotek dla Ruby’ego dostępnych jest publicznie:

Clojure

Programuję w Clojure i ciągle uczę się lepiej korzystać z tego języka. Aby pomóc zaciekawionym, tworzę na łamach tego serwisu podręcznik poświęcony temu dialektowi Lispa.

W wolnych chwilach pracuję nad wolnodostępnymi bibliotekami dla programistów. Jedna z nich, gotowa do zastosowań produkcyjnych, nosi nazwę futils, a jej dokumentacja jest opublikowana w podkatalogu software/futils.

PHP

Dawno, dawno temu wytworzyłem kilka projektów w PHP, m.in.:

Pozostałe

Znam również:

  • Perla – poza skryptami stworzyłem w nim aplikację webową, działającą pod kontrolą modułu mod_perl czy skrypty do uzupełniania słowników projektu PTM;

  • języki skryptowe uniksowych powłok: Bash, DashPDKSH;

  • języki C i C++ (zastosowania sieciowe i programowanie systemowe);

  • PythonaPowerShella, które przydają się w życiu zawodowym.

Miałem również przelotne kontakty z Javą (głównie poprawianie czegoś podczas wdrażania, aby nie budzić programisty) i z programowaniem dla systemu Android, jednak nie wyniknął z tego żaden dłuższy związek. Obecnie czytuję dokumentację klas Javy, żeby lepiej rozumieć Clojure.

Devops

Konfiguruję i zdalnie administruję systemami typu Unix (GNU/Linux, Solaris, HP-UX), również z użyciem narzędzi wirtualizacyjnych (Linux-VServer, KVM, OpenVZ). Potrafię zabezpieczać systemy na poziomie sieciowym, a także na poziomie usług i konkretnych aplikacji (tzw. utwardzanie, ang. hardening).

Lubię projektować architektury operacyjne i tworzyć zautomatyzowane narzędzia do zarządzania użytkownikami oraz uprawnieniami (np. w oparciu o LDAP czy dystrybucję plików haseł), a także skrypty do wprowadzania zmian w konfiguracji (z użyciem oprogramowanie ChefBabushka).

Redagowanie tekstów

Potrafię poprawnie pisać w języku polskim. Wykonuję zlecenia polegające na tworzeniu i redagowaniu tekstów (raporty, artykuły, komunikaty prasowe, prezentacje, dokumentacje techniczne) dotyczących nowych technologii, bezpieczeństwa teleinformatycznego i programowania.

Współpracowałem z magazynami komputerowymi „CHIP”„CHIP Special”, pisywałem też artykuły do serwisów „Interaktywnie.com”„SerwisPrawa.pl”, a okazjonalnie do czasopism „Puls Biznesu”, „Tygodnik Powszechny”„Wprost”. Publikacje dotyczyły głównie programowania i bezpieczeństwa teleinformatycznego.

Wystąpienia publiczne

Umiem komunikować się z publicznością, omawiać problemy i występować z prezentacjami na forum. Poza doświadczeniem w przestrzeni nowych technologii mam za sobą uczestnictwo w warsztatach filmowych (Akademia Sztuk Medialnych w Kolonii), teatralnych (KronokosmosEuropazentrum Meißen), aktorskich i związanych z tworzeniem fotografii oraz plakatów (Begegnungszentrum im Dreieck e.V., obecnie Hillersche Villa).

Dzięki pracy z ciałem i występom w teatrach czy na ulicach ośmieliłem się trochę do publicznych wystąpień i poznałem sposoby na utrzymywanie dobrego kontaktu ze słuchaczami. Umiejętności miałem okazję ugruntować występując na konferencjach FreeCon, SecureCon, OpenConSEConference, jak również na zamkniętych wystąpieniach.

Nie korzystam z tzw. nowoczesnych technik wpływu, perswazji czy sztuczek NLP i nie wymachuję rękami czy nogami w nieskoordynowany z resztą ciała sposób! Myślę, że w przypadku publicznych wystąpień jest to dodatkowym atutem. :)

Kursy i szkolenia

Prowadziłem szkolenia poświęcone administrowaniu systemami i zabezpieczaniu systemów typu Unix, szkolenia dotyczące dobrych praktyk związanych z bezpieczeństwem teleinformatycznym, a także wykłady dotyczące wolnego oprogramowania.

Konsultacje i projekty

Mam doświadczenie w projektowaniu architektur operacyjnych dla złożonych systemów średniej i dużej skali, włączając w to planowanie struktury sieciowej i sposobów dystrybucji oraz serwowania zasobów.

Jesteś w sekcji