Prelekcje

Kocham to co robię i uwielbiam o tym opowiadać. O czym opowiadam? Pełną listę moich prezentacji, czasem również z dodatkowymi materiałami, znajdziesz poniżej. A jeśli bardzo się spieszysz i chcesz tylko slajdy, to najprawdopodobniej znajdziesz je tutaj.

A gdy przescrollujesz jeszcze dalej (lub klikniesz w link), możesz przyjrzeć się kalendarzowi moich przeszłych i planowanych wystąpień.

A może chcesz zaprosić mnie na konferencję, meetup lub inne wydarzenie? Odezwij się a na pewno dogadamy jakiś termin.


Sesje

(Coming soon) Messaging services in Azure

Azure Service Bus, Event Hub, Event Grid czy zwykły Azue Queue? Wśród usług pozwalających na wymianę różnego rodzaju komunikatów w Azure mamy w czym wybierać. Problem pojawia się wtedy, gdy chcemy dokonać właściwego wyboru, by rozwiązać nasze problemy.
Na tej prezentacji omówię różnicę między tymi usługami, problemy jakie rozwiązują i najlepsze ich zastosowania. Postaram się w 45 minut przekazać Ci wiedzę niezbędną do zdecydowania się na jedną lub kilka z nich oraz zbudowania sensownej architektury o nie opartej.

(Coming soon) Everything you should know about SSL and were to afraid to ask.

HTTPS = bezpieczeństwo. Czy na pewno? Do takiego stwierdzenia bywamy czasem przyzwyczajani i akcpetujemy ten ogromny skrót myślowy jako faktyczny stan rzeczy. Okazuje się jednak, że sporo osób gdy zacznie się zastanawiać jak naprawdę działa HTTPS i co się kryje za certyfikatem SSL, dochodzi do wniosku, że albo tego jest tak niewiele, albo przydałoby się dowiedzieć na ten temat odrobinę więcej.
Zacznę od pokazania Ci jak poprawnie wymusić HTTPSa w przeglądarce, poprowadzę Cię krok po kroku przez to co certyfikat SSL robi z ruchem sieciowym, opowiem Ci o tym jaki certyfikat możesz kupić i na jaki się zdecydować, a skończę na tym, kiedy możesz go sobie z czystym sumieniem odpuścić.

(Coming soon) Asp.NET Core Web API security essentials

Od jakiegoś czasu nie było chyba miesiąca, by jakieś dane nie wyciekły, a już na pewno nie było tygodnia, by ktoś nie znalazł jakiejś luki. Nie mogę Ci obiecać, że po tej prezentacji, Twój system nigdy nie padnie ofiarą ataku, ale z pewnością łatwiej będzie Ci się zabezpieczyć przed najpopularniejszymi wektorami ataku.
Wspólnie przejrzymy wydaną w 2019 roku listę “API Security Top 10 2019” oraz kilka punktów standardu ASVS i przyjrzymy się czy API w naszym ulubionym .NET Core jest stosunkowo bezpieczne oraz czego nie robić, by w takim stanie pozostało.

(Coming soon) Great Web APIs – learn how to make one in 45 minutes(or so)

Strzelam, i najprawdopodobniej trafię, że zdarzyło Ci się kiedyś pisać lub używać jakiegoś webowego API. Istnieje spora szansa, że zdarzyło Ci się zderzyć z czymś z czego korzystanie było na tyle nieintuicyjne, że wymagało kilkugodzinnej lektury dokumentacji, która oczywiście nie istniała lub była grubo przeterminowana.
Podczas tej 45 minutowej prezentacji opowiem o różnych sposobach na design Web API, problemach na które warto zwrócić uwagę i kiedy w ogóle warto poświęcić czas na dopieszczanie naszego API. Po wyjściu z sali(przy założeniu, że będziesz słuchać) będzie Ci o wiele łatwiej podjąć decyzje dotyczące tej jakże ważnej części Twojej aplikacji, a korzystając z endpointów, które wystawisz – użytkownicy nie będą wyrywać sobie włosów z głowy krzyczac “niech to dunder świśnie” lub krótszych odpowiedników uznawanych za nieco bardziej wulgarne.

DevSecOps – security all the way

