Pinned Tweet
I can't express with enough words how happy I'm to join the amazing group of @Java_Champions!

I need to say thank you to the global @java community for being so good to me since the day one.

Thank you also to my fellows from @soujava: it wouldn't be possible without you!

#java
Congratulations to new Java Champion @elderjava! apex.oracle.com/pls/apex/aces/…
18
10
156
Don't study programming anymore. Don't study software engineering. Just study AI.

That's by far the worst career advice you can get today if you're a software engineer or want to be one.

A lot of people think that because AI took over the code, software engineering is solved. And unfortunately even some engineers haven't figured this out yet.

Code is a relevant part. But it's this much of software engineering.

Software engineering means understanding some product, often a lot of product. Understanding your user. Understanding the context that product lives in. Understanding how your application interacts with every other component around it: the architecture, the components it talks to, the protocols involved.

Software engineering means pulling out of the user, often with forceps, what they actually want.

Someone might say:
- "But that's the product manager's job."

Right. And the product manager still has to pass it to the engineer.

So picture a game of telephone from the user to the product manager to the engineer. You still have to pull it out of that person and turn it into something actually usable, a real product, something that exists.

If you really want to fail as a software engineer, follow that advice.
1
1
10
295
I don't know about you, but I've cursed at a few AIs for giving me wrong answers. And cursing is kind of an idiotic move. I know because I've done it.

Why idiotic? Because it isn't lack of technical capability or lack of information. It's hallucination. And from the model's point of view, hallucination isn't exactly an error. The model generates that answer because it's plausible. It does probabilistic processing and, probabilistically, that answer is plausible, even if it's wrong.

And the funny part is, every time it happened to me, I'd think:
- "Man, I already told it that's not it. I already wrote what to do."

And it keeps drifting.

A lot of people try to fix this in the prompt. For simple cases, that helps. In a complex task or a big, complex codebase, the prompt alone helps very little.

So there are two ways.

First, the basic one, for simple and medium cases: a structure of context files. In your AGENTS.md or CLAUDE.md you point to where the context for this project lives. What it is, what it does, conventions. Nothing super evolved.

Second, for big projects and big contexts, code or not: RAG, Retrieval Augmented Generation. It takes those documents, maybe the same context files, and vectorizes them. Turns that context into a vector space, basically a bunch of numbers we can't read. That becomes part of the agent's context when it calls the model, much more refined, much more pre-chewed. And the model tends to give much more precise answers.

So instead of cursing at your agent, give it a file structure that improves the context, or for more complex scenarios, think about a RAG.
3
0
3
220
I started out very skeptical about AI. ChatGPT launched at the end of 2022, 2023 was all hype, and I didn't care. People close to me were saying:
- "Look how cool this is."

And I was like:
- "I don't know, I don't see the value yet."

Mid 2023, Yara Mascarenhas from TDC sent me a long audio, five minutes, about launching what is now TDC Summit AI. She wanted my opinion. I told her it was too niche, too specific. Good thing she didn't listen to me. The event is gigantic today.

What changed for me was October 2023. I wasn't there, but at Devoxx Belgium they presented LangChain4j, the big engine for integrating Java with AI models. That's when I connected the dots. I can write code with what I already know of Java and connect it to an AI model. Back then nobody talked much about generating code with AI, but I got it: I can take everything I've done in almost 30 years and use AI to multiply it.

I checked my history. I only created my ChatGPT subscription in February 2024. A few months later I spoke at the first TDC AI summit about LangChain4j. Once I connected things, I went all in.

For a long time I felt I wasn't an early adopter. Then I saw a chart of AI adoption in the world. People using AI agents to build things are a fraction of a fraction of a fraction. If you're starting with agents now, you're an early adopter for humanity.

You don't have to be first. And you don't have to adopt something if you don't see value in it, as long as you actually went and checked. Once you see the value and don't go after it, that's when you're dropping the ball.

A while back I ran a workshop with a group of entrepreneurs and most were still only using chat. If you're just getting started, you're not behind.
2
0
2
449
Elder Moraes retweeted
Novo AI-JAIL 3 no ar!

aijail.io/configure/

Não tem como ter certeza de tudo que um agente vai fazer, ele tem acesso ao seu PC inteiro. Então, melhor jogar ele dentro de um PRISÃO e controlar exatamente o que ele pode ou não pode acessar.

Antes precisa configurar isso com do. Agora eu fiz um TUI pra deixar mais intuitivo, especialmente pra quem está usando pela primeira vez.

