Curriculum Vitae

5 czerwca 2019 01:59:09

Doświadczenie zawodowe

Sty 2018 (do dziś)

Release Manager w Python Software Foundation

Zarządzanie wydaniami Pythona 3.8 oraz 3.9.

 

Sty 2016 - Gru 2018

Software Engineer w Facebooku

Wsparcie efektywności programistów w Pythonie i wydajności platformy.
Wykorzystane technologie: Python 3.6, Python 3.5, Python 2.7, asyncio, Thrift, Mercurial, git.

 

Wrz 2013 - Sty 2016

Production Engineer w Facebooku

Wsparcie oprogramowania i infrastruktury cache.
Wykorzystane technologie: memcached, MySQL, Python 2.7, Thrift, Mercurial, git.

 

Kwi 2011 - Sie 2013

Senior Systems Architecture Engineer w Grupie Allegro

Rozwój jednolitej warstwy zarządzającej heterogeniczną infrastrukturą, która wspomaga pracę w dużych serwerowniach. Oprogramowanie Ralph zostało wydane i jest utrzymywane jako projekt open-source na licencji Apache. Integruje się z zewnętrznymi systemami jak Puppet, Zabbix, PowerDNS, OpenStack oraz System Center Configuration Manager.
Wykorzystane technologie: głównie Python 2.7 (w tym Django, Celery, SQLAlchemy), Puppet (storeconfigs z własnymi faktami), Redis jako dostawca PubSub, wersjonowanie kodu przez git.

 

Maj 2009 - Wrz 2013

Właściciel i główny programista w LangaCore

Wielu klientów, w tym oprogramowanie dla logistyki (PSI AG), bankowości (STX Next Sp. z o.o.), instytucji państwowych (Lasy Państwowe) czy instytucji akademickich (Uniwersytet Adama Mickiewicza w Poznaniu, Uniwersytet Ekonomiczny w Poznaniu).
Wykorzystane technologie: głównie Python 2.5+ (w tym Django, Pylons, Plone), ANSI C do interakcji z bibliotekami zewnętrznymi i optymalizacji wydajności, Perl 5.6 w wycofywanych komponentach, ciągła integracja przy użyciu Jenkinsa (dawny Hudson) i buildbota, wersjonowanie kodu przez gita, Mercuriala i SVN.

 

Kwi 2012 - Wrz 2012

Mentor dla Python Software Foundation podczas Google Summer of Code

Mentor dla studenta pracującego nad integracją oficjalnego systemu śledzenia zgłoszeń projektu Python z narzędziem Rietveld umożliwiającym przegląd kodu źródłowego. Bugtracker jest dostępny pod adresem bugs.python.org.
Wykorzystane technologie: głównie Python 2.7 (w tym Django, Google App Engine, Roundup), wersjonowanie kodu przez Mercuriala.

 

Sie 2007 – Maj 2009

Architekt/Główny Programista J2EE w EduMedia s.c.

Twórca autorskiego rozwiązania digital signage (głównie Java, części w .NET 3.0 i Pythonie), obsługującego ponad 11000 wyświetlaczy na świecie, głównie na uczelniach wyższych w Polsce, a także w szpitalach, lotniskach, dworcach kolejowych i autobusowych.
Wykorzystane technologie: głównie Java 1.5 (Tomcat, Spring, Hibernate, JMS, Eclipse, JUnit, Ant, JMX), oprogramowanie wyświetlaczy w Pythonie 2.5 (wxPython), szerokie użycie XMLa (dedykowana obiektowa baza danych z interfejsem XML), wersjonowanie kodu przez git (a wcześniej SVN).

 

Lis 2006 – Sie 2008

Architekt/Programista projektów w ramach Polskiej Platformy Bezpieczeństwa Wewnętrznego

Szczegóły projektów rozwijanych w ramach PPBW są niejawne.
Wykorzystane technologie: Python 1.6, niskopoziomowe C do interakcji z urządzeniami GSM, GPS, radiowymi oraz sprzętowymi kontrolerami szyfrowania.

 

Sty 2006 – Sie 2007

Senior Developer/Administrator w XTM International Ltd.

Członek zespołu programistów silnika flagowego systemu firmy, wspomagającego pracę tłumaczy i zarządzałem bezpieczeństwem serwerów (3 serwery, w tym DocZone.com).
Wykorzystane technologie: Java 1.5 (Tomcat, Struts, JAAS, Ant, JUnit, Eclipse), różne bazy danych (Oracle, MySQL, PostgreSQL, X-Hive DB), szerokie użycie XMLa (DOM, StAX, a także wydajny wewnątrzfirmowy parser XML), wersjonowanie kodu przez SVN (a wcześniej CVS).

 

Kwi 2005 – Sty 2006

Administrator i Programista Sieciowy w GamesNET.pl Sp. z o.o.

Twórca systemu umożliwiającego scentralizowane zarządzanie usługami rozproszonymi po wielu serwerach. Umożliwiał automatyzację typowych zadań oraz monitoring, zdalną konfigurację i zarządzanie aplikacjami. Głównie rozwijany z myślą o serwerach gier multi-player. W tamtym czasie zasilający ponad 30 serwerów.
ANSI C (POSIX IPC, gniazda BSD, SSL), różne bazy danych (MySQL, SQLite, BSD DB), komponenty jądra Linuksa.

 

Open Source

