Apart from regular work, I go to a lot of conferences, meetings, hackathons, and alike, for inspiration and knowledge. At some point I started giving talks and leading workshops myself. Each talk requires a lot of research, so it helps me to get better, while helping others as well. Pure win-win situation.
So far I’ve given 136 talks. Not bad for a hobby. Below you will find some of them.
Migrate your company to microservices: a step by step tutorial
I’ve worked with microservices for 9 years now, and I’ve migrated systems from monoliths / distributed monoliths to microservices. Companies call me to help them in this process, and I kind of worked my “standard” way of how to do this. In this talk, I’d like to show you step by step what I do when I help companies moving into microservices.
This talk is not about how to design microservices per se (I’ve already talked about it a lot, and I give workshops on that) but what exactly I do in the process, and what you should not forget about. So it’s everything apart from architecture itself.
I’ll talk about:
- how (much) to design the initial architecture
- how to build an easy to use tailored service template
- what you need in pipelines
- how to test the system
- what security changes are required
- how to teach observability
- how to introduce product teams and a culture to get the most of microservices (and what happens if you don’t).
Of course every company is a bit different and this is not the only way to do it, but if I show you what it usually means for me perhaps you will find something you didn’t take into account in your process, if you are ever in such a situation. And if you are currently working with monolith (distributed or not), this may be really useful.
Why nobody sane builds a large monolithic system today
There are architects that suggest starting every system with a monolith.
That is a harmful suggestion, you need to understand what microservices and monoliths require, why microservices were invented and what problems they solve.
After working for 12 years with monolithic systems and 8 years with microservices I’d like to give you some insight into when to use microservices, and when it’s pointless.
In addition I’ll talk about:
- why for 38 years companies struggled to build large systems, and why Fred Brooks can finally rest in peace
- how Ken Thompson and Dennis Ritche easily solved the problem which costed IBM millions of dollars
- why developers get insane and burn out, and why the next generation will be much healthier
- why for some companies building large systems is easy, and gets easier every month. It also does not require any pain or blood spilled
- why your company is getting on your nerves and why your manager struggles with the concept of autonomous teams
- what are the PREREQUISITES for a company to benefit from microservices
- simple heuristics when to build which kind of the system
How to NOT get insane when working for 20 years as a dev - personal mental health tricks.
I’ve been designing and building software for the last 20 years, and in that time I’ve lost a lot of friends due to burnout and depression. A lot of others have moved to management, become POs, Scrum Masters or full-time celebrities. When talking with them most say that writing software became too difficult for them. Which is strange, because from my perspective, programming is much easier than 20 years ago.
I’m not a psychologist, I have no proper education or skills to help you out, but I’ve survived 20 years, and I’m no more insane than I was back then, so maybe I can tell you what have helped me survive, and be even more happy in a software dev job. If it helps one person not become a manager, I’ll consider my job done.
Video@Confitura, Slides@Confitura
Best practices in practice: things that work for me so well I cannot believe you are not using them
There’s a lot of “best practices” around, but after 19 years of work I’ve found a set that really helps get my systems done well. I’d like to share those tools and methods and why they work in my context. While they are not a novelty (some of them have years of history), I see even experienced developers ignoring them. These include: how to use BDD to work with requirements, using a scientific method to fix problems in production (as opposed to shotgun debugging), verifying observability during development (before going to production), making the most interesting parts visible via higher order functions, and more. Nothing groundbreaking, but perhaps those will also work in your context.
Slides@Confitura, Slides@DevTernity
What I wish I knew when I started designing systems years ago
I started designing systems (also known as: architecture) 18 years ago. I’m not very smart, so I’ve made a lot of mistakes on the way. Surprisingly it turned out these are quite common. I’d like to share a few things I’ve learned that would save me a lot of tears, had I known better back then. I’ll talk about communication styles, modularity, SLA, invariants and events, choreography vs orchestration, single point of truth vs data ownership, products vs projects.
This talk is for people starting with software architecture.
Slides, Video@DevoxxPL, Video@JDD, Video@Developers World Academy, Video@Silesia JUG
With a little help from my friends: architecture in a group of anarchists
So if you already have an Architecture Guild (see “Common mistakes” talk), how do you actually grow your soft skills? As a nerd. Lots of books and thoughts on that matter.
Common mistakes when moving to microservices
Since I help enterprises move to microservice based architecture, I’ve noticed some common mistakes and I’ve learned how to fix them
Slides, Video@GeeconPrague, Video@Confitura, Video@SegFault, Video@KJUG, Video@DevTernity, Video@JDD, Video@JSanta, Video@DevOpsProE, Video@4Developers
Improving your Test Driven Development in 45 minutes
I use TDD since 2005, and I’ve been teaching BDD/TDD for several years now, so I have a few tricks I can share
Slides, Video@DevoxxPL, Video@Greenfield, Video@GeeCon, Video@JeeConf
Keep IT clean, mid-sized building blocks and hexagonal architecture
On Java package-scope visibility, hexagonal architecture (ports&adapters) and modularity
Slides, Video@IstanbulTTVideo@Confitura, Video@AJLabs, Video@TorunJUG, Video@SilesiaJUG
Peer-2-Peer Salary Review
A case study for a how I solved the problem of setting up salaries for an IT department
Article, Video@WJUG, Video@AceConference, Video@DevTernity, Video@ABE15
User Stories considered harmful
Why Product Owners and Developers failed at gathering requirements and communication. The lost art of analysis and testing scenarios. A talk about gathering requirements, use cases, behavioural acceptance scenarios and TDD/BDD
Slides, Video@DevoxxPL, Video@WJUG, Video@AgileByExample, Video@ITT2018
Requirements & BDD: The lost art of analysis and acceptance scenarios
A different take on “User Stories considered harmful”
Test Driven Traps
In 2012 I gave the first summary of errors with TDD/BDD (having 7 years of experience at that point). For an up-to-date version see the “Improving your Test Driven Development” talk.
Creating a knowledge-sharing culture
Because your really need it
Conway’s revenge: How ignoring org setup backfires in architecture, and vice versa
Video@BydgoszczJUG, Video@DevTernity, Video@GDoC
eXtreme Programming for beginners
Activity log
Here I keep a list of events and activities, to keep me motivated and remind me, I actually had some social life apart from software development.
2024
Migrate your company to microservices: a step by step tutorial - Given at 4Developers, Geecon, IT-Konekt, javeloper
CodingFestival
2023
Why nobody sane builds a large monolithic system today - Given at DDD-Warsaw
What I wish I knew when I started designing systems years ago - Given at CodingFestival
Best practices in practice: things that work for me so well I cannot believe you are not using them - Given at Craft-IT Rzeszów, I love dev in Warsaw, MS Tech Summit, Warsaw Java User Group, 4Developers
Hexagonal architecture interview - at Better Software Design
2022
How to NOT get insane when working for 20 years as a dev - personal mental health tricks. - Given at Confitura
Refactoring from monolith to microservices - Nerguru, Asseco
Malevolent Architect: only bad decisions - Closing keynote at Geecon
Developer w świecie mikroserwisów: W co warto pakować swój czas, by mieć aktualny skillset - at Warszawskie Dni Informatyki
What I wish I knew when I started designing systems years ago - Given at Devflix
2021
What I wish I knew when I started designing systems years ago - at JDD, Devternity, 4Developers, Warszawskie Dni Informatyki, Bydgoszcz JUG
2020
With a little help from my friends: architecture in a group of anarchists - Given at Orange Atom Dev Days, Infobip DevDays
Common mistakes when moving to Microservices, 2 years later - Given at SegFault Online, Kielce JUG, DevOps Pro Europe, 4Developers Online, V Project Management Forum
2019
Common mistakes when moving to microservices - Given at Geecon Prague, DevTernity in Riga, Confitura in Warsaw, JDD in Krakow, J-Santa in Lublin, Motorola in Krakow, Devternity conference in Riga
Hexagonal Architecture in practice - Given at Istanbul Tech Talks
Requirements & BDD: The lost art of analysis and acceptance scenarios - Given at Confitura in Warsaw
Improving your Test Driven Development in 45 minutes - Given at Devoxx Marocco,Grienfield Conf in Zielona góra, GeeCON in Krakow, Sonalake in Poznan
User Stories considered harmful - Given at Istanbul Tech Talks
2018
Requirements & BDD: The lost art of analysis and acceptance scenarios - Given at Programistok conference in Bialystok
Improving your Test Driven Development in 45 minutes - Given at Geecon conference in Krakow, at Wroclaw Java User Group, at Devoxx conference in Krakow, at Confitura conference in Warsaw, at JCConf in Taiwan, at ByteMyCode conference in Wroclaw, and at Devternity conference in Riga, at Orange in Warsaw
User Stories considered harmful - Given at Devoxx conference in Krakow, and at Agile Warsaw
Keep IT clean - Given at the Faculty of Mathematics and Information Science of Warsaw University of Technology during Warszawskie Dni Informatyki, at jSession (Java User Group in Białystok), at Silesian Java User Group, and at C-tech group meeting in Warsaw
Once again, I was in the Program Committee of DEVOXX PL responsible for the Architecture track
2017
Shit in, shit out - A revised and extended version of my previous talk User Stories considered harmful given at ALE Krakow
User Stories considered harmful - Given at Agile by Example 2017 conference in Warsaw
Creating a knowledge-sharing culture - Given at Agile Silesia in Katowice (slides)
Conway’s revenge: How ignoring org setup backfires in architecture, and vice versa - Given at Bydgoszcz Java User Group
Spring introduction - A lecture given at the Warsaw University of Technology.
Keep IT clean - Given at Confitura conference in Warsaw, at Warsaw Java User Group, at Software Architecture & Design Debate in Warsaw, at Allegro Tech Talks in Poznan, at the Faculty of Physics, Astronomy and Applied Computer Science of Jagiellonian University (itakademia), at 4Developers conference in Warsaw, at JDD conference in Cracow, and at Devternity conference in Riga
I mentored a young graduate for 5 months as part of the Tech Leaders programme for Women In Technology
Once again, I was in the Program Committee of DEVOXX PL
2016
Peer-2-Peer Salary Review - Given at Devternity in Riga
Creating a knowledge-sharing culture - Given at Agile By Example 2016 conference in Warsaw
Keep IT clean - Given at JUGtoberfest in Łódź and at Torun Java User Group
Peer-2-Peer Salary Review - Given at Warsaw Java User Group, ACEconf in Cracow and CybercomDev in Łódź
Spring introduction - A lecture given at the Warsaw University of Technology.
Conway’s revenge: How ignoring org setup backfires in architecture, and vice versa - Given at Kiev DevOps Day conference
Once again, I was in the Program Committee of DEVOXX PL one of the biggest Java conferences in central Europe, helping choose speakers and talks for all tracks
I was mentoring two Spring Framework project groups at Warsaw University of Technology
I helped to organize Gr8day Warsaw, a conference on all things Groovy
2015
Conway’s revenge: How ignoring org setup backfires in architecture, and vice versa - Given at Devternity craftsmanship conference in Riga
Game of throneware, or how not to get killed when a developer becomes a manager - Given at PGS Software Talks in Gdańsk
Peer-to-peer salary review in a corpo: a case study - Given at the Agile By Example conference; I was one of the panelists at the Product Owner discussion panel there
Conway’s revenge: How ignoring org setup backfires in architecture, and vice versa - Given at bycraft.by craftsmanship conference in Minsk
Test Driven Traps - Given at Geecon TDD in Poznań
Game of throneware, or how not to get killed when a developer becomes a manager - Given talk at Latvian Software Craftsmen group in Riga
I helped organize Agile Development Day during Global day of coderetreat, mentored developers on TDD, and gave the opening presentation
I led a Spring Cloud & Boot workshop (3h) at Codepot.pl conference in Warsaw
I helped shape the agenda of JDD Conference in Cracow as part of the program committee
I was in the program committee for DEVOXX PL, one of the biggest Java conferences in central Europe
2014
eXtreme Programming for beginners - Givem at AgileByExample conference in Warsaw
Game of throneware, or how not to get killed when a developer becomes a manager - Given at jPiknik in Warsaw, at JDD conference in Cracow and JUGtoberfest event organized by Java User Group Łódź
Spring framework - A lecture given at JInkubator in Warsaw Video
Spring Data JPA - An open workshop at Spring Labs in Warsaw
Spring Security - An open Workshop at Warsaw Spring Labs in Warsaw
Together with my collegues, I organized microhackaton, a hackathon about microservices
Together with Tomasz Szymański and Marcin Grzejszczak, I’ve created Warsaw Groovy User Group, with regular meetings.
2013
Gitkata - I lead 4 workshops about git, during a full day mini conference Gitkata 2 and 5 during Gitkata
Test Driven Development for beginners - A workshop at Agile by Example conference in Warsaw
Test Driven Traps - Given at Confitura conference in Warsaw, 33rd Degree for charity conference in Krakow, Poznań Java User Group, and Trójmiasto Java User Group
Apocomito, or what problems DDD, CQRS, NoSQL and microservices solved for me - Given at j.Piknik in Warsaw
Test Driven Development - I lead a workshop a full day mini conference Testkata in Warsaw
MongoDB - Given at Warsaw Java User Group Video
QA in the day of Test Driven Development - Given talk at Kariera Testera
Job interviews in Software Development - Given at Warsaw Java User Group, together with Jakub Kubryński, and Tomasz Szymański
NameCollison Opening talk - Given at NameCollison Hackathon
Spock - A flashtalk at Warsaw Java User Group
I wrote a chapter The Root of All Evil for Tomek Kaczanowski’s book Bad Tests, Good Tests (you can download digital copy for free here)
Together with Piotr Jagielski, I wrote a small book about Spring Security framework, and got it published.
Together with six other guys, I became an organizer of Warsaw Java User Group meetings. We were responsible for keeping our regular lectures interesting, and a few mundane tasks, like the web page, sponsors and so on.
2012
Test Driven Traps - Given at Topconf conference in Tallinn
Don’t write in Java. You know better languages even if you’re not aware of it yet - Given at Confitura conference, with Tomasz Przybysz
Beautiful failures, when good things go bad, a few case studies - Given at a Birds of Feather session at 33rd Degree Conference in Krakow and at Agile Warsaw group (slides)
I wrote an article for Methods & Tools, titled Test Driven Development Traps
I got invited to the Program Committee of 4developers conference, where I helped a bit finding interesting speakers and choosing talks from Call For Papers
2011
Winter go home, a gentle introduction to Spring Framework - Given at Warsaw Java User Group
Teamwork in software development - A lecture for students at Faculty of Mathematics, Informatics and Mechanics, University of Warsaw
Hack your company: what a developer can do, to get fun and money from learning - A Birds of Feather session at 33rd Degree Conference in Krakow
Spring Security & Spring Social: how to integrate Google and Facebook in a Java web application - Given at Warsaw Java User Group
Animating Developers - Given at Agile Warsaw group
I was a trainer and organizer of Agile Development Day, one day open meeting for those who want to share their experience with Agile methods
2010
Software Craftsmanship - A workshops at Warsaw Design Patterns Study Group, and a talk at Warsaw Java User Group
How to prevent code biodegradation - Given at Javarsovia conference in Warsaw
I led a panel about team building and quality at COOLuary (unconference part of NYAC conference) in Krakow