Skip to content
View cheroliv's full-sized avatar

Block or report cheroliv

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
cheroliv/README.md

cheroliv

🇬🇧 English · 🇫🇷 Français

Software Artisan · Trainer · Gradle Tooling Author

I design an ecosystem of Gradle Kotlin DSL plugins for project tooling, executable documentation, and educational content production. My raw materials: Kotlin, Gradle, AsciiDoc, LangChain4j.


Positioning

I work at the intersection of three domains:

  • Software Craftsmanship — TDD, BDD Cucumber, Hexagonal Architecture, Idiomatic Kotlin.
  • Developer Tooling — reusable Gradle plugins, published under the com.cheroliv namespace on the Gradle Plugin Portal.
  • EdTech — educational content, generated static sites, traceable training materials.

The coherence of it all stems from a simple conviction: a credible developer/trainer builds and uses their own tools. I don't sell what I don't use on a daily basis.


Methodology

The lifecycle I follow for each plugin:

  1. Business logic prototyping within the root build.gradle.kts, with relevant logs to validate behavior under real conditions.
  2. Plugin migration once the domain logic is stable — transplanting the proven code to a dedicated module, using TDD with JUnit 5.
  3. BDD with Cucumber as soon as the domain allows, to document intent at the user level.
  4. Publication to the Gradle Plugin Portal with a versioned API contract.

It's not a fancy method, but it's one that stands the test of time.


The com.cheroliv.* Ecosystem

The plugins are structured around three roles:

Foundation — reusable building blocks

Plugin Role
com.cheroliv.plantuml Syntax validation and PNG/SVG rendering of PlantUML diagrams. A building block used by downstream plugins and consumable on its own.
com.cheroliv.readme Multilingual README generation with embedded PlantUML diagrams and GitHub Pages publication via JGit.
com.cheroliv.slider Reveal.js presentation generation from AsciiDoc sources, with a push to a dedicated branch.

Publication & aggregation

Plugin Role
com.cheroliv.bakery JBake static site aggregating artifacts produced by other plugins (diagrams, slides, posts). A Scala/Mill version of the same idea is also available.

Build assistant & training orchestration

Plugin Role
com.cheroliv.codebase In-build development assistant: project reading and analysis, LangChain4j context enrichment, AsciiDoc report generation, dataset creation.
com.cheroliv.training Training project orchestration — backlog synchronized with agent context files (AGENTS.md), course material pipeline.

Each plugin follows the same configuration discipline: declarative YAML (readme.yml, plantuml-context.yml, slides-context.yml…), mirrored Kotlin classes via Jackson, and an anonymization function for traceability without leaking secrets.


Environment & Workstation

A Gradle Kotlin DSL build script that orchestrates the creation of a bootable Xubuntu ISO — functioning as both a live USB and an installer, equipped with the necessary tooling tailored for three usage profiles:

  • Nomadic workstation — my complete portable environment on a USB drive.
  • FTTH Telecom Technician — ready-to-use field tooling.
  • Student/Trainee — immediate onboarding with no prior installation required.

The project illustrates the ecosystem's philosophy: the work environment itself is a reproducible, versioned, and documented artifact. The project's documentation is generated and published by com.cheroliv.bakery at cheroliv.com/magic_stick — proof that the publication pipeline runs in production.


What I Teach

  • Intermediate to advanced Java (8 to 25) — from the Stream API to Virtual Threads, Records, Pattern Matching.
  • Intermediate to advanced Kotlin — null safety, extensions, coroutines, sealed classes.
  • Scala and JVM build alternatives (Mill, sbt).
  • Maven multi-module architectures.
  • Gradle Kotlin DSL — from writing tasks to publishable plugins.
  • Hexagonal Architecture and testing — ports & adapters, JUnit 5, Cucumber, TestContainers.
  • Spring Boot — REST APIs, JWT security, integration testing.
  • Project tooling — GitHub Actions CI/CD, executable documentation, content generation.

Course materials are produced using the ecosystem's plugins: slides are Reveal.js generated by slider, course websites by bakery, and the bootable drive by magic_stick. Training and tooling mutually feed into each other.


Core Stack

Java · Kotlin · Scala · Gradle (Kotlin DSL) · Mill · JUnit 5 · Cucumber · Spring Boot · AsciiDoc · JBake · Reveal.js · PlantUML · JGit · Jackson · LangChain4j · Docker · PostgreSQL/pgvector · GitHub Actions · Xubuntu/Debian packaging.


Links


The code we write for ourselves is the laboratory for the code we teach others.

Pinned Loading

  1. newpipe-gradle newpipe-gradle Public

    🎵 NewPipe MP3 Downloader built with Kotlin & Gradle. Features NewPipe Extractor for video extraction, FFmpeg conversion, ID3 metadata tagging, and a custom Gradle plugin with typed tasks.

    Kotlin 7

  2. bakery-gradle bakery-gradle Public

    🔨 Gradle → JBake → JGit → GithubPages. 🚀 Automate your docs: This Gradle plugin streamlines the JBake rendering and JGit publishing process to deploy your static content directly to GitHub Pages ef…

    CSS 4 2

  3. slider-gradle slider-gradle Public

    🖼️ Gradle Kotlin DSL plugin for generating Reveal.js slide decks from Asciidoc source. Create, customize, and deploy your presentation as a static site directly from your build script.

    Kotlin 3

  4. jhipster-gradle-plugins jhipster-gradle-plugins Public

    This project solves the fundamental JHipster regeneration problem: every jhipster jdl --force overwrites the entire project. The plugin introduces __codebase__/ as a sanctuary directory and orchest…

    Kotlin

  5. plantuml-gradle plantuml-gradle Public

    🎨 Gradle PlantUML Plugin: Seamlessly transform PlantUML syntax into diagrams during your build. Automate your documentation workflow with simple, integrated Gradle tasks.

    HTML 1

  6. readme-gradle readme-gradle Public

    🖺 Gradle plugin to enhance AsciiDoc READMEs for GitHub: automatically converts PlantUML diagrams into rendered images and interactive links.

    Kotlin