Aktualności

Zaproszenie na 112. spotkanie WG.NET

opublikowane: 5 paź 2017, 06:23 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się nietypowo we wtorek, 17.10 o godzinie 18.00 w sali 107 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Naszym gościem specjalnym jest Sasha Goldshtein, który przy okazji obecności na konferencji DeveloperDays zgodził się na prezentację dla WG.NET. Poniżej szczegóły:

1. Konrad Kokosa - ETW ratunkiem programisty .NET
 
Kto kiedykolwiek „debugował” swoją aplikację używając nic nie znaczących komunikatów „krok1”, „krok2”, itd.? Pracując trochę w branży wiemy już zapewne, że prędzej czy później będziemy zmuszeni diagnozować naszą aplikację. I to pewnie na najmniej sprzyjającym środowisku – na produkcji. W prezentacji przedstawię potężny, a jednocześnie wciąż nieco niedoceniany mechanizm Event Tracking for Windows. Dostarcza on bardzo wielu informacji o sprzęcie, o systemie jak również – co najbardziej interesujące - o naszej aplikacji .NET. I to wszystko za darmo!
 
Programujący od lat kilkunastu, od kilku lat rozwiązujący problemy wydajności, zagadki diagnostyczne i łamigłówki architektury w świecie .NET przyspieszając aplikacje webowe. Niezależny konsultant, blogger (http://blog.kokosa.net), prelegent i ćwierkacz (@konradkokosa) gdzie można znaleźć więcej informacji na wspomniane tematy. Swoją pasją dzieli się również jako trener w Bottega IT Solutions w obszarze .NET, m.in. wydajności i diagnostyki aplikacji. Założyciel grupy Warsaw Web Performance. Microsoft MVP w kategorii Visual Studio and Development Tools.

2. Sasha Goldshtein - Squeezing the Hardware to Make Performance Juice (prezentacja w j. angielskim)

Obvious ways to get performance wins are obvious. By the end of 2017, every .NET developer should know about concurrency and parallelism, ORMs and web response caching, efficient collections and garbage collection internals. But there are so many performance wins ripe for the picking that most .NET developers don't know about. This talk is all about squeezing the best performance out of modern hardware. And modern hardware is about vectorization in addition to parallelization; modern hardware is about optimizing your instruction flow and data layout for last-generation instruction sets and cache structures; modern hardware is understanding that using 4 cores is not the same thing as using 44 cores; modern hardware is about using tools to determine where bottlenecks lie and not about guessing. This talk dives deep under the covers of your processor and memory system to deliver top-notch performance, all while using C# and .NET. We will see multiple examples of optimizing CPU- and memory-bound algorithms that are used in real-world applications, such as finance, image and signal processing, and many others.

Sasha Goldshtein is the CTO of Sela Group, a Microsoft C# MVP and Azure MRS, a Pluralsight author, and an international consultant and trainer. Sasha is the author of “Introducing Windows 7 for Developers” (Microsoft Press, 2009) and “Pro .NET Performance” (Apress, 2012), a prolific blogger and open source contributor, and author of numerous training courses including .NET Debugging, .NET Performance, Android Application Development, and Modern C++. His consulting work revolves mainly around distributed architecture, production debugging and performance diagnostics, and mobile application development.

Wstęp wolny, zapraszamy!

Zaproszenie na 111 spotkanie WG.NET

opublikowane: 14 wrz 2017, 07:31 przez Michał Grzegorzewski

Zapraszamy wszystkich na trzecią odsłonę Unconference WG.NET, która odbędzie się w czwartek, 21.09 o godzinie 18.00. W planach, zamiast tradycyjnych prezentacji, mamy jedną pozycję w formacie "unconference".

Uwaga!!!

Ze względu na środki bezpieczeństwa w budynku gospodarza, potrzebne jest zbieranie danych osób przychodzących na konferencje. Prośba o uzupełnienie danych w Meetup oraz rejestrację poprzez wydarzenie na Meetup (https://www.meetup.com/WG-NET/). Prosimy też, o ile to możliwe, o pojawienie się bez dużych plecaków.

Co to jest unconference:


Unconference jest lekką formą konferencji. Podczas spotkania słuchacze uczestniczą w niej w znacznie większym stopniu, prowadząc dyskusje w małych grupach. Ważnym elementem tego formatu spotkania jest możliwość zgłoszenia własnych tematów przez słuchaczy a następnie poprowadzenia dyskusji/prezentacji z danego tematu. Aby ograniczyć 'prezentacyjność' i zwiększyć zaangażowanie uczestników, grupy powinny skupiać się w kręgu, natomiast prowadzący dany temat (jeżeli zachodzi taka potrzeba) powinien używać jedynie flipboarda. Pojedyncze sesje są krótkie, ok 30-40 minut, a używanie slajdów, czy komputera jest zabronione.

Czy muszę się zgłaszać z tematem?

Nie musisz się zgłaszać z tematem. Jeżeli jednak masz coś ciekawego do powiedzenia, albo uważasz jakąś technologię za niedocenianą, to może być to świetnym tematem jednej z sesji.

Czy muszę się rejestrować na spotkanie?

Tak. Ze względu na ograniczoną przestrzeń, przy bramkach do budynku będziemy sprawdzać czy się zapisałaś/-eś. Zapisy poprzez stronę wydarzenia na Meetup: https://www.meetup.com/WG-NET/

Wstęp wolny, zapraszamy!

Kto będzie organizował spotkanie?

W moderacji wspierać nas będą:

- Tomasz Frydrychewicz
- Konrad Banaszek
- Sebastian Solnica

Zaproszenie na 110 spotkanie WG.NET

opublikowane: 11 sie 2017, 03:18 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 17.08 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach prezentację oraz snack, szczegóły poniżej:

1. Marcin Śmiałek - Pierwsze kroki w USB HID w .Net, snack
Opis: Na krótkim demo ustawimy kolor w lampce USB.

2. Bartosz Sypytkowski - CRDT - coordination without consensus
Opis: Jednymi z najpowszechniejszych metod koordynacji stanu danych między komponentami naszych systemów są transakcje oraz locki. Niestety, kiedy idzie o systemy rozproszone, wiąże się to z problemami związanymi z niską skalowalnością oraz ryzykami. Alternatywą do tego podejścia są Conflict-free Replicated Data Types: struktury danych gwarantujące bezkolizyjne aktualizacje danych bez konieczności ekskluzywnego dostępu do nich. W ramach tej prezentacji opowiem, w jaki sposób one działają oraz gdzie znajdują zastosowanie.

Wstęp wolny, zapraszamy!

Zaproszenie na 109 spotkanie WG.NET

opublikowane: 14 lip 2017, 02:42 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 20.07 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje, szczegóły poniżej:

1. Marcin Śmiałek - C# 7 - Co zostało dodane i dlaczego?

Opis:
- C# 7 na tle poprzednich wersji
- Nowości w C# 7.0
- Wgląd w przyszłość - C# 7.1 i kolejne

2. Kamil Mrzygłód - Making serverless great again with Azure Functions

Opis
Podczas prezentacji postaram się przybliżyć architekturę serverless z użyciem Azure Functions. Skupimy się zarówno na tym, co jest pod spodem, jak i na bardziej biznesowych przypadkach użycia Functions w chmurze Azure. Zobaczymy także co otwarty kod źródłowy daje w kontekście tego produktu Microsoftu i jak to się przekłada na codzienny development.

Bio: .NET oraz Azure developer w Demant Technology Centre. Fan cięższej muzyki, właściciel buldoga francuskiego oraz autora bloga Automate The World - http://blog.codenova.pl/.

Wstęp wolny, zapraszamy!

Zaproszenie na 108 spotkanie WG.NET

opublikowane: 13 cze 2017, 04:16 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które tym razem odbędzie się wyjątkowo we wtorek, 20.06 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje, szczegóły poniżej:

1. Mateusz Piasecki - Dlaczego warto mieć swoją apkę w Sklepie i dlaczego najlepiej na Windows

Opis:
Bardziej szczegółowo: dlaczego ja opisuje, po co interesować się pisaniem swoich aplikacji, dlaczego Windows (droga do Win 10 UWP, porównanie możliwości z iOS i Androidem), technologie, próg wejścia, przebijanie się na rynku, utrzymanie, monetyzacja,  efekty.

2. Sebastian Gębski - Coupling, czyli o kodzie, który sam się plącze, gdy nie patrzysz

Opis:
Trudno znaleźć programistę, który nie słyszał słowa "coupling". Wszyscy wiedzą, że to właśnie coupling rozdmuchuje zakres prostych zmian w kodzie, generuje dług techniczny,  utrudnia automatyzację testów, zwiększa inflację, powoduje kwaśnienie mleka oraz wywołuje efekt cieplarniany ... W praktyce okazuje się, że coupling rozumiemy przede wszystkim intuicyjnie (często błędnie, bo zło ma niejedno oblicze ...) i identyfikujemy zwykle dopiero wtedy, gdy wymyka się spod kontroli.
Celem prezentacji będzie wgłębienie się w temat i wyjaśnienie kluczowych kwestii: Czym naprawdę jest coupling? Kiedy występuje (i kiedy wybucha w twarz)? Czy zawsze jest (tak samo) szkodliwy? Jak mu przeciwdziałać, albo chociaż uniknąć jego skutków? Czy programowanie funkcyjne jest arcysprytnym sposobem uniknięcia couplingu?
Aby poznać odpowiedzi na te pytania odbędziemy swoistą podróż przez czas, pamięć, wątki, procesy, a nawet fazy dostarczania oprogramowania. Będziemy się posiłkować przede wszystkim dużą ilością praktycznych przykładów z życia wziętych i niezliczoną ilością diagramów UML-opodobnych.

Agenda:
1. Wizja lokalna - coupling w środowisku naturalnym
2. Kapling i kohezja, czyli o czym właściwie mówimy
3. Skalowanie niejeden ma wymiar
4. Cohesion: czyli jak grupować
5. Coupling w (więcej niż) 5-ciu smakach
6. Ku przestrodze ...
7. Jak robić, żeby było dobrze (w sumie)

Wstęp wolny, zapraszamy!

Zaproszenie na 107. spotkanie WG.NET

opublikowane: 12 kwi 2017, 02:29 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 20.04 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje oraz snack, szczegóły poniżej:

1. Grzegorz Wiśniewski - Krótka historia: identyfikatory, snack

Agenda:
Podczas krótkiego wystąpienia opowiem o swoich doświadczeniach związanych z nadawaniem poprawnego typu dla identyfikatorów.

2. Michał Szafrański - Mac dla programistów .NET

Agenda:
Prezentacja możliwości pracy programistów .NET w systemie macOS.
Odpowiem na pytanie "dlaczego możemy śmiało przesiadać się na Maca będąc programistą .NET?”. Zaprezentuję jakie narzędzia mamy dostępne na Macu, które są używane w Windows oraz zachęcę do przesiadki i wykorzystania produktywności, jaką daje system macOS.

Bio:
Michał Szafrański, entuzjasta produktów firmy Apple, zafascynowany możliwościami automatyzacji macOS-a, zwiększania produktywności z wykorzystaniem Maca. Długo pracujący w zespole Technologii i Standaryzacji w LUX MED. Obecnie Software Engineer w Accenture, projektujący i tworzący system dla banku PKO BP.

3. Adam Sitnik - Moja niesamowita przygoda z Open Source

Agenda:
Przez wiele lat społeczność .NETa była zamknięta wraz ze swoim ulubionym framework’iem. Niedawno wszystko zaczęło się zmieniać. Wszystkie najważniejsze komponenty ekosystemu .NET jak kompilatory, maszyna wirtualna i ASP.NET są teraz otwarte.
Czy zastanawiałeś się czy samemu nie zacząć się udzielać?
Chciałbyś, ale nie wiesz od czego zacząć?
Podczas tej prezentacji opowiem o mojej niesamowitej przygodzie z OSS, która na dobre zmieniła moje życie i podejście do programowania. Podzielę się moimi doświadczeniami i przemyśleniami, które pomogą odpowiedzieć na takie pytania jak:
- Dlaczego warto zacząć?
- Od czego zacząć?
- Czego unikać?
- Czego można się nauczyć?
- Co można zyskać?
- Na czym warto się skupić?
- Jakie są wady?
- Co może Cię zaskoczyć?

i wiele innych..
O mnie: Pasjonat technologii .NET, kontrybutor BenchmarkDotNet, CoreCLR i corefxlab.

Wstęp wolny, zapraszamy!

Zaproszenie na 106. spotkanie WG.NET - Unconference

opublikowane: 2 mar 2017, 01:58 przez Michał Grzegorzewski

Marzec to trzeci miesiąc z rzędu, gdy kolejna osoba blisko związana z WG.NET uzyskuje tytuł MVP. Tym razem jest to Piotr Stapp, któremu serdecznie gratulujemy! :)

Zapraszamy wszystkich na drugą odsłonę Unconference WG.NET, która odbędzie się w czwartek, 23.03 o godzinie 18.00 w innym niż dotychczas miejscu. Przeniesiemy się do dużej przestrzeni w Centrum Warszawy, zapewnionej nam przez firmę Demant Technology Centre, w budynku Q22, Al. Jana Pawła II 22. W planach, zamiast tradycyjnych prezentacji, mamy jedną pozycję w formacie "unconference".

Co to jest unconference:

Unconference jest lekką formą konferencji. Podczas spotkania słuchacze uczestniczą w niej w znacznie większym stopniu, prowadząc dyskusje w małych grupach. Ważnym elementem tego formatu spotkania jest możliwość zgłoszenia własnych tematów przez słuchaczy a następnie poprowadzenia dyskusji/prezentacji z danego tematu. Aby ograniczyć 'prezentacyjność' i zwiększyć zaangażowanie uczestników, grupy powinny skupiać się w kręgu, natomiast prowadzący dany temat (jeżeli zachodzi taka potrzeba) powinien używać jedynie flipboarda. Pojedyncze sesje są krótkie, ok 30-40 minut, a używanie slajdów, czy komputera jest zabronione.

Czy muszę się zgłaszać z tematem?


Nie musisz się zgłaszać z tematem. Jeżeli jednak masz coś ciekawego do powiedzenia, albo uważasz jakąś technologię za niedocenianą, to może być to świetnym tematem jednej z sesji.

Czy muszę się rejestrować na spotkanie?


Tak. Ze względu na ograniczoną przestrzeń, przy bramkach do budynku będziemy sprawdzać czy się zapisałaś/-eś

Kto na pewno pojawi się z tematami?

TBA

Kto będzie organizował spotkanie?

W moderacji wspierać nas będą:

- Tomasz Frydrychewicz
- Konrad Banaszek
- Sebastian Solnica

Wstęp wolny, zapraszamy!

Zaproszenie na 105. spotkanie WG.NET

opublikowane: 2 lut 2017, 04:26 przez Michał Grzegorzewski

Po najnowszych zmianach w programie MVP, do grona wyróżnionych dołączył Konrad Kokosa, który od samego początku swojej aktywności jest blisko związany z WG.NET. Tym samym świętujemy dalej i w lutym zapraszamy wszystkich na spotkanie grupy, które odbędzie się w czwartek, 9.02 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Ale zanim podamy agendę, to jeszcze jedna informacja.

W tym roku również mamy przyjemność partnerowania WROC# (wrocsharp.com) i w związku z tym mamy do rozlosowania wejściówki. Organizatorzy zmienili nieco formułę i dlatego mamy dostępną jedną wejściówkę darmową oraz 3 płatne (150zł). Jeśli chcesz wziąć udział w tej imprezie, a jesteś do tego bywalcem spotkań WG.NET, to wypełnij formularz zgłoszeniowy, a spośród zgłoszeń wylosujemy dostępne nam wejściówki

http://tnij.org/wgnetwrocsharp2017

Zgłoszenia przyjmujemy do końca tygodnia (do 2017-02-06 00:00)

A teraz nasze plany na to spotkanie:

1. Konrad Kokosa - Jak i po co skompilować .NET Core? (snack)
Czas: ~15min

2. Grzegorz Wiśniewski - Biznesowe zastosowania System.Guid (snack)
Czas: ~20-25min

3. Marian Dziubiak - F# web development
Abstrakt:
Tworzenie aplikacji webowych dość naturalnie wpasowuje się w programowanie obiektowe. Jednak takie frameworki jak ASP.NET MVC czy EF wymagają olbrzymiej ilości kodu aby stworzyć prostą aplikację. Dlatego tworzenie aplikacji może okazać się łatwiejsze w języku funkcyjnym, w F#. Przy użyciu biblioteki Suave można w prosty i funkcyjny sposób tworzyć aplikacje webowe. Rozszerzając ją o DotLiquid możemy również w prosty sposób tworzyć widoki HTML. Na przykładzie projektu, który robię w ramach przedmiotu Bazy Danych (studia), chciałbym zaprezentować wam jak wygląda programowanie webowe w F#, jak działa Suave, jakie mamy zalety w porównaniu z C# i jakie miałem po drodze trudności.

4. Piotr Stapp - Pogromcy mitów: HTTP/2 i wydajność stron WWW

Abstrakt:
Wielu deweloperów pokłada nadzieje w HTTP/2, który już wkrótce ma być powszechny. Jednakże, czy wszystkie problemy zostaną magicznie rozwiązane?
Zaczniemy od historii, dotkniemy tego co jest dzisiaj, a potem skupimy się na najbliższej przyszłości. Uwzględniając m.in: HTTP/2, FLIF i WebP czy Google HTML/CSS Style Guide.
Kilka mitów i pseudo-faktów zostanie sprawdzonych i obalonych na żywo.
Czas: ~1h

Wstęp wolny, zapraszamy!

Zaproszenie na 104. spotkanie WG.NET - MVP Party!

opublikowane: 10 sty 2017, 03:05 przez Michał Grzegorzewski

Styczeń zaowocował kolejnymi nominacjami do prestiżowego tytułu MVP, w tym dwiema w kategoriach deweloperskich. Jednym z nagrodzonych jest lider Warszawskiej Grupy .NET - Szymon Kulec, drugim - lider Wrocławskiej Grupy .NET - Paweł Łukasik.
W czasie najbliższego spotkania będziemy wspólnie ze świeżo upieczonymi MVP świętować to wydarzenie i w związku z tym zapraszamy wszystkich w czwartek, 19 stycznia na godzinę 18.00 do sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Planujemy dwie prezentacje oraz mały poczęstunek. Poniżej szczegóły.

1. Paweł Łukasik - Hakowanie ILa


W codziennej pracy używamy .NETa kodując w C#, F# czy VB. Ale siedzący pod spodem IL daje nam trochę większe możliwości niż to co mamy dostępne na co dzień. W prezentacji pokażę przydatne, nieprzydatne oraz ciekawe możliwości które daje nam IL jeśli tylko pozwolimy sobie na jego poznanie.

Blog: http://blog.octal.pl/

2. Szymon Kulec - Keep Its Storage Simple Stupid
an opinionated guide to NoSQL with Azure Storage and Event Driven Architecture


Podczas prezentacji podzielę się z Wami wnioskami z projektu w podejściu SAAS, bazującego na podstawowym serwisie chmury Azure, Windows Azure Storage. Zaczniemy od tego, co oferują wybrane serwisy i tego jakie mają ograniczenia. Następnie przejdę przez założenia projektu, które go ukształtowały i omówię architekturę zbudowaną tak, aby tanio i sprawnie zaadresować wcześniej pokazane potrzeby. To, co istotne, to fakt, że zaprezentowane techniki projektowania zastosować można nie tylko w Azure Storage, ale także używając innych baz NoSQL i rozwiązań chmurowych.

Blog: https://blog.scooletz.com
Twitter: https://twitter.com/scooletz

Proszę o w miarę możliwości jak najszybszą odpowiedź na zaproszenie - ułatwi nam to przygotowanie spotkania.

Wstęp wolny, zapraszamy!

Zaproszenie na 103. spotkanie WG.NET

opublikowane: 8 gru 2016, 07:10 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 15.12 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje, szczegóły poniżej:

1. Piotr Gankiewicz - Warden - monitorowanie zasobów i aplikacji
Przewidywany czas: 50 min.

Abstrakt: Monitorowanie aplikacji oraz szeroko pojętych zasobów (bazy danych, pliki, procesy, API itp.) to coś z czym prawie każdy z nas ma do czynienia na co dzień. Mnogość usług jak NewRelic, AppDynamics lub Nagios daje poczucie, że można zrobić praktycznie wszystko i zabezpieczyć się przed każdą ewentualnością ale czy na pewno? Co jeżeli chcemy wykonać jakąś niestandardową akcję np. uruchomić kawałek własnego kodu lub jakiś skrypt? Czy jesteśmy zmuszeni do pisania własnej aplikacji-monitora? Zaprezentuję projekt open source o nazwie Warden (https://getwarden.net), który rozwijałem (i nadal rozwijam) w ramach konkursu "Daj Się Poznać 2016". Przedstawię liczne rozszerzenia  dostępne jako paczki NuGet, które w łatwy i szybki sposób pozwalają stworzyć aplikację służącą do monitorowania dowolnych zasobów. Opowiem również o planach związanych z rozwojem nowego API oraz aplikacji webowej docelowo umożliwiającej wgląd w metryki, dane historyczne i konfigurację Wardena bez konieczności znajomości programowania.

Bio: Pasjonat platformy .NET, języka C#, technologii webowych, a od niedawna również Dockera i mikroserwisów.
Podwójny zwycięzca konkursu "Daj Się Poznać 2016" (nagroda główna + nagroda od Microsoft), bloger (http://piotrgankiewicz.com) i kontrybutor open source https://spetz.github.io. Z wykształcenia mgr inż. informatyki po AGH (niedoszły oficer Wojska Polskiego), dodatkowo zakręcony w temacie sportów walk i siłowo-wytrzymałościowych, zdrowego trybu życia. W wolnym czasie (głównie letnim) motocyklista.

2. Dariusz Pawlukiewicz - CQRS & Event Sourcing
Przewidywany czas: 50-55 min.

Abstrakt: Command Query Responsibility Segregation (CQRS) oraz Event Sourcing to ostatnimi czasy "buzz words" w branży IT. Oprócz niepodważalnych zalet płynących ze stosowania tych dwóch rozwiązań w społeczności pokutuje stwierdzenie, że sam koncept jak i implementacja są niemalże trywialne. Czy aby na pewno? Podczas prezentacji postaramy się wspólnie dowiedzieć czym oba te podejścia są, jakie korzyści płyną z ich stosowania, jak możemy dzięki nim zaprojektować nasz system oraz postaramy się odpowiedzieć na pytanie czy wszystko jest rzeczywiście tak proste jak się to przedstawia.

Bio: Programista pasjonat. Za sprawą konkursu "Daj Się Poznać" świeżo upieczony blogger oraz podcaster. Uwielbia poznawać nowe, ciekawe technologie i nie boi się używać ich w swoich projektach. Fan TypeScript oraz frameworku Aurelia. Entuzjasta DDD, CQRS i Event Sourcingu. Na co dzień pracuje jako Full Stack Developer w firmie Connectis_.

Wstęp wolny, zapraszamy!

1-10 of 65