{"id":16514080,"url":"https://github.com/rieckpil/talks","last_synced_at":"2025-07-17T12:34:43.452Z","repository":{"id":37042537,"uuid":"485230137","full_name":"rieckpil/talks","owner":"rieckpil","description":"🎤 Source Code Reference for Various Conference Talks","archived":false,"fork":false,"pushed_at":"2025-05-20T17:08:05.000Z","size":78416,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-04T17:17:40.161Z","etag":null,"topics":["aws","java","springboot","talks","testing","testing-tools"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rieckpil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-04-25T05:06:34.000Z","updated_at":"2025-05-20T22:54:06.000Z","dependencies_parsed_at":"2024-05-28T09:36:36.777Z","dependency_job_id":"486860e7-f30c-4315-a320-c5bc01d78732","html_url":"https://github.com/rieckpil/talks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rieckpil/talks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Ftalks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Ftalks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Ftalks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Ftalks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rieckpil","download_url":"https://codeload.github.com/rieckpil/talks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Ftalks/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265606646,"owners_count":23796978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","java","springboot","talks","testing","testing-tools"],"created_at":"2024-10-11T16:11:21.755Z","updated_at":"2025-07-17T12:34:43.432Z","avatar_url":"https://github.com/rieckpil.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Conference Talks 🎤\n\n**Speaker description (Philip Riecks - Founder PragmaTech Digital Solutions)**: Philip is enabling developers to frequently deliver software with more confidence through actionable tech content and hands-on consulting.\n\nHe's an indie hacker, frequent Southeast Asia traveler, squash player, padel newbie, and enjoys jogging in nature.\n\nLinks:\n- [Blog](https://rieckpil.de)\n- [Twitter](https://twitter.com/rieckpil)\n- Speaker Image Reference: [400x400](/resources/rieckpil-400x400.jpg) or [200x257](/resources/rieckpil-200x257.jpg)\n\n## Hands-On\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/rieckpil/talks)\n\nCreate a new development environment via [GitHub Codespaces](https://codespaces.new/rieckpil/talksg). Choose a _Region_ close to where you live and select at least a 4-core machine (8-core would be better). GitHub will automatically open the development environment in a Visual Studio Code instance in your web browser.\n\nDon't forget to [shut down the codespace](https://github.com/codespaces) afterward to avoid costs (check your usage [here](https://github.com/settings/billing/summary)).\n\n## Testing Spring Boot Applications Demystified\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://rieckpil.de\"\u003e\n    \u003cimg src=\"/resources/demystify.jpg\" alt=\"Demystify\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**Talk description**: Testing plays a crucial role in software development, allowing you to catch bugs, ensure your code functions as intended, and provide confidence in the reliability and stability of your applications.\n\nHowever, testing Spring Boot applications can sometimes feel like navigating a labyrinth of challenges – from managing dependencies and external systems to crafting effective tests that reflect the behavior of your code.\n\nWhether you’re a seasoned developer or just starting your journey with Spring Boot, this workshop is designed to unravel the complexities and pitfalls of testing Spring Boot applications and empower you to become more productive and confident in your testing efforts.\n\nIn this workshop, we will demystify testing Spring Boot applications by providing you with clear explanations, practical insights, and actionable best practices. Philip will guide you through the common pitfalls faced by developers, share time-tested recipes for success, and equip you with the tools and knowledge you need to write comprehensive and effective tests.\n\n- [Source Code](testing-spring-boot-applications-demystified/)\n- Slides: [Java User Group Hamburg 2025](testing-spring-boot-applications-demystified/slides/slides-jug-hamburg-2025.pdf), [Spring I/O 2024](https://pitch.com/v/spring-io-2024-testing-spring-boot-applications-demystified-vy8zf9)\n- Recordings: none\n\n## How Fixing a Broken Window Cut Down Our Build Time by 50%\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://rieckpil.de\"\u003e\n    \u003cimg src=\"/resources/broken-window.png\" alt=\"Broken Window\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**Talk description**: The broken windows (not the operating system - 😁) theory not only applies to criminological cases but also codebases. It only takes one lazy developer to break the first window. Chances are high that others will follow a similar path and take workarounds or re-apply a not so optimal pattern thinking, \"It passed the code review, I must not be that bad\".\n\nFor our Spring Boot integration test setup, we had such a broken window that was causing ever-growing build times. While most books about clean architecture emphasize composition over inheritance, we drifted off from this rule and coupled our tests to an AbstractIntegrationTest class that we then annotated with `@DirtiesContext`...\n\nThis resulted in ever-growing build times as each new integration test was launching its own Spring TestContext, adding valuable seconds to the overall build time. Our feedback cycles, as well as the overall satisfaction of the team, started to suffer from this.\n\nThis talk describes our journey of getting rid of `@DirtiesContext` on top of an abstract test class (aka. the \"broken window\") that made reusing the Spring TestContext impossible and resulted in ever-growing build times. Furthermore, we'll discuss recipes, best practices, and antipatterns for resuing the Spring TestContext and testing Spring Boot applications in general.\n\nAfter fixing this \"broken window\", our overall build time went down by 50% from 25 to 12 minutes.\n\n- [Source Code](/fixing-a-broken-window/)\n- [Slides](https://speakerdeck.com/rieckpil/how-fixing-a-broken-window-cut-down-our-build-time-by-50-percent)\n- Recordings: [Spring I/O 2022](https://www.youtube.com/watch?v=c-GV2PxymoY)\n\n## Things I Wish I Knew When I Started Testing Spring Boot Applications\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://rieckpil.de\"\u003e\n    \u003cimg src=\"/resources/getting-started.jpg\" alt=\"Getting Started\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**Talk description**: Getting started with Spring Boot and its auto-configuration mechanism can be a hurdle for new developers.\n\nOnce you get your first Spring Boot application up- and running, writing tests for it is the last thing you care about. You’re happy that your code does its job.\n\nHowever, as soon as you try to integrate your changes, you face a pull request rejection because your lead developer reminds you that tests are missing.\n\nTesting is an integral part of software development, and unfortunately, some teams treat this topic neglectfully. That’s bad for the future maintenance and overall health of their project. Fortunately, both Spring Test and Spring Boot offer excellent support for testing your application.\n\nThis talk will give you an overview of best practices, pitfalls, and recipes for testing Spring Boot applications. Simply put, with this talk, I’ll share the things that I wish I had known when I started testing Spring Boot applications.\n\n\n- [Source Code](/things-i-wish-i-knew-spring-boot-testing/)\n- [Slides](https://speakerdeck.com/rieckpil/things-i-wish-i-knew-when-i-started-testing-spring-boot-applications)\n- Recordings: [Spring I/0 2023](https://www.youtube.com/watch?v=hR0bbk2tsF0) \u0026 [Devoxx Belgium 2022](https://www.youtube.com/watch?v=5Td7vAS9qJI)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frieckpil%2Ftalks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frieckpil%2Ftalks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frieckpil%2Ftalks/lists"}