Sign in

Ivan Milosavljević

@thejavaguy.bsky.social
80 followers 77 following 227 posts

I help Java devs write high quality software by using proper OOP, latest Java features, AI, and the best libraries so they can unlock new career opportunities

PostsRepliesMedia
Ivan Milosavljević @thejavaguy.bsky.social · 18/09/2026
Don't force dark mode to your users. Respect user's OS settings. Respect your user. #UI #UX #SeniorDeveloper #Rant
011
Ivan Milosavljević @thejavaguy.bsky.social · 06/08/2026
Save your token budget in Claude Code by understanding skillOverrides ➡️ thejavaguy.org/posts/027-un... #ClaudeCode #AI #SeniorDeveloper #Blog
thejavaguy.org
Understanding skillOverrides in Claude Code
What skillOverrides controls, its four visibility states, and why it touches your own skills but not plugin skills
130
Ivan Milosavljević @thejavaguy.bsky.social · 04/08/2026
What if you could make your Java apps more reliable and resilient? What if they could survive system crashes and just continue executing? It's not a dream anymore. Find out how @temporal.io helps you in writing crash-proof Java applications in this interview with Tom Wheeler ➡️ youtu.be/Wv_iD0k7CwQ
youtu.be
Crash-proof Java apps with Temporal - Interview with Tom Wheeler [08.07.2026]
YouTube video by TheJavaGuy
102
Ivan Milosavljević @thejavaguy.bsky.social · 31/07/2026
You deserve more control over Claude Code plugins. This guide covers the 3 tasks you will actually reach for: turning a plugin on, turning one off, and opting out of a plugin your project forces on without touching the shared config. #ClaudeCode #AI #SeniorDeveloper thejavaguy.org/posts/026-en...
thejavaguy.org
How to Enable and Disable Plugins with enabledPlugins in Claude Code
Turn a plugin on or off, and opt out of a project-enabled plugin on your own machine, using the enabledPlugins setting
000
Ivan Milosavljević @thejavaguy.bsky.social · 30/07/2026
💡 Claude Code tip: update all your installed marketplaces with just one command. It saves time and you're sure you run the latest versions of all the plugins. #ClaudeCode #AI #SeniorDeveloper
claude plugin marketplace update
100
Ivan Milosavljević @thejavaguy.bsky.social · 27/07/2026
📣 #Java developers from Munich - JUG Munich invites you to attend 2 talks today: 1. Nichtdeterminismus deterministisch determinieren - Testen von LLMs mit Rage4j by Aamin Dev 2. Supply-Chain-Security in Java-Anwendungen by Markus Herhoffer CTO of EXP Software GmbH #JUG #JUGM #TechTalk #AI #LLM
100
Ivan Milosavljević @thejavaguy.bsky.social · 24/07/2026
Claude Code - what the enabledPlugins setting is, how its three states work, and why project scope can override your user scope thejavaguy.org/posts/025-un... #ClaudeCode #AI #Explanation #SeniorDeveloper
thejavaguy.org
Understanding enabledPlugins in Claude Code
What the enabledPlugins setting is, how its three states work, and why project scope can override your user scope
000
Ivan Milosavljević @thejavaguy.bsky.social · 22/07/2026
Do you write crash-proof #Java applications? www.youtube.com/watch?v=xL1u...
youtube.com
Create crash-proof Java applications with Temporal
YouTube video by TheJavaGuy
021
Ivan Milosavljević @thejavaguy.bsky.social · 17/07/2026
Time to upgrade - IntelliJ IDEA 2026.2 is out! Which new feature you'd use the most? #Java #SeniorDeveloper #IntelliJIDEA #IDE
IntelliJ IDEA 2026.2 new features
021
Ivan Milosavljević @thejavaguy.bsky.social · 16/07/2026
Imagine a world in which your Java application crashes and then continues execution exactly from the moment it stopped. Imagine a world where hardware fails, but your app soon runs further - not from the beginning but starting from the function which didn't complete last time.
100
Ivan Milosavljević @thejavaguy.bsky.social · 13/07/2026
Talk "Automatisierte Migrationen und Refactorings mit OpenRewrite" by Johannes Jank is now live on JUGM YoutTube channel ▶️ youtu.be/eWX8aWmjspw #java #jugm #techtalk #seniordeveloper
youtu.be
Automatisierte Migrationen und Refactorings mit OpenRewrite by Johannes Jank [11.05.2026]
YouTube video by Java User Group München
131
Ivan Milosavljević @thejavaguy.bsky.social · 12/07/2026
📢Temporal CLI 1.8.0 is out 🎉 Do you want crash-proof execution of your #Java apps? Then check it out (link below) 👇 @temporal.io
121
Ivan Milosavljević @thejavaguy.bsky.social · 07/07/2026
I'm going to @wearedevelopers.bsky.social World Congress in #Berlin this week (Thursday and Friday). If you'll be there too let's connect/talk/exchange thoughts. #java #seniordeveloper #techtalk #networking
011
Ivan Milosavljević @thejavaguy.bsky.social · 30/06/2026
Better late than never - the recording is available on JUGM YouTube channel ▶️ youtu.be/thcTac6R1BY
youtu.be
The Evolution of Design Patterns in the Age of AI by Miro Wengner [16.03.2026]
YouTube video by Java User Group München
010
Ivan Milosavljević @thejavaguy.bsky.social · 21/05/2026
Rule: a class has exactly ONE primary constructor. All others delegate to it via this(...). That's it. That's the post. #Java #OOP #SeniorDeveloper
131
Ivan Milosavljević @thejavaguy.bsky.social · 20/05/2026
🔥 Hot take: if you live in the terminal and don't know Ctrl+O, you're leaving speed on the table. ▶️ youtu.be/W9tqZ6Nb8O4 #BuildInPublic #Experiment #SeniorDeveloper #zsh #bash #shell #productivity
youtu.be
130
Ivan Milosavljević @thejavaguy.bsky.social · 11/05/2026
Excellent talk on #OpenRewrite by Johannes Jank tonight. In just 40 mins we've learned that: - OpenRewrite can automatically migrate codebases from #SpringBoot 3 to SpringBoot 4, from #Jackson 2 to Jackson 3, from #Hamcrest to #AssertJ… - It does so by applying recipes (🧵 1/2)
110
Ivan Milosavljević @thejavaguy.bsky.social · 10/05/2026
Most devs just use printenv. There's a better way. youtu.be/9tAs9HT9-Pk #BuildInPublic #Experiment #SeniorDeveloper #zsh #bash #shell #productivity
youtu.be
How to show, sort, filter and count env variables in zsh and bash (MacOS, Linux)
YouTube video by TheJavaGuy
130
Ivan Milosavljević @thejavaguy.bsky.social · 07/05/2026
📣 Upcoming #Java User Group München talk "Automatisierte Migrationen und Refactorings mit OpenRewrite" 🕖 on Monday 11.05 at 19:00h, 🏠 Hotel Eden-Wolff, Arnulfstraße 4, 80335 München. Our speaker will be Johannes Jank. RSVP 👉 www.meetup.com/java-user-gr... #techtalk #javausergroup #seniordeveloper
meetup.com
Automatisierte Migrationen und Refactorings mit OpenRewrite, Mon, May 11, 2026, 7:00 PM | Meetup
Please subscribe to our mailinglist: mailinglist-subscribe@jugm.de Die Sprache des Vortrags folgt der Ankündigungssprache. The language of the lecture follows the announce
111
Ivan Milosavljević @thejavaguy.bsky.social · 06/05/2026
The more guardrails you put in, the better the output from your #AI agent will be. Guardrails can take many forms: types, constants, immutability, unit tests, code formatting and linting, compiling, skills/MCPs to access DevTools or DOM… Take your time to set them up; they will pay off handsomely 💰
000
Ivan Milosavljević @thejavaguy.bsky.social · 05/05/2026
Build in public experiment progress: - 1/365 YouTube videos - 0/52 digital products to sell - $0/$365 in yearly passive income #BuildInPublic #Experiment #SeniorDeveloper
220
Ivan Milosavljević @thejavaguy.bsky.social · 04/05/2026
You set shell aliases. Then forgot them. Then set duplicates. This fixes that. youtu.be/6pHqucdlHK0 #BuildInPublic #Experiment #SeniorDeveloper #zsh #bash #shell #productivity
youtu.be
How to see, sort and filter aliases in zsh and bash (MacOS, Linux)
YouTube video by TheJavaGuy
031
Ivan Milosavljević @thejavaguy.bsky.social · 30/04/2026
Most devs install every Claude Code plugin to user scope. That's a mistake on team projects. Here's the 30-second fix: thejavaguy.org/posts/023-cl... #ClaudeCode #AI #SeniorDeveloper
thejavaguy.org
Claude Code: Add Plugin to a Project
Why you should know when to add a plugin to a project VS when to add it to your user scope
000
Ivan Milosavljević @thejavaguy.bsky.social · 30/04/2026
Most devs install every Claude Code plugin to user scope. That's a mistake on team projects. Here's the 30-second fix: thejavaguy.org/posts/023-cl... #ClaudeCode #AI #SeniorDeveloper
thejavaguy.org
Claude Code: Add Plugin to a Project
Why you should know when to add a plugin to a project VS when to add it to your user scope
000
Ivan Milosavljević @thejavaguy.bsky.social · 28/04/2026
It's time to start build in public experiment 🧪. Level 1 goals: - publish 365 YouTube videos - create 52 digital products to sell - earn $365 in yearly passive income I'll write about every increment to these goals here but also on LinkedIn and X #BuildInPublic #Experiment #AI #SeniorDeveloper
linkedin.com
150
Ivan Milosavljević @thejavaguy.bsky.social · 22/04/2026
💡 Claude Code tip: A lot of people are dissatisfied with their Opus 4.7 experience. Luckily there's a way to switch back to 4.6 either permanently or temporarily. To default back to Opus 4.6, add this to ~/.claude/settings.json: "model": "claude-opus-4-6" (🧵 1/2)
110
Ivan Milosavljević @thejavaguy.bsky.social · 21/04/2026
AI changed the rules of the game. The important mindset shift stems from the fact that execution became cheap. This has two overarching consequences: 1) You can run a lot of experiments in a short time 2) Software that in the past wasn't economically feasible to build now is (🧵 1/2)
210
Ivan Milosavljević @thejavaguy.bsky.social · 06/04/2026
And now for something completely different #buildinpublic #experiment #seniordeveloper
030
Ivan Milosavljević @thejavaguy.bsky.social · 16/03/2026
🎉 The recording is now live on the JUGM YouTube channel ▶️ youtu.be/CvSMhhRse3Q
youtu.be
Aus langsam wird schnell: Java-Optimierung bis knapp unter Lichtgesc… by Daniel Schwarz [09.02.2026]
YouTube video by Java User Group München
001
Ivan Milosavljević @thejavaguy.bsky.social · 14/03/2026
Every complex system that works has inevitably evolved from a simple system that works. This remains true even in the age of AI. #ai #seniordeveloper #softwaredevelopment
000
Ivan Milosavljević @thejavaguy.bsky.social · 13/03/2026
📣 Upcoming #Java User Group München talk "The Evolution of Design Patterns in the Age of AI" 🕖 on Monday 16.03 at 19:00h, 🏠 Hotel Eden-Wolff, Arnulfstraße 4, 80335 München. Our speaker will be Miro Wengner. RSVP 👉 www.meetup.com/java-user-gr... #techtalk #javausergroup #seniordeveloper
meetup.com
The Evolution of Design Patterns in the Age of AI, Mon, Mar 16, 2026, 7:00 PM | Meetup
Please subscribe to our mailinglist: mailinglist-subscribe@jugm.de Die Sprache des Vortrags folgt der Ankündigungssprache. The language of the lecture follows the announce
121
Ivan Milosavljević @thejavaguy.bsky.social · 11/03/2026
💡 Claude Code tip: You can use /simplify skill at any time on any file. You don't have to wait until the last moment to simplify the PR. Just type `Use /simplify on @./MyFile.java` and watch your code becoming better in real time 🎉 #claudecode #ai #seniordeveloper
000
Ivan Milosavljević @thejavaguy.bsky.social · 03/03/2026
I hope y'all have good microphones 🎙️ #claudecode #ai #seniordeveloper x.com/trq212/statu...
x.com
000
Ivan Milosavljević @thejavaguy.bsky.social · 28/02/2026
Claude Code 2.1.63 has a new awesome built-in command /simplify It reviews your changed code over three dimensions: reuse (duplicated logic, extractable patterns), quality (readability, naming, structure), efficiency (unnecessary complexity, redundant ops). Then it automatically fixes those issues!
221
Ivan Milosavljević @thejavaguy.bsky.social · 11/02/2026
🎉 The recording of the talk "Design Smarter Grafana Dashboards: A Few Simple Principles That Work" by Dmytro Patserkovskyi has been published on JUG Munich YouTube channel ▶️ youtu.be/-Xjc5MUBPoE #java #techtalk #grafana #jugm
youtu.be
Design Smarter Grafana Dashboards: Simple Principles That Work by Dmytro Patserkovskyi [02.02.2026]
YouTube video by Java User Group München
011
Ivan Milosavljević @thejavaguy.bsky.social · 09/02/2026
Wow! What a talk it was by Daniel Schwarz about multitude of ways to make your #Java apps faster. The #JUG Munich crowd asked a lot of tough questions which helped us to better understand the intricacies of #performance optimization. The recording will be available on JUGM YouTube channel soon.
011
Ivan Milosavljević @thejavaguy.bsky.social · 06/02/2026
📣 Upcoming #Java User Group München talk "Java-Optimierung bis knapp unter Lichtgeschwindigkeit" 🕖 on Monday 09.02 at 19:00h, 🏠 Hotel Eden-Wolff, Arnulfstraße 4, 80335 München. Our speaker will be Daniel Schwarz. RSVP 👉 www.meetup.com/java-user-gr... #techtalk #javausergroup #seniordeveloper
meetup.com
Aus langsam wird schnell: Java-Optimierung bis knapp unter Lichtgeschwindigkeit, Mon, Feb 9, 2026, 7:00 PM | Meetup
Please subscribe to our mailinglist: mailinglist-subscribe@jugm.de Die Sprache des Vortrags folgt der Ankündigungssprache. The language of the lecture follows the announce
111
Ivan Milosavljević @thejavaguy.bsky.social · 19/01/2026
💡#Maven tip 👉 Make your builds more reliable by using Maven wrapper instead of a "plain" Maven. That way every developer working on your project will use the same Maven version and you'll eliminate one cause of non-repeatable builds. 👇
110
Ivan Milosavljević @thejavaguy.bsky.social · 13/01/2026
What do you think the most important role of a class is? And why object-oriented appshave two phases of execution? The answer might surprise you 👉 thejavaguy.org/posts/021-th... #java #seniordeveloper #oop #blatantselfpromotion
thejavaguy.org
The Main Role of a Class
Why senior developers think differently about classes
111
Ivan Milosavljević @thejavaguy.bsky.social · 07/01/2026
💡 #ClaudeCode tip 👉 Rules are a stunning feature which will make your CLAUDE.md manageable. Break it down into focused files, apply rules conditionally with glob patterns, and organize them better. For super deep dive read 👉 claude-blog.setec.rs/blog/claude-... #java #ai #tip #seniordeveloper
claude.md
Claude Code overview - Claude Code Docs
Learn about Claude Code, Anthropic's agentic coding tool that lives in your terminal and helps you turn ideas into code faster than ever before.
111
Ivan Milosavljević @thejavaguy.bsky.social · 05/01/2026
💡#Maven tip 👉 Does it get on your nerves when you see compiler warnings but the build passes? Simply add -Werror to compilerArgs and then run ./mvnw clean compile. You'll see BUILD FAILURE which now you must fix. Your code will thank you 😁 #java #tip #seniordeveloper
272
Ivan Milosavljević @thejavaguy.bsky.social · 03/01/2026
Watch this video from @anthropicai.bsky.social developers to see why skills are the future. Then go and build your first skill in Claude Code www.youtube.com/watch?v=CEvI... #ai #seniordeveloper
youtube.com
Don't Build Agents, Build Skills Instead – Barry Zhang & Mahesh Murag, Anthropic
YouTube video by AI Engineer
000
Ivan Milosavljević @thejavaguy.bsky.social · 26/12/2025
💡#Maven tip 👉 Add -Xlint:all to compilerArgs to enable all compiler warnings. Then run ./mvnw clean compile and Java compiler will print all the warnings in your codebase. #java #tip #seniordeveloper
110
Ivan Milosavljević @thejavaguy.bsky.social · 21/12/2025
💡 #Maven tip 👉 Add -Xlint:deprecated and -Xlint:unchecked to compilerArgs. Every time you compile you'll get warnings if you use deprecated APIs or unchecked conversion (say, from List to List<String>). Then fix them all! #java #tip #seniordeveloper
141
Ivan Milosavljević @thejavaguy.bsky.social · 16/12/2025
#Java developers free your calendars! jChampionsConference 2026 virtually everywhere online 📅 Thur 1/22/2026, Fri 1/23/2026, Mon 1/26/2026, and Tues 1/27/2026 jchampionsconf.com #conference #seniordeveloper
jchampionsconf.com
JChampions Conference
Conference organized by Java Champions and featuring Java Champions in the presentations.
021
Ivan Milosavljević @thejavaguy.bsky.social · 15/12/2025
You use homebrew and want to quickly upgrade all your formulas, casks, and homebrew itself and to delete its old cached files? Run brew update && brew upgrade && brew cleanup --prune=30 and enjoy 🎉 #homebrew #productivity #tip #seniordeveloper
010
Ivan Milosavljević @thejavaguy.bsky.social · 10/12/2025
💡 Type .. in IntelliJ IDEA 2025.3 and you'll see a popup with useful actions. Choose one with up or down arrows and execute with Enter. Try with variables, methods, classes, it works everywhere! #java #intellij #tip #productivity #seniordeveloper
021
Ivan Milosavljević @thejavaguy.bsky.social · 04/12/2025
Want to quickly add a line to your CLAUDE.md directly from the Claude Code? Just type # your-custom-rule and CC will add it for you and make that new rule immediately available to the context 💪 #claudecode #tip #ai #seniordeveloper
010
Ivan Milosavljević @thejavaguy.bsky.social · 02/12/2025
Did you know that Claude Code has bash mode? Just type ! your-bash-command and it will execute the command and put the output directly into the context. Deterministic invocation and no tokens wasted. Unfortunately tab-style autocomplete is not there yet. #claudecode #ai #tip #seniordeveloper
000
Ivan Milosavljević @thejavaguy.bsky.social · 28/11/2025
Don't use Lombok. It's just not worth of additional dependency, mandatory gradle plugin, mandatory IDE plugin, prolonged build times… Use #Java records, add logger explicitly, if you absolutely must then use IDE to create getters and setters (but usually you don't have to and you shouldn't anyway!)
041