About me
Hi folks, I’m a web lover actually working @Cesson-Sévigné, mastering :
ASP.NET Core
withC#
andLaravel
as favorite backend frameworksVue 3
with Composition API orReact
withTypescript
- Utility-first CSS frameworks as
Tailwind
/Windi CSS
/UnoCSS
, but also comfortable withSass
with BEM implementation
I can develop proper API design following DDD / Hexa principles if applicable. In addition to above .NET
and PHP
backend stacks, I’m also confident with :
Nest.js
associated toPrisma
orMikroORM
(Typescript)FastAPI
withSQLAlchemy
(Python)Spring Boot
withHibernate
as main JPA implementation (Java)
I encourage TDD
or at least proper integration tests on any backend frameworks, following AAA aka Arrange Act Assert principle :
PHPUnit
orPest
for PHPNUnit.net
orxUnit.net
withFluent Assertions
for .NET CoreJUnit
withREST Assured
for Spring BootJest
andpytest
on respective NodeJS end Python stacks
Fully embracing app containerization with Docker
and Kubernetes
, from local, staging to production, I push to use properly configured CI/CD whenever possible in order to enforce continuous automatized testing, linting and code styling at many languages (ESLint
, Prettier
, PHP CS fixer
, PHPStan
, Black
, mypy
, Google Java Format
, Spotless
, and so on…).
Mastering installations and maintenance of Docker Swarm
or bare metal Kubernetes
clusters with HA architecture. Here some cloud native tools solutions I generally use :
HAProxy
for high-availability across multiple frontend workersTraefik
as main automatic service discovery / ingress controllerLonghorn
for distributed storage on Kubernetes 💽cert-manager
as central certificate solution for Kubernetes clusterPortainer
as simple GUI for containers managementLoki
,Prometheus
andJaeger
as respective logging, metrics and tracing toolsGrafana
as GUI dashboard builder, designed for OpsGitea
orGitLab
as self-hosted VCSSonarQube
for automatic quality code scanDrone
orConcourse
as CI solutionsFlux CD v2
as main CD solution for Kubernetes, allowing GitOps cluster management
I can install and manage primary-replica databases clusters, mainly PostgreSQL
and MySQL
, whether bare-metal or cloud managed with Kubernetes (statefulsets), with Prometheus metrics exporters.
For load testing, I can write scenarios for both K6
and Locust
, coupled with proper time series DB as InfluxDB
and Grafana
as visualization tool. For advanced application performance analysis, I tend to use OpenTelemetry
as collection tools for proper metrics that can be exposed to Prometheus
, and tracing, ready to export into Jaeger
.
Have some experiences with many mid-range cloud providers as Digital Ocean, Hetzner, OVH, Scaleway, and some knowledge on Terraform as main IaC tool and Salt as cluster wide configuration management.
Some notes of this blog :
- Powered by
Hugo
- Hosted on Hetzner Cloud, fully GitOps managed from custom
Terraform Hcloud project
- Running on bare-metal lightweight
Kubernetes
multi-nodes cluster fromK3s
distribution - Kubernetes infrastructure completely managed with
Terraform
🌴 - HA setup using Hetzner LB, targeting 2 worker nodes, with Postgres cluster (managed on same Kubernetes cluster)
Traefik
as reverse proxy, configured for HA 🛣️- Source code on my own
Gitea
- Compiled by my own
Concourse
instance as a final docker container image into self-hosted private registry (CI 🏗️) - Automatically deployed by
Flux CD v2
to the Kubernetes cluster (CD 🚀) - Tracked with
Umami
📈
All above tools are 💯% self-hosted ! Just sadly missing my own Homelab with Proxmox because no fiber 😿
Seems overkill ? Yeah, but why not ? I’m not able to write a single post without all that 😿
See some of my open sourced works.