Coraz bardziej zależy nam na przyspieszeniu developmentu i wypracowaniu procesów, które pozwolą nam dostarczyć gotowe rozwiązanie szybciej i sprawniej, zachowując przy tym wysoką jakość. Podejście DevSecOps niejako rozszerza DevOps stawiając nacisk na bezpieczeństwo. Po jego wdrożeniu w swojej organizacji nie zaskoczy Cię audyt i będziesz mieć pewność, że Twoja aplikacja spełnia wszystkie wymagania dotyczące bezpieczeństwa na każym etapie życia projektu. Na prezentacji powiem Ci czym jest DevSecOps, jak można wdrożyć jego praktyki do codziennej pracy, jakich narzędzi użyć do zwiększenia bezpieczeństwa aplikacji i co najważniejsze – po co w ogóle się tym zajmować. Wszystko to przy wykorzystaniu ogólnie dostępnych narzędzi i w chmurze.

Anchor Modeling – maintain highly normalized data model that can be changed anytime

Pierwsza, druga i trzecia postać normalna w bazach danych zapewne obiła Ci się o uszy. A co powiesz o szóstej?
Pokażę Ci jak wykorzystać bardzo wysoki poziom normalizacji do modelowania danych tak, by schema mogła być rozwijana i zmieniana w dowolnej chwili bez wpływu na istniejące aplikacje korzystające z Twoich danych za pomocą techniki znanej jako Anchor Modeling.
Ten sposób modelowania zahacza mocno o świat hurtowni danych i wymaga sporo dyscypliny, bywa jednak, że jego wykorzystanie rozwiązuje sporo problemów, a sam proces nie jest wcale taki trudny jak może Ci się wydawać.
Na tej prezentacji dowiesz się czym jest szósta postać normalna i jak Anchor Modeling wykorzystuje ją by pomóc tworzyć modele iteracyjnie, a przy tym nie wpaść w jakieś większe dołki wydajności.

Large scale, distributed and reliable messaging with Kafka

Messaging w naszych aplikacjach nie pojawia się zawsze, jednak kiedy mowa o rozproszonych systemach, CQRSach, zdarzeniach czy ogromnych ilościach danych z czujników, to często będziemy mieli z nim do czynienia. Problemów, które wymagają rozwiązań tego typu jest mnóstwo. Narzędzi do ich rozwiązania jest nieco mniej, ale również sporo.
Jednym z takich narzędzi jest Kafka. Podczas prezentacji pokażę Ci jakie możliwości daje, jak szybko zacząć z niej korzystać i wspólnie zastanowimy się nad tym czy jest lekiem na całe zło w Twoim projekcie. Pomyślimy też kiedy inne rozwiązania nie dają rady, a kiedy Kafka będzie overkillem.

Shit happens – achieve extensibility, modularity and loosely coupled architecture with events

Architektura oparta o zdarzenia nie jest niczym nowym. Już od wielu lat pozwala nam zmniejszyć powiązania między poszczególnymi modułami naszych aplikacji, a najwięksi chwalą się, że dzięki zdarzeniom i mikroserwisom są w stanie szybko i sprawnie skalować swoje aplikacje w reakcji na zwiększone obciążenie.
W swojej prezentacji przedstawię kilka różnych przykładów, które pokażą Ci potęgę i użyteczność zdarzeń. Zaczniemy od najprostszych możliwych zdarzeń w monolicie, przejdziemy przez ich zastosowanie w architekturze mikroserwisowej, aż po kilka sztuczek, które przy wykorzystaniu pewnych usług w chmurze pozwolą Ci na zdefiniowanie zdarzenia i uruchomienie odpowiedniego procesu biznesowego bez najmniejszej nawet ingerencji w istniejącym kodzie lub infrastrukturze.

Essential Security Measures in Web Applications

Mamy XXI wiek. Praktycznie wszystko w naszych codziennych życiach opiera się o przechowywane gdzieś i przetwarzane w jakiś sposób dane.
Jednocześnie nie mogę sobie przypomnieć tygodnia żeby coś nie wyciekło, ktoś się gdzieś nie włamał albo bezpieczeństwo tych lub innych danych nie zostało naruszone w inny sposób.
Żyjemy z tworzenia aplikacji i siłą rzeczy w dużej mierze to my powinniśmy dołożyć jak największych starań, by owoce naszej pracy były bezpieczne, a przynajmniej nie były banalnie łatwe do złamania.
Podczas tej prezentacji opowiem Ci trochę o podstawach bezpieczeństwa aplikacji, najpopularniejszych podatnościach i sposobach na pozbycie się ich ze swojego kodu.
Postaram się, by czas, który wspólnie spędzimy zaowocował Twoją większą świadomością i dbałością o bezpieczeństwo efektów Twojej codziennej pracy.

Azure SQL – more or/and less than SQL Server