Além disso também adicionei hooks de integração, pra funcionar melhor integrado ao AI-MEMORY ou qualquer outra ferramenta que quiserem integrar.
15
24
380
11,230
A while back Matt Pocock interviewed Uncle Bob, the author of Clean Code and Clean Architecture.

Uncle Bob had drawn a lot of attention for posting that he doesn't read the code generated by his AI agents. Reactions were extreme. On one side, a lot of people saying:
- "That's right, no need to read it."

On the other:
- "Are you crazy? The clean code guy doesn't read code anymore?"

What caught my attention: he's taking everything that was good practice when we wrote code by hand and applying it as rules for the agents. Rules in the sense of actually limiting the agent. Hard, deterministic constraints. Not the "just ask nicely and the AI does it" people talk about. He puts the agent inside a harness.

Then he said something like this: with all that harness, a routine the agent would write in 5 to 10 minutes now takes an hour.

Maybe you're thinking:
- "So the agent is slowing him down?"

And then he adds:
- "That same code is still two to five times faster than I'd be."

He gives up a big chunk of the agent's raw speed to add constraints, and still gets two to five times his human productivity. Mathematically that makes total sense to me. And he still reads by sampling, picks random pieces to check it's not going off the rails.

We can't chase productivity for productivity's sake. For a tool only I use, something that won't face the internet, I don't even care what the agent is writing.

When it's open source, for a client, for my students, anything other people will touch, I want all the care, and his approach made a lot of sense to me.
0
0
6
472
One more for the series of nonsense said in times of AI: SaaS is dead.

This isn't for you if you built an ERP or a CRM for your company because what's on the market didn't satisfy you or was too expensive. That's fine, you should do that. If you pulled it off, be happy with your CRM.

But it's very naive to think that reshapes the whole SaaS market. A market worth hundreds of billions of dollars a year.

Take one of the biggest SaaS companies on the planet: SAP. You really think me building my little CRM for my tiny business makes me part of a trend that takes down SAP? It makes no sense.

And look at SAP. Partnership with Anthropic. Partnership with OpenAI. I'm not sure, but I imagine with NVIDIA too. They're plugged into every big AI player right now.

So while you're doing something super cool on your local platform, you think they didn't already have that tool you've been using for months? Long before the market? And that they aren't building into their own products the things that will keep them alive for more decades?

Don't let the AI dazzle make you think you found the pot of gold at the end of the rainbow.

What worries me most is people falling for the con of whoever says the technology is going to die, when the market is just growing. Demands are growing, a lot of it because of AI. People now see they can build things they'd never build out of laziness, and now we need more people building, more tools and more companies taking part.
3
0
1
252
Maybe you've felt lost about what to choose in tech. Programming or infrastructure? Backend or frontend? This language or that one?

Those are legitimate doubts. And what causes that confusion usually isn't the lack of information. It's the excess. We're drowning in feeds, shorts, fast information. And it gives you countless possibilities that are all viable, all make sense.

So what do you do?

The framework that works for me is looking at people who got where I want to get. But careful, because we usually look only at the surface. That person made a lot of money, I want to make a lot of money, so I'll listen to them.

The question that has to come first: do you want to do what that person does?

Someone made a fortune opening supermarkets and butcher shops. Great, admirable, not what I want to do. First filter: people in my field. That one is very successful, but in infrastructure. Let me look for software engineers, which is my case.

That gives you direction on what you consume.

Every now and then I clean up who I follow. Sometimes I unfollow people whose content I even like, because it isn't helping me get closer to where I want to go.

If you're confused about decisions and paths, select better who you're listening to and following. You'll probably clear a lot of garbage out of the way too.
0
0
0
249
I see a lot of people still using AI chat when they could be using an agent. And because of one simple change, they're getting much worse answers than they could.

AI went public through chat. ChatGPT, end of 2022. I like to say OpenAI threw AI into the fan. Nobody had ever seen anything like it.

In 2025 the agent wave came, and at the end of 2025, early 2026, models took a jump in intelligence and agents completely changed the game.

Here's what I keep seeing. I ask a dumb question in a chat, I get an answer. I take the same question to the agent of the same AI, Claude, Codex, GitHub Copilot, whichever, and the answer gets absurdly better. More detail, more depth, more possibilities.

Why? Function calling. Tool calling.

In chat, the tools are very limited. Internet access, sometimes file or PDF generation. In agent mode it has access to many more tools. Depending on what you ask, it writes code on the spot to help it answer you. That changes everything.

A while back I ran a workshop with a group of entrepreneurs. I surveyed them first and most were still on chat. One of my main goals was to get them out of chat mode and into agent mode.