Python Programista w projekcie, rozwijający interpreter i bibliotekę standardową, aktualny opiekun biblioteki configparser, autor PEP 443 oraz współautor PEP 484.

 

Black Autor i programista w projekcie, rozwijający popularny automatyczny formatter do kodu pythonowego.

 

Ralph Autor i programista w projekcie, rozwijający narzędzie do zarządzania infrastrukturą serwerowni.

 

Prelekcje

2016 “Thinking In Coroutines”
Konferencja PyCon Ukraine (Lviv, Ukraine)

 

“Thinking In Coroutines”
Konferencja PyCon US (Portland, Oregon)

 

2015 “Call Me Later”
PyWaw Summit (Warszawa, Polska)

 

2014 “Porting to Python 3 Workshop”
Konferencja PyCon PL (Szczyrk, Polska)

 

“Type Hinting in Python”
Konferencja PyCon PL (Szczyrk, Polska)

 

2013 “Let Them Configure!”
Konferencja PyCon US (Santa Clara, Kalifornia)

 

“Composability Through Multiple Inheritance”
Konferencja PyCon US (Santa Clara, Kalifornia)

 

2012 “Ralph - narzędzie do zarządzania infrastrukturą data center”
Konferencja PLNOG9 (Kraków, Polska)

 

“Let Them Configure!”
Konferencja PyCon Ukraine (Kijów, Ukraina)

 

“Kompozycja poprzez wielokrotne dziedziczenie”
Konferencja PyCon PL (Kielce, Polska)

 

2011 “How To Get Commit Privileges in 8 Weeks”
Konferencja RuPy (Poznań, Polska)

 

“Dlaczego Unikod jest trudny”
Konferencja PyCon PL (Kielce, Polska)

 

“Python w Grupie Allegro”
HackFest Coding Marathon (Poznań, Polska)

 

2010 “Testing HTTP Applications with Python 3”
Konferencja EuroPython (Birmingham, Anglia)

 

2009 “Compiled Websites with Plone, Django and SSI”
Konferencja RuPy (Poznań, Polska)

 

2007 “Python Usage in Embedded Environments”
Konferencja RuPy (Poznań, Polska)

Publikacje

  • “Kurs Pythona” (6 części), Software Developers’ Journal 5/2010 – 10/2010 (edycja polska)
  • “Django: Doświadczenia z pracy z frameworkiem”, Software Developers’ Journal 5/2010 (edycja polska)
  • “Python 3: Wprowadzenie”, Linux+ Magazine 5/2010 (edycja polska)
  • “Serwery gier multi-player”, Linux+ Magazine 12/2005 (edycja polska)

Nagrody i wyróżnienia

  • Wyróżnienie na światowych finałach IEEE CSIDC 2006 w Waszyngtonie DC za projekt IntelliForest

    IntelliForest był złożonym, rozproszonym, sieciocentrycznym systemem opartym o sieci sensorowe. Jego podstawowym celem było monitorowanie lasu, automatyczne przekazywanie pomiarów do trwałego magazynu, złożoną analizę zebranych danych oraz ich prezentację. Ten projekt był rozwijany przez czteroosobową grupę studentów z Politechniki Poznańskiej. Byłem odpowiedzialny za magazynowanie i analizę danych.
    Wykorzystane technologie: szerokie wykorzystanie .NET (C#, IronPython, Compact Framework), MS SQL Server 2005 with Analysis Services, Keil C.

Umiejętności i fajne skróty

  • Języki programowania: Python, C, Java
  • Systemy operacyjne: Linux (zsh, Bash, narzędzia i API POSIX, wirtualizacja z Proxmox, KVM i VMware), Mac OS X, Solaris (podstawy)
  • Bazy danych: XML, PostgreSQL, MySQL, Oracle (w tym PL/SQL)
  • Technologie internetowe: HTTP, HTML 5, XHTML, CSS 3, WSGI, JSP, serwlety, JavaScript
  • Języki: polski (język ojczysty), angielski (płynny), niemiecki (podstawowy)
  • Prawo jazdy: prawo jazdy klasy B 

Wykształcenie

Mar 2007 - Paź 2009

mgr inż. informatyki (specjalność: Software Engineering)

Wydział Informatyki i Zarządzania, Politechnika Poznańska, Polska

 

Paź 2003 - Lut 2007

inżynier informatyki (z wyróżnieniem)

Wydział Informatyki i Zarządzania, Politechnika Poznańska, Polska

 

Wrz 1999 - Cze 2003

liceum, profil matematyczno-informatyczny

VII Liceum Ogólnokształcące im. Jarosława Dąbrowskiego, Zielona Góra, Polska

 

Wrz 1994 - Cze 1999

szkoła muzyczna I st., klasa fortepianu

Szkoła Muzyczna I st. im. Stanisława Moniuszki, Zbąszyń, Polska

 

Informacje osobiste

  • Urodzony: 7 marca 1985 roku, Zielona Góra, Polska
  • Narodowość: polska
  • Stan cywilny: żonaty, jedno dziecko
  • Zamieszkanie: Poznań, Polska

Zainteresowania

  • Muzyka: analogowe syntezatory, gra na fortepianie, reżyseria dźwięku
  • Sport: jazda na rowerze
  • Gry: Carcassonne, Munchkin, złożone gry fabularne jak Fallout czy Elder Scrolls