Usługa o pełnej nazwie Microsoft Azure SQL Database jest bazą relacyjną udostępnioną nam w modelu PaaS przez Microsoft w swojej chmurze. Wiele osób oczekuje, że jest to przeniesiony do chmury jeden do jednego SQL Server, w którym po prostu nie musimy się martwić różnymi “pierdołami” charakterystycznymi dla IaaS czy OnPremów. Rzeczywistość jest jednak nieco inna i okazuje się, że są to dwa oddzielne produkty o pewnych cechach charakterystycznych, które mogą Ci się spodobać lub nie.
Podczas tej prezentacji opowiem Ci nieco o Azure SQLu, o różnicach między nim, a SQLem postawionym na VMce czy własnych fizycznych maszynach, o przewagach bazy danych w modelu PaaS nad tradycyjnym oraz o elementach silnika, za którymi Twój DBA może zatęsknić. Mam nadzieję, że po wspólnie spędzonych trzech kwadransach będziesz w stanie odpowiedzieć sobie na pytanie – “Czy Azure SQL jest dobrym rozwiązaniem dla mnie i/lub mojego klienta?”.

Internet is made of cats, porn and stuff you shouldn’t put there.

Lubisz gdy ktoś Cię obserwuje? A może marzy Ci się główna rola w amatorskim filmie porno? Może udostępnij wszystkim kamerę we własnym mieszkaniu.
Uważasz, że nawiedzone domy są fajne i zastanawiasz się jakie to uczucie mieszkać w czymś takim? Najlepszym pomysłem będzie wyłączenie uwierzytelniania w systemie automatyki domowej.
A może urządzenia Twojego klienta potrzebują zaawansowanego panelu sterowania, który będzie dostępny zdalnie? Może nie zabezpieczajmy go hasłem, bo kto niby będzie je pamiętał, a przecież i tak nikt nie wie jak się do niego podłączyć.
Od jakiegoś czasu eksploruję niezabezpieczone i widoczne publicznie urządzenia ze zdalnym dostępem do podglądu z kamer i rozmaitymi panelami do sterowania. Podzielę się z Wami kilkoma znaleziskami, które znalazłem ja lub inny użytkownicy. Niektóre z nich są zabawne, niektóre przerażające, wszystkie są lub były dostępne publicznie.


ORM – the tip of an iceberg.

Chyba już w każdym języku programowania możemy dobierać się do naszych cennych danych za pomocą różnego rodzaju ORMów. Faktem jest, że narzędzia te znacznie przyśpieszają wytwarzanie oprogramowania. Jednocześnie pozwalają na myślenie o zawartości naszych baz danych i operacjach na nich przez pryzmat obiektowego paradygmatu programowania, co jest o wiele łatwiejsze do przełknięcia dla osób początkujących.
ORMy mają mnóstwo zalet. Często jednak idziemy na łatwiznę i nie schodzimy do warstwy bazy danych jeśli nie jest to absolutnie koniecznie, a nawet jeżeli przyjdzie co do czego, to tylko szturchamy ją odpowiednio długim kijem z bezpiecznej odległości i uciekamy czym prędzej do ciepłego, bezpiecznego światka programowania obietowego.
Na tej sesji pokażę Wam, kilka różnych funkcji i ciekawostek, które oferuje nam baza danych SQL Server, a które są często pomijane przez ich brak w popularnych ORMach. Pokażę Wam również jak stosunkowo łatwo można skorzystać z części z nich w starym dobrym Entity Frameworku.


Meet Gremlin – your guide through graphs in Cosmos DB

Czy jest ktokolwiek, kto choć raz w życiu nie zastanawiał się czy jesteśmy sami w kosmosie? Niestety nie odpowiem Wam na to pytanie. Ale jeśli przyjdzie Wam kiedyś do głowy przemierzać obszerne grafy w jednym z dostępnym modeli Cosmos DB, to przyda Wam się ktoś, kto niczym burza mknie między między danymi nie zważając na nawet najbardziej skomplikowane i poplątane relacje między danymi.
Dlatego też przedstawię Wam Gremlina, API przeznaczone specjalnie do przemierzania i przeszukiwania danych przechowywanych w formie rozbudowanych grafów z mnóstwem wzajemnych powiązań.


Azure Front Door

Do tej sesji nie mam opisu, jest to krótkie 30-40 minutowe omówienie stosunkowo świeżej usługi w Azure.


Let’s kill JavaScript!

