arsam@dev:~$

Small Java utilities.
Intentionally simple.

Computer engineering student building tools that solve specific problems โ€” exception handling, validation, algorithm selection. Nothing more than it needs to be.

Javaprimary language
3projects
experimentalintentionally small
repositories

Projects

Java

Structured and configurable exception handling for Java. Build readable exceptions with context, optional codes and causes, configurable error levels, metadata, and logging โ€” without making the exception itself complicated.

enrichable / Main.java
EnrichableException exception = new EnrichableException.Builder(
  "Database", "Connection failed"
).code("DB-001")
  .level(ErrorLevel.CRITICAL)
  .cause(originalException)
  .build();
exception-handlingbuilder-apimetadatajava
Java

Lightweight annotation-based Java validation library built from scratch. Validate any object using simple annotations โ€” no configuration, no dependencies. Extensible by design: adding a new constraint never requires touching the engine.

guardia / User.java
public class User {
  @NotNull
  @MinLength(value = 3, message = "Name is too short")
  private String name;
  @NotNull
  @Email
  private String email;
  @Range(min = 18, max = 100)
  private int age;
}
Guardia.of(user).validate().throwIfInvalid();
validationannotationsjavazero-dependencies
Java

A sorting algorithm advisor. Give it a list and your priorities โ€” it analyzes the data profile and tells you which sorting algorithm to use and why. Sits between "just use QuickSort" and reading research papers to sort 8 integers.

complexity / Main.java
Complexity<Integer> c = new Complexity.Builder<>(List.of(3, 1, 4, 1, 5, 9, 2, 6))
  .speedOverMemory(true)
  .needsStable(false)
  .memoryConstrained(false)
  .build();
AlgorithmScore result = c.analyze();
System.out.println(result.getAlgorithm().getDisplayName());
System.out.println(result.getReason());
algorithmssortingjavamaven