Simon Martinelli Profile Banner
Simon Martinelli Profile
Simon Martinelli

@simas_ch

7,475
Followers
1,609
Following
1,048
Media
23,427
Statuses

Java Champion, Vaadin Champion, Oracle ACE Associate, Speaker, Programming Architect, and Lecturer for Software Architecture, Java, Persistence, and DevOps.

Erlach, Schweiz
Joined April 2009
Don't wanna be here? Send us removal request.
Pinned Tweet
@simas_ch
Simon Martinelli
1 year
One of the most important things as a software developer is to understand the business. If you don't understand what the users want to do with your software you shouldn't write a single line of code.
20
55
255
@simas_ch
Simon Martinelli
2 years
"Our application has 20 microservices". "Wow, how many developers are you?" "2" ๐Ÿคฏ
74
86
920
@simas_ch
Simon Martinelli
1 year
Most projects are not large enough for Microservices.
30
67
532
@simas_ch
Simon Martinelli
5 months
OMG ๐Ÿ˜ฑ I feel more than honored to be part of this group of amazing people. Thanks to everyone who made this happen. It motivates me even more to share my knowledge and help many developers to be successful with Java.
@Java_Champions
Java Champions
5 months
Congratulations to new #Java Champion @simas_ch
Tweet media one
62
30
291
74
23
440
@simas_ch
Simon Martinelli
2 years
Just a reminder: Java enums are singletons
22
33
429
@simas_ch
Simon Martinelli
4 months
I like gRPC. We are using it in a new project where the size of the message and performance are essential. Now I start to question why we use REST and not an RPC-style protocol with JSON over HTTP. RPC adds semantics to the interface.
75
36
418
@simas_ch
Simon Martinelli
2 years
Just spotted it on SO: return questionsRepository .findAll() .stream() .filter(q->filter(q, embroyo)) .collect(Collectors.toList()); PLEASE learn what the where clause can do for you!
21
41
383
@simas_ch
Simon Martinelli
4 years
Use @vaadin to avoid this
Tweet media one
10
73
312
@simas_ch
Simon Martinelli
5 months
Unpopular opinion: Very often Kafka could be replaced by traditional messaging.
41
27
304
@simas_ch
Simon Martinelli
5 months
IntelliJ should display a warning when using Lombok Data on an Entity.
21
20
295
@simas_ch
Simon Martinelli
1 year
Finally I have a working example with Angular 15, Spring 3 and JWT. I will blog about my journey next week.
4
54
278
@simas_ch
Simon Martinelli
1 year
As a developer, going to the office is most often unnecessary. Usually, there is less communication/collaboration in the office than over Slack/Teams, but much more noise and distraction. Why do people still think that developers should work in the same room?
40
41
276
@simas_ch
Simon Martinelli
5 months
I still can't believe that I'm a @Java_Champions . Thanks a lot for the apparel ๐Ÿคฉ
Tweet media one
Tweet media two
19
6
264
@simas_ch
Simon Martinelli
8 months
@daboigbae Code -> userId Database -> user_id
11
12
241
@simas_ch
Simon Martinelli
1 year
With all the hype around Monolith, when will be the first Monolith conference?
26
27
238
@simas_ch
Simon Martinelli
3 years
Goodbye Dockerfile. Say hello to mvn spring-boot:build-image Thank you @springboot
7
39
221
@simas_ch
Simon Martinelli
9 months
I've heard that using enums instead of boolean method parameters is better. Am I doing this right? public enum Bool { TRUE, FALSE }
44
21
222
@simas_ch
Simon Martinelli
1 year
Be careful when replacing collect(Collectors.toList()) with toList() because toList returns an UnmodifiableList.
21
20
218
@simas_ch
Simon Martinelli
7 months
I hate multi-module Maven projects
37
5
204
@simas_ch
Simon Martinelli
2 years
When I started as a software engineer 27 years ago I had direct access to the end-user. Over the years more and more roles were added that do not add value to the solution.
@bibryam
Bilgin Ibryam
2 years
How a developer output (code) reaches the user
Tweet media one
7
64
225
11
46
187
@simas_ch
Simon Martinelli
11 months
Am I doing this right?
Tweet media one
39
3
185
@simas_ch
Simon Martinelli
3 months
The inconvenience of REST is that you get a 404 error regardless of whether the URL is wrong or the correct URL is called, but the resource does not exist. How do you handle that?
86
14
173
@simas_ch
Simon Martinelli
2 years
All companies seem to use Kafka. I wonder what they used before Kafka, or are they just using Kafka because all companies are using Kafka?
45
16
168
@simas_ch
Simon Martinelli
2 months
New developers should start in maintenance to feel the pain of fixing crappy code.
15
13
165
@simas_ch
Simon Martinelli
4 years
Before you start learning Hibernate or any other O/R-Mapper you should learn SQL and the features of your database. Maybe you will realize that you event don't need O/R-Mapping
11
34
161
@simas_ch
Simon Martinelli
2 years
Let's not fool ourselves. Small and medium businesses with applications with relatively few users do not have the same scalability requirements as Netflix or Facebook. I can't stress it enough: choose the architecture and platform based on the requirements, not the hype!
13
27
160
@simas_ch
Simon Martinelli
3 months
If you hire an external consultant (like me ๐Ÿ˜…) keep this in mind ๐Ÿ‘‡
Tweet media one
11
24
160
@simas_ch
Simon Martinelli
6 days
Do you really need Kafka?
73
14
185
@simas_ch
Simon Martinelli
4 months
Hibernate is not the problem. The problem is how people use it because they don't fully understand how it works. Learn the tools you use! Don't assume how it should work check the manual and/or the source code. #learnyourtools
23
14
142
@simas_ch
Simon Martinelli
6 months
A friend told me he doesn't take on projects that use Gradle because there is usually something wrong with the project, as developers using Gradle tend to create a custom build that only a few people understand.
31
10
139
@simas_ch
Simon Martinelli
1 year
What a day! Just got an email from @spring_io : "Congratulations Simon Martinelli! Your talk, Do you really need Hibernate?, has been selected for Spring I/O 2023." I'm so excited to be part of this amazing conference again!
14
4
131
@simas_ch
Simon Martinelli
3 years
If you use Lombok getter/setter why don't you use public fields? It's the same, isn't it?
47
9
127
@simas_ch
Simon Martinelli
6 months
Spring Data JPA Repository's save method returns an entity. You should ALWAYS use that after the save call and not the entity you passed to save because internally EntityManager.merge may be called!
5
11
120
@simas_ch
Simon Martinelli
3 months
I'm refactoring an Angular/Spring Boot app where front-end and back-end developers didn't talk. You wouldn't believe how much code I can delete on the client side by returning appropriate data in the API. #Fullstack #FightForSimplicity
8
7
115
@simas_ch
Simon Martinelli
2 years
To all the people bashing #Log4J and arguing we should use the built-in logging off Java: keep in mind that Log4J is 20 years old. Where was Java logging then?
12
6
112
@simas_ch
Simon Martinelli
4 months
My next video will be about Spring Boot's Docker and Testcontainers support. Stay tuned!
2
0
108
@simas_ch
Simon Martinelli
4 years
People on @StackOverflow don't read documentation. Most of the time I can help them by posting the right section from the docs. So today I want to thank all documentation writers! I really appreciate your work, that makes my live much easier. #RTFM
8
10
106
@simas_ch
Simon Martinelli
1 year
Most applications I see have a too complicated architecture. KISS and YAGNI first, please!
10
10
107
@simas_ch
Simon Martinelli
1 year
I hate this attitude that all tools, libraries and frameworks have to be free. As if the developers who demand it were working for free ๐Ÿคจ
11
8
107
@simas_ch
Simon Martinelli
5 years
I really prefer properties file over yaml to configure @springboot . With yaml it's impossible to just copy one property by simply selecting the line.
8
13
104
@simas_ch
Simon Martinelli
2 months
History strikes back. HTMX, and Hotwire to add dynamic behavior are getting a lot of traction lately. Something that Jakarta Faces (JSF) has already had for 15 years! AJAX was introduced in JSF 2.0 in May 2009
14
15
103
@simas_ch
Simon Martinelli
3 years
A one to one mapping of entities to DTOs is an anti-pattern.
15
17
100
@simas_ch
Simon Martinelli
3 years
If you are using Spring Data and want to know if for some condition a record exists use count instead of find. This may improve the performance because no entities are loaded and no lazy loading can be triggered.
5
13
103
@simas_ch
Simon Martinelli
1 month
Working in IntelliJ without editor tabs for a few weeks. Never missed it. Give it a try:
Tweet media one
26
4
99
@simas_ch
Simon Martinelli
2 months
1 Microservice split into 15 Maven projects ๐Ÿคทโ€โ™‚๏ธ
25
2
96
@simas_ch
Simon Martinelli
2 years
I love my new 49" screen
Tweet media one
16
3
90
@simas_ch
Simon Martinelli
4 years
Enterprise Architect, Solution Architect, Business Architect, System Architect, Software Architect, Integration Architect. And who has to do the work - the Software Engineer. We live in a strange industry.
13
22
90
@simas_ch
Simon Martinelli
4 months
When using JPA/Hibernate, turn on SQL logging and watch it during development. If there are many SQL statements, you have a problem, and you must fix it! The Hibernate logger is "org.hibernate.SQL"
9
11
88
@simas_ch
Simon Martinelli
3 months
It's amusing that developers can complain about a bit of XML in the Maven POM that they rarely touch but develop frontends with HTML all day long.
8
11
89
@simas_ch
Simon Martinelli
2 years
When will companies understand that software developers are not resources and are therefore difficult to replace and not scalable?
8
17
89
@simas_ch
Simon Martinelli
3 months
Most applications donโ€™t need to scale because there are not millions of users
@emil_priver
privv
3 months
Why is this so accurate
Tweet media one
9
127
1K
11
11
86
@simas_ch
Simon Martinelli
1 year
Serverless is the new mainframe. Prove me wrong.
22
14
87
@simas_ch
Simon Martinelli
2 years
@sivalabs Same here. Btw. I was once asked in a job interview what my favorite pattern is. I answered: it's the pattern that best fits the problem. The interviewer didn't like my answer and finally, I didn't get the job.
7
2
86
@simas_ch
Simon Martinelli
11 months
After some web app framework discussion at @spring_io with @tschuehly and @openwms I gave JSF a try (after about 10 years). What should I say? It just works. What I like about JSF is: 1. Code completion in Java IDEs 2. Component libraries like PrimeFaces 3. No need for HTMX (Ajaxโ€ฆ
19
18
86
@simas_ch
Simon Martinelli
2 years
Remember: You may not need DDD, Scrum, Microservices, K8S, Kafka, etc. The methods, processes, tools, and technology must follow the requirements. Remember: You may not need DDD, Scrum, Microservices, K8S, Kafka, etc. ๐Ÿงต
7
10
84
@simas_ch
Simon Martinelli
3 months
My son passed his driving test ๐Ÿฅณ Proud dad!
8
0
85
@simas_ch
Simon Martinelli
3 years
It's funny and scary at the same time that people think that a modular monolith aka modulith is a complete new approach. This is what we've done 20 years ago...
19
11
81
@simas_ch
Simon Martinelli
9 months
Great article! "Iโ€™ll always choose stability over flexibility for my build tool." That's also my reason why I never choose Gradle
@nicolas_frankel
Nicolas Frankel ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡ฌ๐Ÿ‡ช
9 months
In this post, Iโ€™d like to shed some light on my stance regarding #gradle , so I can direct people to it instead of debunking the same "reasoning" repeatedly. #ant #maven #buildtools #hype #java
Tweet media one
27
42
231
6
14
83
@simas_ch
Simon Martinelli
29 days
Amazing! The best way to use React with a Java Backend ๐Ÿ‘‡
@marcushellberg
Marcus Hellberg
29 days
Sneak peek of the next version of Hilla ๐Ÿคซ๐Ÿ‘€
7
13
71
6
10
81
@simas_ch
Simon Martinelli
1 year
Separating frontend and backend by technology and/or by developers makes development slower and you produce superfluous code.
20
6
81
@simas_ch
Simon Martinelli
1 year
Planning all sprints in advance, including estimation, is not agile!
9
8
81
@simas_ch
Simon Martinelli
11 months
So true: "Code living on separate branches is, by definition, not integrated." That's also why I do trunk-based development. What about you?
7
9
76
@simas_ch
Simon Martinelli
1 year
Be aware that Spring Data's PagingAndSortingRepository findAll method will execute a select plus a count query! If you have a slow query it will take twice the time!
3
8
77
@simas_ch
Simon Martinelli
1 year
Up and ready for the @JavaOOQ workshop @spring_io ! But first breakfast ๐Ÿ˜…
Tweet media one
3
3
77
@simas_ch
Simon Martinelli
1 year
Instead of using multi-module Maven projects, you should consider using the new Spring Modulith project when using Spring Boot:
5
11
75
@simas_ch
Simon Martinelli
9 months
Let the journey begin...
Tweet media one
18
2
76
@simas_ch
Simon Martinelli
4 months
As a small Christmas present, I would like to give you a template for a Vaadin application with jOOQ, PostgreSQL, Testcontainers, and Flyway. It's still a work in progress, but you can check it out on GitHub. Happy Holidays, everyone! ๐ŸŽ
2
18
75
@simas_ch
Simon Martinelli
10 months
@NiestrojRobert I don't use Interfaces as long as I only have one implementation.
4
2
74
@simas_ch
Simon Martinelli
2 months
Preparing my talk about CQRS in the small with Java Records. I love the ideas behind CQRS.
7
3
74
@simas_ch
Simon Martinelli
10 months
I don't understand the companies that want their employees to come into the office for a few days a week. Some activities work better when employees are in the same room (e.g., workshops or brainstorming sessions), but do they occur several days each week? I don't think so. Also,โ€ฆ
16
5
72
@simas_ch
Simon Martinelli
4 months
Aaaand my customer's application runs on Java 21 in production. Just done in 2023
6
5
70
@simas_ch
Simon Martinelli
1 year
As a Spring Boot user the one thing I'm jealous when comparing with Quarks is the dev mode. When will Spring Boot catch up? #springboot #quarkus
6
5
70
@simas_ch
Simon Martinelli
2 years
@TNMTechnologies None. Just microservices because they think it's modern
6
0
69
@simas_ch
Simon Martinelli
3 months
Just spotted in the wild ๐Ÿ˜ฑ
Tweet media one
13
4
70
@simas_ch
Simon Martinelli
3 months
Did you know that you can use @testcontainers with @springboot while running your app during development? No? Then check out my new video! And donโ€™t forget to subscribe to my channel. More interesting topics will follow soon
7
10
70
@simas_ch
Simon Martinelli
1 year
I hate these mapping frameworks like MapStruct. They are superfluous if you generate the DTOs directly from the query when reading and have a command model when writing.
20
4
69
@simas_ch
Simon Martinelli
10 months
That's very true ๐Ÿ‘‡ Sadly
@anttiviljami
viljami.io
10 months
My problem with the software dev profession in 2023
Tweet media one
82
456
3K
3
7
67
@simas_ch
Simon Martinelli
3 months
Migrating a project to new versions of the dependencies and suddenly, some tests no longer work. Looking at the tests, I can see that they are full of mocks and literally don't test anything. What would you do?
50
10
69
@simas_ch
Simon Martinelli
3 months
Those frameworks come to my mind, when thinking about web development with Java: Vaadin, GWT, Jakarta Faces (JSF), Spring MVC with Thymelaf, Apache Wicket. What did I miss?
48
3
68
@simas_ch
Simon Martinelli
3 years
Keep on mind, It's not possible to have no framework. If you don't use one you will implicitly create your own.
7
3
68
@simas_ch
Simon Martinelli
11 months
Did I already say that I don't like Lombok?
Tweet media one
9
8
68
@simas_ch
Simon Martinelli
11 months
I don't dislike Hibernate - but I definitely dislike how people use it! Stop mapping all possible relationships! You don't need it because you can use JOIN ... ON ... in JPQL:
7
13
66
@simas_ch
Simon Martinelli
4 months
list.get(0) -> list.getFirst()
11
5
67