- In Java: Use CDI annotations (`@Inject`, `@ApplicationScoped`, `@RequestScoped`) for dependency injection — Quarkus uses ArC, a build-time CDI.
- Use `@Path` and `@GET/@POST` (JAX-RS) for REST endpoints — return `Response` or use `@Produces(MediaType.APPLICATION_JSON)` with POJOs.
- Use Quarkus Dev Services for automatic database/container provisioning in dev mode — no manual Docker setup needed.
- Prefer reactive routes with `@Route` and Mutiny (`Uni<T>`, `Multi<T>`) for non-blocking I/O over traditional blocking JAX-RS.
- In Java: Use Panache for simplified data access: extend `PanacheEntity` for Active Record or `PanacheRepository<T>` for Repository pattern.
- Use `application.properties` with `%dev`, `%test`, `%prod` profile prefixes for environment-specific config.
- Use `@ConfigMapping` interfaces for type-safe configuration binding.
- Design for native compilation: avoid reflection, use `@RegisterForReflection` when reflection is required.
- Use `quarkus dev` for live coding with automatic reload on source changes.