Simon Martinelli

27.6K posts

Simon Martinelli banner
Simon Martinelli

Simon Martinelli

@simas_ch

Yes, I'm creating software with AI that runs in production! Java Champion, Vaadin Champion, Oracle ACE Pro, Speaker, Programming Architect, and Lecturer.

Erlach, Schweiz Katılım Nisan 2009
1.7K Takip Edilen9.4K Takipçiler
Sabitlenmiş Tweet
Simon Martinelli
Simon Martinelli@simas_ch·
The first live stream on spec-driven development is already over. Thank you all so much for participating. For those who couldn't be there, you can find the recording here: youtube.com/watch?v=jwPBHV…
YouTube video
YouTube
English
1
2
25
10.8K
Simon Martinelli
Simon Martinelli@simas_ch·
@royvanrijn I use a yaml like structures in the use case specs because markdown tables are hard to edit.
English
0
0
0
108
Roy van Rijn
Roy van Rijn@royvanrijn·
"We've switched from writing AI specs in Markdown to YAML" ... 😭 Don't tell me we're doing YAML again...
English
3
0
3
343
Simon Martinelli
Simon Martinelli@simas_ch·
@AmrTawfik160 There is no difference in performance to other approaches because Vaadin is based on Webcomponents and is a SPA at runtime.
English
0
0
1
36
amr
amr@AmrTawfik160·
@simas_ch interesting, vaadin seems to be getting lots of love lately. how do you find its performance compared to other frameworks?
English
1
0
0
39
Simon Martinelli
Simon Martinelli@simas_ch·
After a few months of intensive work with AI agents on Java projects, I can say: Vaadin is currently the best web framework for Java developers. Two reasons make the difference. 𝟭) 𝗕𝗿𝗼𝘄𝘀𝗲𝗿𝗹𝗲𝘀𝘀 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 Karibu Testing and the official UIUnitTest let me test complete views without a browser. No WebDriver, no flakiness, no 30 seconds wait per run. Tests run in milliseconds. This sounds like a pure comfort argument, but it is much more. When I let an AI agent work on a Vaadin project, the test suite runs after every change. The agent sees right away if it broke something and fixes it. With a slow E2E suite, this does not happen. The agent gets the feedback too late, and quality drops. The Test Trophy model fits very well here: the focus is on integration tests through the whole view, not on isolated unit tests of single components. 𝟮) 𝗔𝗜 𝗦𝗸𝗶𝗹𝗹𝘀 𝗮𝗻𝗱 𝗠𝗖𝗣 𝗮𝗿𝗲 𝘁𝗵𝗲𝗿𝗲 Vaadin has released an official Claude Code plugin: github.com/vaadin/claude-… It comes with eleven curated skills (Theming, Layouts, Forms, Signals, Views, Testing and more) plus an integrated Vaadin MCP server for live documentation lookups. The effect in daily work: without MCP, the agent guesses from its training data. That data is months old and does not know the current Vaadin 25 APIs. The result: hallucinated methods, outdated patterns, code that does not compile. With MCP, Claude queries the official documentation live. With the skills, the agent gets curated best practice knowledge on top, which is not part of the general training data. The difference in code quality is clear. 𝗧𝗵𝗲 𝗯𝗶𝗴𝗴𝗲𝗿 𝗽𝗶𝗰𝘁𝘂𝗿𝗲 I believe that frameworks will no longer be measured only by their Developer Experience, but also by their Agent Experience. Short feedback loops, curated knowledge via MCP and skills, consistent patterns: these are the new quality criteria. Vaadin already meets these points today. Java instead of JavaScript, server-side, fast tests, official AI tools. Exactly the combination that matters in the enterprise Java space. This aligns strongly with what I teach in my SDD Workshop and in the AIUP methodology: anyone working with AI agents needs the right tooling around them, otherwise you fight against the agent instead of with it. #Vaadin #Java #SpringBoot #AI #ClaudeCode
Simon Martinelli tweet media
English
1
3
18
708
Simon Martinelli retweetledi
Dan Vega
Dan Vega@therealdanvega·
Spring Office Hours: S5E15 - Spec Driven Development with Simon Martinelli x.com/i/broadcasts/1…
English
1
3
14
510
Dr. Jawa
Dr. Jawa@lofidewanto·
@simas_ch Java and Spring Boot have the greatest specs and docs, already in every stomach of the LLMs, no additional context necessary…
English
1
0
1
93
Simon Martinelli
Simon Martinelli@simas_ch·
A small experiment with Claude Code: Hotel room search, built twice. 1) Vaadin + Spring Boot + jOOQ + Testcontainers + PostgreSQL: 3 minutes. 2) Angular + Python + DynamoDB: about 5x longer. Why the gap? One stack is one language, one runtime, and a clear data model. The other is two ecosystems, two languages, and design decisions that need to be made up front. Choose your tech stack wisely.
English
7
4
42
4.8K
Simon Martinelli
Simon Martinelli@simas_ch·
This always depends. Use a lib to reduce the code AI must write and you must review. Vaadin or Security as examples. In case of JPA there are more parts to review than with pure SQL. Annotations, Repositories, queries because the things affecting the SQL generation is spread over the code
English
0
0
1
46
magicprinc
magicprinc@magicprinc·
@simas_ch But you can write it with AI agent. Where is this line: use lib vs rewrite myself+AI?
English
1
0
0
44
Simon Martinelli
Simon Martinelli@simas_ch·
@magicprinc Spring Boot is not bloated. It has the largest ecosystem and integration for all you’ll ever need like Microsoft Entra or Passkey
English
1
0
0
41
magicprinc
magicprinc@magicprinc·
@simas_ch To build everything from basic raw materials... I am not sure...
English
1
0
0
16
magicprinc
magicprinc@magicprinc·
@simas_ch Vaadin is amazing java library! PS: Try ebean.io - amazing java ORM "made right" jOOQ is too different (
English
1
0
0
299
Simon Martinelli
Simon Martinelli@simas_ch·
@sivalabs I wouldn't use Angular anymore. For JavaScript, I'd use React and Next.js. I've used create.t3.gg in the past, but this is no longer maintained. This gave a similar experience
English
0
0
2
298
Siva
Siva@sivalabs·
@simas_ch What about Angular + Node.js + Mongo/PostgreSQL?
English
1
0
0
630
0xMart
0xMart@0xMartj·
@simas_ch if you have readymade starter kits for both backend and frontend there is not much difference.
English
1
0
0
152
Simon Martinelli
Simon Martinelli@simas_ch·
@sivalabs @AnthropicAI This is already possible by using the CLAUDE_CONFIG_DIR env var. For example: alias claude-perso='CLAUDE_CONFIG_DIR=$HOME/.claude-perso command claude' alias claude-work='CLAUDE_CONFIG_DIR=$HOME/.claude-work command claude'
English
0
0
0
98
Siva
Siva@sivalabs·
@AnthropicAI Please add support for multiple user accounts and the ability to switch accounts in the Claude Code Desktop app.
English
1
0
3
1.2K
Simon Martinelli retweetledi
Cormac
Cormac@cormachayden_·
software engineers before vs after agents
Cormac tweet mediaCormac tweet media
English
447
1.3K
19.4K
4.8M
Simon Martinelli
Simon Martinelli@simas_ch·
@sivalabs I tried it with Maven and Java. But it has the same issues like VSCode. Fire example both do see the classes in target/generated-sources. IntelliJ is still superior in many aspects and a real IDE.
English
0
0
2
613
Siva
Siva@sivalabs·
I heard good things about the Zed editor, so I thought of taking it for a spin. I have Java extension installed, opened a Gradle project and running the main method simply errors out with "there is no task named run". I don't see any option to customize. Also tried using debug configuration, but no change. Has anyone tried Zed for Java development?
English
9
0
23
10.8K