Petri Kainulainen
@petrikainulainen.bsky.social
📤 64
📥 16
📝 80
Spring ninja, summer rock star, autumn hacker, and winter guru. I write code. Titles are irrelevant.
This blog post highlights six success stories from my short AI assisted engineering journey.
loading . . .
AI Assisted Engineering With an AI Chatbot - From Idea to Working Code - Petri Kainulainen
This blog post highlights six situations when AI assisted engineering helped me to get the job done faster.
https://www.petrikainulainen.net/software-development/ai-assisted-engineering-with-an-ai-chatbot-from-idea-to-working-code/
2 months ago
0
0
0
19 interesting SW development articles which I read during October 2025:
www.petrikainulainen.net/monthly/soft...
- HIGHLIGHTS: solving the wrong problem, your data their rules, and why we tend to avoid public conversations.
loading . . .
Software Development Monthly 10 / 2025 - Petri Kainulainen
The software development monthly highlights 19 interesting or useful blog posts which I read during October 2025.
https://www.petrikainulainen.net/monthly/software-development-monthly-10-2025/
2 months ago
0
0
0
HIGHLIGHTS: Taming backend complexity: lessons from a decade of TDD, What's new in JUnit 6, and 2FA testing with Playwright and Mailosaur.
loading . . .
Clean Test Automation Monthly 10 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 14 interesting or useful test automation blog posts which I read during October 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-10-2025/
3 months ago
0
1
0
19 interesting SW development blog posts which I read in September 2025. HIGHLIGHTS: why I am declining your AI generated MR, keeping secrets out of logs, and are the SOLID principles outdated
loading . . .
Software Development Monthly 9 / 2025 - Petri Kainulainen
The software development monthly highlights 19 interesting or useful blog posts which I read during September 2025.
https://www.petrikainulainen.net/monthly/software-development-monthly-9-2025/
3 months ago
0
0
0
21 interesting test automation articles which I read during September 2025. Highlights: the Tetris principle, how to optimize your Spring Boot integration tests, and how to write your first performance tests with Grafana k6.
loading . . .
Clean Test Automation Monthly 9 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 21 interesting or useful test automation blog posts which I read during September 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-9-2025/
4 months ago
0
1
0
An interesting article which explains why some people cannot pass technical interviews which include a live coding session.
loading . . .
Live coding sucks
Live coding measure stress, not coding skills
https://hadid.dev/posts/living-coding/
4 months ago
0
0
0
You should always take responsibility for the code you commit.
loading . . .
I Know When You're Vibe Coding
I shouldn’t have to care about this. I don’t want to care about how someone’s code gets into the IDE. Whether you wrote it by hand, copied it from a forum…
https://alexkondov.com/i-know-when-youre-vibe-coding/
4 months ago
1
2
1
15 interesting SW development blog posts which I read in August 2025. HIGHLIGHTS: I Know When You Are Vibe Coding, AWS deleted my 10-year account and all data without warning, and Live Coding Sucks.
loading . . .
Software Development Monthly 8 / 2025 - Petri Kainulainen
The software development monthly highlights 15 interesting or useful blog posts which I read during august 2025.
https://www.petrikainulainen.net/monthly/software-development-monthly-8-2025/
4 months ago
0
0
0
Why I Fired Google and Gave an AI Chatbot a Shot:
www.petrikainulainen.net/software-dev...
5 months ago
0
0
0
HIGHLIGHTS: how to write automated tests for a legacy application that cannot be unit tested, learn to test production-ready Spring Boot applications, and how to write Playwright tests which verify that the expected interactions happen between our UI and REST API.
loading . . .
Clean Test Automation Monthly 8 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 15 interesting or useful test automation blog posts which I read during august 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-8-2025/
5 months ago
0
0
0
HIGHLIGHTS: the rules and roles of AI assisted testing, how to create a useful logging config for Spring Boot tests, and learn to write performance tests with Playwright and Lighthouse.
loading . . .
Clean Test Automation Monthly 7 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 11 interesting or useful test automation blog posts which I read during July 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-7-2025/
6 months ago
0
1
0
reposted by
Petri Kainulainen
Michael Simons
7 months ago
New in my toolkit (after resilience4j and Spring Retry):
#failsafe
failsafe.dev
Nice api, clear docs, easy and flexible to integrate and use. Well done.
#java
#awesomeEcoSystem
loading . . .
Fault tolerance and resilience patterns for the JVM
Failsafe website
https://failsafe.dev
1
11
3
Interesting article.
loading . . .
React Still Feels Insane And No One Is Talking About It
https://mbrizic.com/blog/react-is-insane/#react-still-feels-insane-and-no-one-is-talking-about-it
7 months ago
0
0
0
I will grab Elden Ring and Horizon Forbidden West from the Steam's summer sale. The price is decent and I guess these (+ Rocket League) will keep me entertained for the rest of this year.
7 months ago
0
0
0
HIGHLIGHTS: a good test name is a sentence, how to write parameterized test classes with JUnit 5, and supercharge your Playwright tests with the Chrome DevTools Protocol.
loading . . .
Clean Test Automation Monthly 6 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 14 interesting or useful test automation blog posts which I read during June 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-6-2025/
7 months ago
0
0
1
I use a somewhat similar approach.
loading . . .
How I write production-ready Spring Boot applications
This blog post will explain how I currently write Spring Boot applications. I have been writing Java for over 25 years, and most of that involved Spring and its ecosystem. I will talk about how I arch...
https://www.wimdeblauwe.com/blog/2025/06/24/how-i-write-production-ready-spring-boot-applications/
7 months ago
0
1
1
I have come to the conclusion that I will monetize my blog. Have you done the same? If yes, what membership plugin / service did you use?
7 months ago
0
0
0
This is an excellent post.
add a skeleton here at some point
7 months ago
0
2
0
reposted by
Petri Kainulainen
Marc Philipp
8 months ago
✨ New blog post: "STF Milestone 4: Parameterized test classes" JUnit 5.13 introduced parameterized test classes (in addition to methods). They are a powerful testing tool that has long been missing from JUnit Jupiter... 👉
marcphilipp.de/blog/2025/06...
0
31
11
reposted by
Petri Kainulainen
Siva
8 months ago
I think people go through various phases of using AI: 1. AI is just a hype 2. AI seems to be helpful 3. Wow, AI is amazing and it's going to take away our jobs 4. OMG, AI made my codebase a mess 5. Okay, so I need to do the thinking and use AI to carry out the tasks.
1
3
1
I am testing the Jetbrains AI Assistant and I have noticed that I can pass guidelines to AI chat by following these steps: 1) Open the markdown file which contains the guidelines 2) Open AI Chat and allows access to code base 3) Ask the assistant to read guidelines and generate code. Interesting.
8 months ago
1
1
0
Highlights: how to generate good tests with AI, 3 ways to run a Docker container with Testcontainers when we are writing integration tests for Spring Boot applications, and vibe testing with Playwright.
loading . . .
Clean Test Automation Monthly 5 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 23 interesting or useful test automation blog posts which I read during May 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-5-2025/
8 months ago
0
2
2
If you want to generate Spring controllers with openapi-generator-maven-plugin and you don't want to include Swagger annotations in the generated code, this comment describes the configuration you have to use:
github.com/OpenAPITools...
loading . . .
[BUG] [SPRING] annotationLibrary is ignored · Issue #11460 · OpenAPITools/openapi-generator
Hi. I'm using the latest version of the generator (5.3.1) and, according to the spring generator documentation, I should be able to not generate the Swagger annotations by setting annotationLibrary...
https://github.com/OpenAPITools/openapi-generator/issues/11460#issuecomment-1684193384
8 months ago
0
1
0
Good point.
loading . . .
Fluent APIs Are More Than Just Chaining · Poutsma Principles
https://poutsma-principles.com/blog/2025/05/20/method-chaining/
8 months ago
0
0
0
Sometimes vibe-coding is relaxing, and sometimes it's not.
8 months ago
0
0
0
reposted by
Petri Kainulainen
Siva
8 months ago
Want to use Junie AI Agent for developing
#SpringBoot
applications. You should checkout the guidelines repository
github.com/JetBrains/ju...
You can use "guidelines" files for AI Agents, "guidelines-with-explanations" files for developer understanding. Your contributions are most welcome!
loading . . .
GitHub - JetBrains/junie-guidelines
Contribute to JetBrains/junie-guidelines development by creating an account on GitHub.
https://github.com/JetBrains/junie-guidelines
0
10
4
reposted by
Petri Kainulainen
Siva
8 months ago
Spring JdbcClient: A better alternative to JdbcTemplate
www.youtube.com/watch?v=oF7v...
A practical hands-on tutorial on how to use JdbcClient to interact with SQL databases.
loading . . .
Spring JdbcClient: A better alternative to JdbcTemplate
YouTube video by IntelliJ IDEA, a JetBrains IDE
https://www.youtube.com/watch?v=oF7vlaJhySE
0
10
5
I think that I will try Jetbrains AI. I have a personal project which I will start from the scratch and it will be interesting to see if it can write the "boring" code when it has access to the code base.
8 months ago
1
1
0
Expectations vs. Reality
8 months ago
0
0
0
The Efficiency Delusion
8 months ago
0
1
1
I find it a bit funny that Github doesn't want to train AI bots:
news.ycombinator.com/item?id=4393...
loading . . .
Updated rate limits for unauthenticated requests | Hacker News
https://news.ycombinator.com/item?id=43936992
8 months ago
0
0
0
Learn to write unit tests for a
#SpringBoot
REST API endpoint that returns an object as JSON. This guide identifies the key tests, shows how to eliminate duplicate request building code, and demonstrates how to write the required assertions with MockMvcTester and AssertJ.
loading . . .
Writing Unit Test With MockMvcTester: Returning an Object as JSON - Petri Kainulainen
This blog post helps us to identify the required test cases and describes how we can write unit tests for a Spring MVC REST API endpoint that returns an object as JSON.
https://www.petrikainulainen.net/programming/testing/writing-unit-test-with-mockmvctester-returning-an-object-as-json/
8 months ago
0
2
2
reposted by
Petri Kainulainen
Siva
8 months ago
When you hear "Database is just an implementation detail"...RUN.
1
2
3
If you always take the easiest path, you won't learn anything.
loading . . .
AI is Making Developers Lazy: RIP Core Coding Skills
The hum of the AI co-pilot has become a familiar soundtrack in the world of software development. These intelligent tools, promising increased efficiency and code generation prowess, have been embrace...
https://www.darrenhorrocks.co.uk/ai-making-developers-lazy-rip-core-coding-skills/
9 months ago
0
0
0
My employer does pay for SW which I need, but I also pay several licenses from my own pocket. These include tools like Little Snitch, iStat Menus, IntelliJ Idea, ChatGTP, Transmit, Sublime Text, and many others.
add a skeleton here at some point
9 months ago
0
1
0
I did some thinking and came to the conclusion that I have encountered three systems which I would call legacy code. Two of them were actively developed and used an in-house "framework". No one wanted to touch the third one because they were afraid that it will break.
loading . . .
AI code is legacy code from day one - Text Incubation
It seems like there are a few stages in the life of a codebase (and/or parts of it), that dictate its likelihood of deep improvement. 1. When something is new, and you’re the one who built it: “Oh ye…
https://text-incubation.com/AI+code+is+legacy+code+from+day+one
9 months ago
0
0
0
This is quite easy to do and very helpful.
loading . . .
Catch Missing `await` Calls in Playwright Tests with ESLint
Have you ever run a Playwright test that just... didn’t behave as expected? Maybe it failed randomly....
https://dev.to/playwright/catch-missing-await-calls-in-playwright-tests-with-eslint-5fid
9 months ago
0
0
0
This blog post explains why these myths were born and argues that these myths aren't a problem IF we use Spring Boot in the correct way.
loading . . .
Top 5 Spring Boot Testing Myths - rieckpil
Debunk the top 5 testing myths about testing Spring Boot applications. Learn best practices for faster, effective tests.
https://rieckpil.de/top-5-spring-boot-testing-myths/
9 months ago
0
1
1
Interesting article that describes how you can catch WCAG (accessibility) violations with Playwright and generate the a report that displays all found violations.
loading . . .
Automating Accessibility Checks Using Playwright
We were tasked with introducing accessibility testing into one of our projects, and our first goal was to get a quick, high-level overview…
https://medium.com/@tpshadinijk/automating-accessibility-checks-using-playwright-db443214c38d
9 months ago
0
0
0
An excellent blog post which pretty much summarizes my experiences with BDD testing tools. These tools are always sold with a promise that non-technical stakeholders will now write test scenarios, but every time the end result has been the same: developers will write the same test multiple times.
loading . . .
Cutting Through the Noise - The Case Against Gherkin in Automation
Explore why Gherkin adds unnecessary complexity to test automation and how a code-first approach enhances efficiency, maintainability, and speed in testing.
https://www.linkedin.com/pulse/cutting-through-noise-case-against-gherkin-elliott-hrynacz-6gruc/
9 months ago
0
0
0
Highlights: why we shouldn't use Gherkin (or other BDD tools), top 5 Spring Boot testing myths debunked, and how to detect WGAC (accessibility) violations with Playwright.
loading . . .
Clean Test Automation Monthly 4 / 2025 - Petri Kainulainen
The clean test automation monthly highlights 20 interesting or useful test automation blog posts which I read during April 2025.
https://www.petrikainulainen.net/monthly/clean-test-automation-monthly-4-2025/
9 months ago
0
1
1
I updated my Spring MVC Test Tutorial page. I added links to my new
#MockMvcTester
articles.
loading . . .
Spring MVC Test Tutorial - Petri Kainulainen
My Spring MVC Test (aka MockMvc) tutorial helps you to write both unit and integration tests for Spring Boot web applications and REST APIs.
https://www.petrikainulainen.net/spring-mvc-test-tutorial/
9 months ago
0
0
0
reposted by
Petri Kainulainen
Siva
9 months ago
A Practical Guide to Testing Spring Controllers With MockMvcTester
blog.jetbrains.com/idea/2025/04...
loading . . .
A Practical Guide to Testing Spring Controllers With MockMvcTester | The IntelliJ IDEA Blog
Spring Framework 6.2 introduced MockMvcTester to support writing AssertJ style assertions using AssertJ under the hood. If you’re using Spring Boot, the spring-boot-starter-test dependency transiti
https://blog.jetbrains.com/idea/2025/04/a-practical-guide-to-testing-spring-controllers-with-mockmvctester/
1
7
4
I am currently downloading Elder Scrolls IV: Oblivion Remastered. 45 minutes to go.
9 months ago
0
0
0
So, if MS would have kept the original copyright notices, everything would be fine? Another thought: maybe it's a good idea to use a restrictive license if you don't want that mega corporations can fork your project.
loading . . .
Getting Forked by Microsoft
Three years ago, I was part of a team responsible for developing and maintaining Kubernetes clusters for end user customers. A main source for downtime in customer environments occurred when image reg...
https://philiplaine.com/posts/getting-forked-by-microsoft/
9 months ago
0
0
0
The second part of my MockMvcTester tutorial identifies the tests we must write, describes how we can remove duplicate request building code from our test class, and explains how we can write unit tests for a REST API endpoint that returns a list as JSON.
loading . . .
Writing Unit Tests With MockMvcTester: Returning a List as JSON - Petri Kainulainen
This blog post describes how we can write unit tests for a Spring MVC REST API endpoint that returns a list as JSON.
https://www.petrikainulainen.net/programming/testing/writing-unit-tests-with-mockmvctester-returning-a-list-as-json/
9 months ago
0
0
0
I just happened to buy Core 2 Duo 8400 + Asus P5Q SE2 + 4GB DDR2 combo :D It was so cheap (10€) and tested => I had to pull the trigger.
add a skeleton here at some point
9 months ago
0
1
0
I got a sudden urge to build a Windows XP computer for playing old games, but then I remembered that I don't have enough time to play all interesting modern games. But, building that damn thing would still be fun.
9 months ago
0
0
1
reposted by
Petri Kainulainen
Fran DĂaz
10 months ago
"devs, perhaps swayed by the convenience of annotations, might overlook thorough domain modeling necessary for maintaining business logic integrity ... while tools like Lombok can significantly reduce boilerplate, they are not substitutes for careful design and a deep understanding of the domain" 👆
0
0
1
An interesting story which describes how (and why) Spring MVC got annotation support.
loading . . .
How @MVC came to be · Poutsma Principles
https://poutsma-principles.com/blog/2025/04/08/how_at_mvc_came_to_be/
9 months ago
0
0
0
Load more
feeds!
log in