~/raúl
All services

Backend development with Java and Spring Boot

Microservices that hold up in production, not just in the demo.

I have been building Java backends since 2015 and designing microservice architectures from scratch since 2017, for clients including Orange, Audatex, BASF and Pulselive. I was tech lead at four of them, which means I did not just write the code — I had to defend the decisions and live with them years later.

My approach is not to apply patterns for their own sake. Event Sourcing and CQRS solve specific problems and add real complexity: if your case does not need them, I will tell you. What is not negotiable is test coverage — at Amaris I kept services above 90% — and that the system stays observable when something breaks at three in the morning.

[01]

What's included

Architecture design

Service boundaries, contracts between them, data strategy and a migration plan if you are coming from a monolith.

Well-documented REST APIs

Clear contracts, versioning, input validation and consistent error responses. With OpenAPI, so whoever consumes the API does not have to ask you.

Event-driven architectures

Messaging with Kafka or RabbitMQ, asynchronous processing and, when the domain justifies it, Event Sourcing and CQRS.

High test coverage

Unit and integration tests with JUnit, Mockito and Testcontainers. Written so the next change is not frightening.

Performance and observability

Profiling, query optimisation, caching where it earns its keep, and structured logs with metrics and traces so you diagnose instead of guess.

Review of existing code

If you already have a system, I can audit it and give you a prioritised improvement plan before touching a line.

[02]

How we work

  1. 01

    Technical context

    A call to understand the system, the team and what problem you are actually solving.

  2. 02

    Proposal and scope

    A document with the proposed architecture, the decisions and their consequences, timeline and price.

  3. 03

    Iterative delivery

    I work in deployable increments with code reviews with you or your team. You see real progress every week.

  4. 04

    Handover

    Architecture documentation, sessions with your team and support until the system is genuinely yours.

[03]

Stack

  • Java (8–21)
  • Spring Boot
  • Spring
  • Micronaut
  • Golang
  • Node.js
  • Kafka
  • RabbitMQ
  • PostgreSQL
  • MongoDB
  • JUnit
  • Mockito
  • Maven
  • Docker
[04]

Frequently asked questions

Do you work with legacy code or only greenfield projects?

Both. A good part of my work at BASF and Capitole was evolving existing systems and migrating them to microservice architectures without stopping the business. A project from scratch is more comfortable, but it is rarely what is on the table.

Can you lead our team technically?

Yes. I was tech lead at Pulselive, BASF and Capitole: architecture design, code reviews, defining best practices, mentoring and technical interviews. I can join as temporary reinforcement or as technical owner of the project.

Hourly or fixed-scope?

Either. Fixed-scope when the work is well defined, which usually suits you better. Hourly when it is ongoing support or consulting.

Do we need microservices?

Probably fewer than you think. Microservices solve problems of organisation and independent scaling, and they charge you in operational complexity. If your team is small, a well-structured monolith is usually the right answer — and I will tell you so even though it means less work for me.

Need a backend that holds up?

Tell me what you are building and I will reply within 24 hours with a clear proposal.