JS jaki jest każdy widzi. Jedni go kochają, inni go nienawidzą. Daleko mi do front-endowca, więc gdy nie mam pod ręką silnego typowania to zaczynam dygotać i majaczyć. Ale czasem jednak trzeba jakiś widoczek wyklepać.
Ale zaraz – mamy przecież WebAssembly i od niedawna w moim ukochanym .NET dzięki eksperymentalnemu frameworkowi Blazor. Ha! No to NaN Ci w undefined ECMAScripcie! Od teraz wszyscy będą robić front bez znienawidzonego JSa!
Czy rzeczywistość wygląda tak różowo? Czy to marzenia które mają prawo spełnić się jedynie w pijackim widzie? Przyjdź, posłuchaj i poznaj odpowiedzi na te pytania.


.NET, Alexa and me

W dzieciństwie uwielbiałem science fiction. Wciąż pamiętam niektóre z mniej lub bardziej futurystycznych wizji przyszłości – komputery w każdym domu, a nawet mieszczące się w kieszeni, roboty czy domy sterowane naszym głosem. Wtedy niektóre z tych rzeczy wydawały się nierealne.
Jakieś dwadzieścia lat później stanąłem przed wyborem wirtualnego asystenta do swojego domu i miałem całkiem spory wybór. Jako, że na co dzień piszę w .NET i jestem miłośnikiem chmury, mój wybór padł na Amazon Echo. Podstawą tej platformy jest AWS Lambda, a jednym z języków jakimi możemy się posługiwać w celu rozszerzania umiejętności Alexy jest C#.
Opowiem Wam o tym dlaczego dokonałem takiego, a nie innego wyboru i jakie miałem alternatywy. Pokażę Wam również jak stosunkowo szybko możemy tworzyć własne, proste rozwiązania na tę platformę bez ponoszenia żadnych kosztów. Następnie przejdziemy do rozbudowy naszych rozwiązań, porozmawiamy nieco o możliwości wyjścia z nimi poza chmurę Amazonu i integracji z istniejącymi aplikacjami. Sesję zakończymy opisem modelu biznesowego i możliwości dla osób chcących pisać rozwiązania tylko dla siebie, dla szerszej publiki oraz dla swoich klientów.


Essential security measures in ASP.NET MVC

Na jak długo możesz spuścić z oka kartę płatniczą, będącą w rękach obcej osoby? Kto może i powinien znać hasło do Twojego maila? Czy po kradzieży Twojego laptopa bałbyś się o informacje, które mógłby z niego wyciągnąć złodziej?
I najważniejsze pytanie – czy powierzyłbyś bezpieczeństwo swoich danych aplikacjom, które tworzysz?
W dzisiejszych czasach coraz częściej musimy korzystać z odpowiednio skomplikowanych haseł, tokenów i innych środków ostrożności. Coraz częściej musimy zadawać takie pytania jak powyżej.
Skoro więc taką uwagę przykładamy do własnych danych i prywatności, to dlaczego jako deweloperzy często pomijamy kwestie bezpieczeństwa pisząc kod? Skąd tyle różnych luk w zabezpieczeniach i czy deweloper w ogóle powinien zaprzątać sobie nimi głowę? Jeśli tworzymy rozwiązanie operujace na danych klienta, to musimy liczyć się z tym, że często są one warte ogromne kwoty.
Nie da się zostać ekspertem security w godzinę. Jednak przekażę Ci trochę informacji, które sprawią, że bez większych problemów będziesz w stanie załatać najpopularniejsze luki w zabezpieczeniach swojej aplikacji (OWASP + kilka innych), a audyt bezpieczeństwa u klienta nie będzie się u Ciebie odbijał siwizną i nieprzespanymi nocami.
Po czym poznać, że ten materiał jest dla Ciebie? Jeśli wydaje Ci się, że SSL jest bezpieczny sam z siebie. Jeśli nigdy nie zdarzyło Ci się myśleć o bezpieczeństwie aplikacji, bo przecież .NET jest bezpieczny out of the box. Jeśli pierwszy raz słyszysz o czymś takim jak OWASP. Lub jeśli najzwyczajniej w świecie nie masz pewności, że to co tworzysz odpowiednio dba o bezpieczeństwo danych Twoich klientów.


Kalendarz wystąpień

Planowane wystąpienia:

