José Adrián Alemán Rojas
Systems architecture, backend platforms, and technical leadership.
I'm a software engineer, technical lead, and architect with 25+ years building Java and Spring Boot backends, microservices, and cloud-native systems for enterprise and regulated domains. As founder of ITJobOpportunities, I ship the hiring platform, recruiter ATS, and Code Training Lab for technical screening across Costa Rica and LATAM. In parallel I build applied AI systems in production: RAG and product chat, LLM orchestration, software agents, and engineering skills for AI coding agents. I publish the architecture notes and sketchnotes behind that work at my-tech-profile.dev. I care most about dependable delivery, clear API and distributed-systems design, and teams that can extend what we ship with confidence.
Experience
Insights
Projects
Sketchnotes
Let's Connect
Insights
A Firewall for AI Agents: Enforce Authority at Every Tool Call
MCP talks. OWASP names the damage. ACS is the brake
MCP is a Host, a Client, and a Server. Stop Mixing Them Up
From ETL, ELT, and EtLT to Agents: What's Actually Changing in Data Engineering
How I would build Agentic RAG in LangChain4j
Agentic RAG is a graph with a grade, not a fancier prompt
Loop Engineering isn't Dead
Who disappears first with AI — frontend or backend?
What comes after microservices is an agent with a budget
Spring AI's AutoMemoryTools: Letting the Agent Decide What's Worth Keeping
What 99 insights on my-tech-profile.dev actually add up to
Build a production-ready AI PR reviewer in Java with LangChain4j
SuperPowers: A Skill Framework
Vibe Coding — Vulnerability as a Service
What Is Actually Cheaper for Orchestrating Coding Agents: APIs, Codex CLI, or Cursor CLI?
DB-Scheduler: A Persistent, Cluster-Friendly Scheduler for Java
API Mocking and Testing With Microcks
A Practical Guide to Java Virtual Threads With JMS Listeners on Java 25 and Spring Boot 4
Is n8n better than Spring AI or LangChain4j?
Securing MCP servers in agent workflows
Prompt Engineering Techniques with Spring AI: What Actually Works in Production Java
A Goal the Agent Cannot Fake
The Evolution Of Modern Software Architectures
Spring AI 2.0 vs LangChain4j 1.18: same research agents, different orchestration
Google Gemini with Spring AI 2.0
Agent2Agent on Spring Boot: one specialist, one orchestrator, no megaprompt
Use of LLMs to Learn Complex Topics
Building Resilient Data Pipelines: Practical Patterns That Survive Production
System Prompt Leakage vs. Prompt Injection: Two Different Attacks, Two Different Defenses
Create a AI Video from Codebase
SRE Best Practices For Production Alerting
LLM Integration with Apache Camel
This One Spring Data JPA Pattern Cleaned Up to 3 Years of Repository Debt
Microservices Architecture: 7 Engineering Decisions That Determine Success or Failure
Stop Giving Agents Your Feign Clients: Govern Tools Behind MCP
Application Startup Tracking In Spring Boot
What Spring AI 2.0 Actually Gives You for Transactional Agent Workflows
Don't write prompts, run loops
Thirty years of Java, and I've been there for most of it
Spring Boot 4.0 changed how HttpStatus prints
Deep Dive on Dokimos for AI Spec Testing in Java
Spec-Driven Development (Part 2)
ACK as a AI Start Response
Anti-Patters of Microservices Architecture
My honest take on the "1 million notifications" system design question
AGENTS.md Makes Your Java Codebase AI-Agent Ready AGENTS.md Makes Your Java Codebase AI-Agent Ready
DuckDB as an AI Data Layer
AI Integration to AI Engineering
Mastering Java Loops: Under the Hood, Memory Pitfalls, and High-Scale Optimizations
Stop Making Your AI Agent Re-Read Your Entire Codebase
Database Normalization, ACID, and Slowly Changing Dimensions
Spring Boot 4 vs Spring Boot 3
Ontology Knowledge Fusion: Why I Stopped Trusting Pure RAG for Job Fit
Getting Started With RabbitMQ in Spring Boot
Centralizing Chaos Monkey at Scale — What I Learned Building a Command Relay
Picking Between LangChain4j 1.15 and Spring AI 2.0
Why AI-Generated Code Is Making Regression Testing More Important
Deep dive on Spring Modulith
The New Senior Developer Job Description
Multi-Agent Orchestrator and Workers in Spring AI 2.0
AI-Native Engineering Culture
Deep Dive on Spring AI 2.0
RAG to Agentic RAG to Agent Memory
Bean Background Initialization in Spring Framework
When to use Rest API, WebSockets and grpc
Stop Copy-Pasting Agent Rules Into Every Repo
AI Broke Your Definition of Done
Chaos Engineering with Chaos Monkey
Self-Correcting Structured Output in Spring AI 2.0
GenAI Isn't Solving the Problem Most Development Teams Actually Have
Deep Dive in DokDeploy
Measure your RAG with RAGAS
Git Worktrees
Audit Trails Make Systems Easier to Trust
LLM Architecture Explained
Claude Fable 5 Changes the Model-Selection Question
Orchestrating Subagents in Spring AI: What I Learned Building It the Hard Way
AI Spec-Driven Development
What Actually Is an LLM?
Building Code Training Lab: a self-hosted multi-language coding platform
AL & ML Concepts Explained
MergeWatch + GitHub Actions: A Setup That Actually Made Our PR Reviews Useful
AI-Generated Code Testing Strategies
The Algorithmic Yes-Man But Why?
Dynamic Workflows With Opus 4.8
When Your AI Agent Fails Mid-Task: Temporal vs LangGraph vs Axon
The Different Kinds of RAG, and How I've Been Using LangChain4j to Build Them
Deep Dive on AI Harness Engineering
MartinLoop for AI Workflows
SurfSense vs Onyx: Two Very Different Bets on Personal AI
LlamaIndex RAG Pipelines
Building a Verification Layer That Catches Hallucinations
Learn Agentic AI: Here's Where I'd Actually Start
AI Governance and Safety: What I've Learned Building Systems That Actually Have to Be Accountable
Introduction to Github Actions
Filtering the Spam Before It Gets Into Your Vector Store
I Built a Small POC to Compare FreeBuff and CodeBuff
From APIs to Actions: Rethinking Back-End Design for Agents
The Hidden Bottlenecks That Break Microservices in Production
How I Got Our API Response Times Under 100ms With Redis and Spring Boot
Skills vs. Prompts
Building with OpenWA Java Whatsapp Bots
Context-Aware Authorization for AI Agents
Using Anthropic's Agent Skills in Spring AI
Caddy to the Rescue: Why I Stopped Fighting Nginx and Never Looked Back
Building a profesional branding for you
Software Design Pattens in Java
The Art of Token Frugality in Generative AI Applications
Spring Boot Observability with Open Telemetry and DynaTrace
Observability in Apache Camel Applications
Sketchnotes