Resources
This page collects tools, libraries and references that I regularly use or find particularly valuable. Most of them revolve around software architecture, automation and living documentation, as I believe the best tools are the ones that quietly remove friction. The list is intentionally small and curated. I only include resources that I would happily recommend.
ArchUnit
More than an architecture testing library, I see ArchUnit as a way to reduce cognitive load. By expressing design and architectural decisions as executable rules rather than written guidelines, it helps keep systems consistent over time while removing the need to constantly remember conventions. - ArchUnit
AssertJ
AssertJ provides a fluent and expressive assertion API that makes tests easier to read and understand. I particularly appreciate its support for soft assertions and descriptive failure messages, which help produce more informative test reports than a simple pass/fail result. - AssertJ
Checkstyle
Checkstyle enforces coding conventions through executable rules, ensuring they are applied consistently without relying on manual review. By automating these checks, reviewers can focus on design and implementation rather than policing conventions. - Checkstyle
JavaParser
An excellent library for parsing and analyzing Java source code. It is particularly useful for building code-driven tools and documentation generators. - GitHub
jsqlparser
I primarily use JSqlParser as a foundation for automation: generating documentation from SQL schemas, producing testing utilities, and analyzing queries captured through tools such as P6Spy. - GitHub
Mermaid
Mermaid is a convenient text-based diagramming language for quickly creating readable diagrams that follow familiar conventions. Its JavaScript-based rendering model can be limiting when integrating it into static or Java-based documentation pipelines, but its widespread support across platforms such as GitHub, GitLab and Confluence makes it a practical choice for documentation-as-code workflows. - Mermaid
mermaid-java-dsl
A type-safe Java DSL for building Mermaid diagrams through a fluent API instead of manually assembling strings. By modelling Mermaid concepts directly in Java, it makes diagram generation easier to write, refactor and validate while avoiding many classes of syntax errors. - GitHub
Mustache.Java
A lightweight templating engine that I find particularly useful for generating code and documentation. Its simplicity makes it easy to integrate into custom tooling without getting in the way. - GitHub
P6Spy
P6Spy makes database interactions observable by exposing the SQL actually executed by the application. It removes much of the guesswork when debugging ORM behavior and investigating performance issues - GitHub
Renovate
Renovate continuously updates dependencies through small, automated pull requests, making maintenance a routine activity instead of an occasional large-scale effort. I find this approach much easier to review, validate and integrate than infrequent bulk upgrades. - Renovate
Spotless
Spotless automatically applies consistent formatting, preventing large formatting diffs from obscuring meaningful changes in code reviews. It integrates seamlessly with IDEs and build pipelines. I use it together with palantir-java-format, which I find opinionated enough to ensure consistency while remaining unobtrusive in day-to-day development. - GitHub
Structurizr
My preferred approach for architecture documentation using the C4 model. By deriving multiple views from a single underlying model, Structurizr helps keep diagrams consistent with one another while its Java API integrates naturally into automated documentation workflows. - Structurizr
swagger-parser
Swagger Parser provides a rich object model for OpenAPI specifications, making it easy to build custom tooling and documentation. I find it particularly valuable for presenting APIs in a more accessible way, helping both technical and non-technical stakeholders spot inconsistencies, omissions and design issues that are less obvious in the raw specification. - GitHub