On your computer it's simple. Install Claude Code or the ChatGPT desktop app, switch the tab, point it at an empty directory so if it deletes something it won't hurt you, and ask your question from there. Then compare.
3
0
2
267
That old system of yours, the one many call legacy, isn't a barrier to using AI. It's probably one of the biggest opportunities you have to use it.

The longer you go without upgrading, migrating, refactoring, the harder it gets. Bringing an app from Java 8 to Java 25 is much harder than going 8 to 9, 9 to 10, 10 to 11. In the Java world, if you upgrade every version, there's usually almost no work at all.

Why is the big jump hard? Lots of refactoring, lots of testing, lots of exploration, issues, external dependencies. So people and companies give up: it's running, it's working, leave it alone.

Now you have a tool that can explore endlessly, as long as you can pay for it. It doesn't get tired, doesn't sleep, isn't ashamed of getting it wrong and fixing its own mistake. And you can keep it minimally safe: work on a branch, in a worktree, without deleting everything.

And you don't upgrade because running on something newer is cool. Newer versions give you more integrations, more security patches, more tools in the ecosystem. In Java, often just switching the JVM gives you a performance gain without rewriting a line of code.

I'm doing this myself right now with several of my blogs, sites and pages that run my business on old platforms. I'd know how to do it, but I'd never propose doing it, it's a hell of a job. I started with an audio conversation with an AI, it interviewed me, proposed things. I wrote the spec, the implementation plan, it broke in the middle, we fixed it, and it's moving.

That difficulty dropped a lot. Look at what you have sitting on an old version and never migrated because it was too hard.
1
0
6
340
A lot of people are worried AI will take their job. That's not the biggest risk. The biggest risk is AI taking our thinking. Stealing our ability to think.

A while back someone asked me the dumbest thing I'd ever heard about AI. I told them it was someone I saw claiming:

- "You just have to ask nicely and the AI does it right."

I even joked:

- "It's like your mom or your grandma."

You ask with a bit of charm and they do what you asked.

Then someone commented, and they were not joking:

- "That's true, the AI doesn't know anything, you're the one who knows."

What's behind that? Do you think you know more than AI? It's not just me. You know much more than AI. Everyone does.

- "No way, AI has infinite content."

Walk into a library. That content is infinite too. Put the whole library in a database, still infinite. And you still know more.

A friend told me:

- "There's no intelligence in artificial intelligence."

It's probabilistic. Incredible, powerful, probabilistic so well done it looks intelligent. It isn't.

People who really know this stuff keep saying AI made creating things so easy that now the question is what to create. AI will give you endless ideas. Ask it to give you ideas all day and it will. But the decision of what's worth building is still mine and yours. That's the intelligence.

Knowing isn't the amount of data in our brains or in the AI's infinite storage. It's turning that into creative things, things that solve someone's problem, things probabilistic analysis will never get right.

People are creating infinite stuff on the internet with AI. How much of it is relevant? A tiny bit. And that tiny bit is worth a lot of money.

So don't outsource to AI what only you have and it doesn't: intelligence.
0
0
1
232
The hardest thing in any software engineering project, believe it or not, isn't technical.

It isn't learning architecture, knowing design patterns, how to distribute the components, the load of that application in production, security. Those things are extremely important, obviously, more or less complex depending on the project. But they're not the hardest thing you'll deal with.

The hardest thing is knowing what's worth doing and what isn't.

Any medium or large project has infinite demands. I worked for years in small companies too, and the demands were infinite. I left, and the demands stayed infinite. I still talk to people there, same project, same infinite demands. A friend of mine calls this the infinite game: career, the software industry, work in general.

So if the big question is defining what needs to be done, we need to dedicate ourselves to choosing our next battle. Our next demand. What we do next.

That's also why, a while back, I decided to start a series of 365 videos. 27 years as a developer, 10 creating content, and the structures I built to condense ideas started restricting me more than helping. I wanted to just open the camera and talk, and think out loud while I record.
2
3
17
897
Elder Moraes retweeted
Replying to @poutine_ca
@poutine_ca @elderjava So wrong in so many ways. Have you ever worked with Java? Even 10 years ago there was already JDK 8 which has been released in 2014 and generics have been introduced in JDK5 (2004)..
2
1
2
126
Maybe this happened to you. You're the one who delivers the most on the team, ships the most to production, solves everything. And when recognition comes, someone else gets it.

We usually look for someone to blame. My boss doesn't see me. That guy is a suck-up. The company looks at the wrong things.

After almost three decades, and going through this myself a few times, I realized: it wasn't exactly my fault, in the sense that I did something wrong. I failed to give visibility to my work.

