Skip to content

bacemhmoudi.com/en/java-spring-boot-developer-tunisia

Bacem Hmoudi, Java / PHP Tech Lead in TunisBacem HmoudiJava / Spring Boot · PHP / Symfony Tech Lead

Freelance Java / Spring Boot developer in Tunis

A Tech Lead at TEAMWILL since 2022, I define the architecture of new Java / Spring Boot components, lead the interfaces of a microservices software suite and manage more than 15 developers. I am open to a role in Paris, on site or hybrid, and to freelance or nearshore missions from Tunis.

Tunis, TunisiaTEAMWILL

  • 15+developers led as a Tech Lead
  • −60%response time on applications in production
  • −70%RAM and CPU after a migration to Azure
  • 3 monthsto move a platform to Azure without degrading the service

What I build

Business software in Java, from need to production

Java and Spring Boot every day: I design new components as microservices, with DDD and hexagonal architecture, and I lead the interfaces of a management software suite with market partners and external software vendors, as well as its document management.

Since 2022, I have been the main technical contact on projects, and the work starts before the code: understanding the need, proposing a solution that fits the existing system and estimating it properly. Then I cost it, track progress and lead the team, code reviews and technical check-ins included, up to every production release.

On the Spring side, I use what the project calls for: Spring Boot 3, Spring Security for authentication and permissions, Spring Batch for bulk processing, Spring Cloud Gateway in front of the microservices, JPA / Hibernate and MapStruct for persistence and mapping, Resilience4j for calls that can fail, OpenAPI to document the contracts.

Data follows the same logic: PostgreSQL, MySQL, Oracle, SQL Server or MongoDB depending on the context, Redis for caching, Kafka when services need to talk asynchronously, Flyway to version the schemas. On the front end, Vue.js, Angular or React depending on the team.

Architecture, performance and technical leadership

  • Microservices, without dogma

    I split when the domain and the team justify it, not before: an API gateway, Kafka when the flows call for it, idempotency and a transactional outbox so that no message is lost.

  • Hexagonal architecture and DDD

    The domain at the centre, shielded from the framework and the infrastructure: that is how I design new components, and Spring stays an implementation detail.

  • Measured performance

    −60% response time on applications in production: a two-level cache, a rebuilt export of large data sets, fixes to slow batch jobs on large volumes.

  • Robust interfaces

    REST and SOAP web services to partners, external software vendors and carmakers’ information systems: one isolated adapter per partner, its formats mapped to the business model, failed exchanges replayed, a circuit breaker and logged flows.

  • Testing and quality

    TDD, JUnit 5, Mockito and Testcontainers, coverage tracked with JaCoCo, code reviews, documentation and acceptance test plans signed off before every delivery.

  • Cloud and delivery

    Docker and Kubernetes, Azure and AWS, GitLab CI/CD, Jenkins and GitHub Actions pipelines, Terraform: automated environments and closely monitored releases.

Case studies

Three Java deliveries, described without client names: the context, what I built, the technologies and the result.

The web services and external APIs of a new dealership management software suite

Automotive dealership groupsSince 2022

Context

Automotive dealership groups are replacing their legacy software suite with a new generation built on microservices. It has to exchange data with many market partners and external software vendors, and take over what the old solution did.

What I built
  • The whole interfaces side, which I lead: exchanges with partners and external software vendors, from design to production
  • Interfaces with financing and service partners, software vendors and official bodies, document and data archiving, and many other APIs
  • One isolated connector per partner, an adapter in the hexagonal architecture: the domain depends on no external format
  • Mapping between each partner’s formats and the business model
  • Error handling and replay of failed exchanges, flow logging for support
  • Asynchronous messaging over Kafka between the microservices
  • Taking over the existing system: analysing its code and features, what to keep, rebuild or add
  • Regular workshops with the client, coordination with the other teams and delivery checks
Technologies
  • Java
  • Spring Boot
  • Microservices
  • Kafka
  • REST API
  • Web services
  • Hexagonal architecture
Result

Interfaces delivered from design to production, one isolated connector per partner, and failed exchanges replayed rather than lost.

Document management in a software suite: generation, indexing, archiving and e‑signature

Automotive dealership groupsSince 2022

Context

The same software suite produces and receives many documents, from purchase orders to contracts and invoices. They have to be generated, filed in the customer and vehicle file, found again, archived and signed.

What I built
  • Generating documents from business data
  • Storing, filing and indexing the documents of the customer and vehicle file, with search
  • Digital archiving of documents and data, through the archiving interfaces
  • E‑signature: sending documents for signing, bringing the signed documents back into the file
Technologies
  • Java
  • Spring Boot
  • Microservices
  • Document management
  • E‑signature
  • REST API
Result

Complete document management inside the software suite, from generating documents to archiving them, e‑signature included.

A platform migrated to Microsoft Azure in three months

Large industrial group, France2024

Context

A large industrial group in France wants to move its platform to Azure without degrading the service.

What I built
  • A compatibility and feasibility study
  • Refactoring the applications for the cloud
  • Scripts automating the environments
  • Close monitoring after go‑live
Technologies
  • Azure
  • Docker
  • Java
  • PHP
Result

−70%RAM and CPU

A migration completed in three months, and 70% less RAM and CPU thanks to the refactoring for the cloud.

How we work together

Three ways to work together: a role in Paris, on site or hybrid, a remote mission from Tunis, or a collaboration.

  • A role in Paris

    I am open to new Tech Lead or architect opportunities in Paris, on site or hybrid. A role elsewhere in France, in Europe or working remotely from Tunis is also possible.

  • Freelance mission

    Tech Lead or senior developer on your project, on a time-and-materials or fixed-price basis, or to strengthen an existing team: remotely from Tunis, nearshore, and on site for workshops, kick-offs and go‑lives.

  • Collaboration

    A product to launch, an architecture to rethink, AI to wire into your data, a technical partnership: we shape the setup together.

For remote work, Tunisia is on UTC+1 all year round: the same time as Paris in winter, one hour behind in summer. We can work in French or in English.

My other areas of expertise

  • PHP / Symfony development

    PHP / Symfony since 2017: the portal of a network of more than 100 dealerships migrated from Symfony 1.4 to 5, with its document management, an ERP, public sector applications.

    Approach and case studies
  • AI integration for business software

    In production: OCR and document classification, RAG with sources, self-hosted LLMs with vLLM and AI agents, with guardrails.

    Approach and case studies