Aymen Farhani

Aymen Farhani

Senior Software Engineer
Belgium
French, English, Arabic

About Me

I am a Senior Java Developer with seven years of experience specializing in Java/JEE, Spring/Spring Boot, Docker, Microservices, AWS and Terraform.

Passionate about building scalable, clean, and efficient software solut…

Experience

Information and Process Architect / Scrum Master

SPEOS
Jan 2025 - Present · 1 year 6 months

Microservices architectural style:
- Preparing architectural diagrams for existing applications, including: Data structure diagrams, Component diagrams, Business flow diagrams, Container diagrams, APIs interaction diagrams...
- Documenting applications built with Grails and Groovy in combination with Spring Framework, leveraging RabbitMQ, REST web services, and SOAP APIs for communication.
- Updating and migrating older documentation in Confluence to a new version, ensuring accuracy and alignment with current systems.
- Enhancing and refining existing architectural diagrams to reflect the current codebase and system architecture.
- Designing simplified diagrams to help developers understand the application and facilitate new feature integration.
- Actively participating in weekly architectural meetings to contribute to system design and decision-making processes.

𝗦𝗸𝗶𝗹𝗹𝘀 𝗮𝗻𝗱 𝘁𝗼𝗼𝗹𝘀: IntelliJ IDEA, Docker, Java, Groovy, Grails, Spring Framework, WSL, Ubuntu, REST APIs, RabbitMQ, Hazelcast, ElasticSearch, Archimate, C4 model, Confluence, Scrum

Information and Process Architect / Scrum Master

SPEOS, BRUSSELS, BELGIUM
Present

Preparing architectural diagrams for existing applications, including data structure diagrams, component diagrams, business flow diagrams, container diagrams, and APIs interaction diagrams.
Documenting applications built with Grails and Groovy in combination with Spring Framework, leveraging RabbitMQ, REST, and SOAP APIs for communication.
Updating and migrating older documentation in Confluence to a new version, ensuring accuracy and alignment with current systems.
Enhancing and refining existing architectural diagrams to reflect the current codebase and system architecture.
Designing simplified diagrams to help developers understand the application and facilitate new feature integration.
Actively participating in weekly architectural meetings to contribute to system design and decision-making processes.
Methodology applied: Scrum.

Full Stack Java/JEE Angular Developer

ARHS DEVELOPMENTS, BRUSSELS, BELGIUM

Development and maintenance of different modules (management of CVs, users, matching CVs, UI interfaces).
Development and maintenance of web services that allow communication between applications.
User interface development with Angular.
Using Git for versioning.
Using Maven for dependency management and project lifecycle.
Cross code review.
Migration from Maven multi-modules to microservices architecture using Spring Cloud and Eureka Registry.
Running applications using Docker containers via docker-compose.
CI/CD continuous integration and deployment via GitLab CI (merge request and deployment to the test environment).
Participation in different agile ceremonies (daily meeting, demo).
Methodology applied: Scrum.

Full Stack Java/JEE Developer

SPF FINANCES, BRUSSELS, BELGIUM

Development and maintenance of different modules (management of plots, transactions, cadastral divisions, sending notifications, UI interfaces).
Development and maintenance of web services which allow communication with external applications.
Creation of a batch solution which points to a database to read documents, search for their reference through a web service and update them (standalone application).
Development of batch launch and configuration interfaces with Spring Boot, Spring Batch and Angular.
Using Git for versioning.
Using Maven for dependency management and project lifecycle.
Design and development of user interfaces using JSF 2 and PrimeFaces.
Cross code review.
CI/CD continuous integration and deployment via GitLab CI (merge request and deployment to the test environment).
Participation in different agile ceremonies (daily meeting, demo).
Methodology applied: Scrum.

Full Stack Java/JEE React JS Developer

BE SOFTILYS, Tunisia

Development of APIs that allow the mapping of XML files into Java objects using Spring Core, Spring Boot, Spring REST, Spring Data JPA.
Development of user interfaces using ReactJS and Redux.
Back-end in Java Spring Boot, with the provision of services through a REST API layer (Spring MVC, Spring Data, Spring REST).
Database architecture with MySQL.
Implementation of unit tests (back side), with Spring Boot Test, JUnit and Mockito, of all layers of the application (REST API, business logic, data access layer).
Using Git for versioning.
Using Maven for dependency management and project lifecycle.
Creation of API documentation with Swagger.
Code review with SonarQube.
Running applications using Docker containers via docker-compose.
CI/CD continuous integration and deployment via GitLab CI (merge request and deployment to the test environment).
Participation in different agile ceremonies (daily meeting, demo).
Methodology applied: Scrum.

Full Stack Java/JEE Angular Developer

WHITECAPE TECHNOLOGOES, Tunisia

Development and maintenance of different modules (user management, project management, export procurement, complaints management).
Development of user interfaces using Angular.
Improvement and maintenance of different modules (user management, mailing, management of procurement actions).
Database architecture with MySQL.
Implementation of unit tests, good practices of clean code.
Using SVN for versioning.
Methodology applied: Scrum.

Full Stack Java/JEE JSF Developer

IT PEAC, Tunisia

Development, improvement and maintenance of the various data processing and export access modules (files, photos and videos) using Spring Core, Spring JDBC and Spring Batch.
Migrating Spring configuration from XML format to annotations and Java based configuration.
Development of integration batches, manipulation and export of data in XML and CSV formats.
Data export in Excel format with Spring Batch and Apache POI.
Database architecture with PostgreSQL.
Developing unit tests for previous modules using JUnit and Mockito.
Refactoring and implementation of technical solutions allowing code reusability.
Using Git for versioning.
Using Maven for dependency management and project lifecycle.
Methodology applied: Scrum.

Full Stack Java/JEE Developer

IT-SERV, Tunisia

Generation of the Oracle database.
Development of the MyBatis persistence layer.
Creation of data presentation dashboards (Spring MVC).
Development of Spring, JSF, PrimeFaces business interfaces.
Methodology applied: Scrum.

Skills

Enterprise Java Beans (EJB) Hibernate Junit Maven MySQL PostgreSQL Python Structured Query Language (SQL) Struts Design Principles Flask JavaScript Microservices Object-Oriented Programming (OOP) Angular CI/CD Confluence Docker Jenkins JavaScript Object Notation (JSON) Kubernetes MongoDB PL/SQL Terraform Tomcat Java 8 Java 11 Java 17 Spring Data JPA Spring Data JDBC JUnit JSF PrimeFaces JBoss Server XML JAXB JSP Servlet
Report this Profile?