- So I have to talk every time I do something?
- Yes, you do.

The company is looking at numbers, deliveries, projects. Not necessarily who did it, how, why that decision was right. You're responsible for giving visibility to your work.

In my mentorship conversations people worry: people will think I'm showing off. It depends on how you do it. Send a periodic report. Friday, macro topics of what you delivered this week, on Slack, email, whatever, to your lead, your manager. Then monthly highlights. Quarter, semester, year. No pull request details. Highlights.

People are taking care of their own lives. Usually not out of malice. Everyone is busy.

And if it doesn't help you where you are, it helps in your next interview. The recruiter asks for a cool project you did this year, and you remember, because you reported all of them.

Same when you negotiate a raise. "Because I've been here a long time" is a terrible argument. "I deserve this raise because in the last year..." and then your highlights.
0
0
2
421
Elder Moraes retweeted
Replying to @agrosner
@agrosner @elderjava They are planning on it. There is JEP 539 already in preview which will pave java to this JEP openjdk.org/jeps/8303099
0
1
1
94
Elder Moraes retweeted
amazing machine learning library for java

deepnetts.com
2
43
265
18,768
There are two kinds of people who'll tell you that, because of AI, we don't need software developers anymore.

The first kind I understand: non-technical people. For a long time they had to rely on developers, consultancies, and it was hard, expensive, lots of rework, sometimes the idea never ran. Now they open an AI and get their idea off the ground. And AI really is a powerful tool for that.

They look a lot like the small business owner who ran everything in an Excel spreadsheet. Happy, all the inputs, outputs, suppliers, all there. Then the business grew. More clients, an integration file to send, a supplier that only had an API. And at some point they hired someone to turn that into a real system. That barrier dropped a lot today. But the moment still comes.

The second kind is technical people. And that's where I've seen pure dishonesty. Years in the industry, big title at a big company, and they tell you software engineering is over, SaaS is dead, just ask the AI the right way.

Just ask nicely. For a non-deterministic thing where the question isn't if it'll get it wrong, but when.

People point at the engineers building Claude Code and Codex. Those are some of the best engineers on the planet, and their tools are surrounded by other tools, classifiers, guardrails, so the agent does what it has to do and doesn't do what it shouldn't.

If it were that simple, the big AI labs, with infinite tokens and the best models in-house, wouldn't be paying fortunes to hire the best software engineers in the world. Go look at their careers pages.

Next time someone tells you a profession died, look at who's saying it and what they gain from it.
13
0
11
569
Elder Moraes retweeted
Replying to @elderjava
@elderjava Nothing to add here... 👏
0
1
2
170
Looking forward to meeting you all at @devnexus 2027!
A malicious instruction hidden in a document or tool result could trick your AI agent into taking actions it was never meant to take. 🔐

At #Devnexus2027, @elderjava from @IBM is putting AI agent security to the test, showing how to build defenses with LangChain4j and coding ls.

🔗 devnexus.com/events/break-y…

🎟️ Get tickets: devnexus.com

#Java #AISecurity #PromptInjection #TechEvents #AI #Security
0
0
0
235
Looking forward to being at @devnexus 2027!

See you there?!
AI agents can be tricked into taking actions they were never meant to take. 🔐

At #Devnexus2027, @elderjava from @IBM shows how malicious instructions can hijack agents and how to build defenses with LangChain4j and coding agent permissions.

🔗 devnexus.com/events/break-y…
0
0
2
253
The weakest point of any AI today is exactly what it was born to do.

LLM means Large Language Model. These models were trained on overwhelming amounts of written data to express themselves through language. And that's their weakest point. AI text makes sense, it's grammatically correct, and it's weird. It clearly came from a machine.

I've been trying to write with AI for a long time. It's really hard to make it sound minimally acceptable.

A while ago I heard a podcast with a product manager at Anthropic who explained why, at least for their models. They focused training on code. When they saw most of what an AI does involves writing code first, they went all in on that. Look at its reasoning: for almost anything you ask, it writes a script.

Then I heard Dario Amodei, Anthropic's CEO, say he doesn't use their models to write. He uses them to research, to explore ideas. When it's time to write, he writes. The guy who could just say "I use it for everything."

What changed it for me: a while back I spoke at an event and recorded my talk with my own mic. The next day I took the same process I'd been using to write with AI and fed it the transcript of my talk. By far the best article I've ever made with AI. Long, detailed, in about an hour. Not because I write better. Because it had my style.

Since then I record every topic I want to write about and feed that into the process.

If you use AI to write, content, emails, specs, start with your actual voice. Transcribe your audio and give it that.
0
0
5
446