Wystąpiłem:

  • 20 V 2020 – 4 Developers Online – Great Web APIs – learn how to make one in 45 minutes (or so)
  • 29 IV 2020 – C_Tech – DevSecOps – Essential Security Measures in Web Applications
  • 20 II 2020 – Olsztyn Microsoft User Group – DevSecOps – Security all the way
  • 5 II 2020 – Microsoft Azure User Group Poland w Białymstoku – DevSecOps – Security all the way
  • 15 I 2020 – Białostocka Grupa .NET – DevSecOps – Security all the way
  • 4 XII 2019 – Microsoft Azure User Group Poland w Białymstoku – Microsoft Certification 101. Where? When? How? Why?
  • 26 XI 2019 – Mobile Białystok – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 19 XI 2019 – Białystok Ruby User Group – DevSecOps – Security all the way
  • 18 XI 2019 – 4 Developers Poznań – ORM – the tip of an iceberg
  • 7 XI 2019 – Expert Summit – DevSecOps – Security all the way
  • 5 XI 2019 – 4 Developers Wrocław – ORM – the tip of an iceberg
  • 26 X 2019 – DevForge Białystok – Large scale, distributed and reliable messaging with Kafka
  • 1 X 2019 – 4 Developers Kraków – ORM – the tip of an iceberg
  • 20 IX 2019 – Bydgoszcz IT Conference 2019 – Anchor Modeling – maintain highly normalized data model that can be changed anytime
  • 17 IX 2019 – Wrocławska Grupa .NET – Anchor Modeling – maintain highly normalized data model that can be changed anytime
  • 4 IX 2019 – Microsoft Azure User Group Poland w Białymstoku – Essential Security Measures in Web Applications
  • 17 VIII 2019 – dynamIT – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 17 VII 2019 – Białostocka Grupa .NET – Large scale, distributed and reliable messaging with Kafka
  • 19 VI 2019 – Białostocka Grupa .NET – Shit happens – achieve extensibility, modularity and loosely coupled architecture with events
  • 12 VI 2019– Microsoft User Group Poland w Warszawie – Meet Gremlin – your guide through graphs in Cosmos DB
  • 5 VI 2019 – Microsoft User Group Poland w Białymstoku – Shit happens – achieve extensibility, modularity and loosely coupled architecture with events
  • 29 V 2019 – Meet.JS – Essential Security Measures in Web Applications
  • 27 IV 2019 – Global Azure Bootcamp Łódź – Azure SQL – more or/and less than SQL Server
  • 8 IV 2019 – 4 Developers Warszawa – Azure SQL – more or/and less than SQL Server
  • 27 II 2019 – C_Tech Warszawa – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 2 II 2019 – Microsoft User Group Poland w Białymstoku – Azure SQL – more or/and less than SQL Server
  • 24 XI 2018 – HackYeah – ORM – the tip of an iceberg
  • 21 XI 2018 – Białostocka Grupa .NET – Let’s kill Java Script!
  • 15 XI 2018 – Olsztyn Microsoft User Group – ORM – the tip of an iceberg
  • 7 XI 2018 – Microsoft User Group Poland w Białymstoku – Azure Front Door
  • 26 IX 2018 – C_Tech Warszawa – ORM – the tip of an iceberg
  • 13 IX 2018 – Śląska Grupa Microsoft – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 5 IX 2018 – Microsoft User Group Poland w Białymstoku – Meet Gremlin – your guide through graphs in Cosmos DB
  • 18 VII 2018 – Białostocka Grupa .NET – Internet is made of cats, porn and stuff you shouldn’t put there.
  • 5 VI 2018 – Dni Wydziału Informatyki Politechniki Białostockiej – ORM – the tip of an iceberg
  • 16 V 2018 – Białostocka Grupa .NET – .NET, Alexa and me
  • 15 V 2018  – Wrocławska Grupa .NET – .NET, Alexa and me
  • 18 IV 2018 – Białostocka Grupa .NET – ORM – the tip of an iceberg
  • 9 IV 2018 – 4 Developers Warszawa  – ORM – the tip of an iceberg
  • 25 X 2017 – Microsoft User Group Poland w Białymstoku – Meet Gremlin – your guide through graphs in Cosmos DB
  • 20 IX 2017 – Białostocka Grupa .NET – Quick trip around the Cosmos – Things every astronaut supposed to know
  • 8 VI 2017 – Dni Wydziału Informatyki Politechniki Białostockiej – LINQ – don’t hurt yourself, it’s #
  • 15 III 2017 – Białostocka Grupa .NET – LINQ – don’t hurt yourself, it’s  #
  • 7 XII 2016 – IT Academic Days Białystok – SignalR – R is for realtime
  • 19 X 2016 – Białostocka Grupa .NET – SignalR – R is for realtime
  • 6 X 2016 – Meet.JS Białystok – SignalR – R is for realtime
  • 18 VI 2016 – Gala Finałowa Daj Się Poznać 2016 – SignalR – R is for realtime