Packing Spring Boot into Lightweight Docker Images
Using multi-stage builds, layered jars, minimal JRE, and non-root users to create small, fast-building, and secure Spring Boot Docker images.
Java, Spring Boot, Golang, Python… — write correct, efficient code through hands-on examples.
Using multi-stage builds, layered jars, minimal JRE, and non-root users to create small, fast-building, and secure Spring Boot Docker images.
A guide to using encoding/json in Go, from Marshal/Unmarshal, struct tags, Encoder/Decoder to custom types, with tests and common errors.
Use Zod to validate data from APIs, forms, and environment variables at runtime, while inferring TypeScript types from the same schema.
Use LocalDate, ZonedDateTime, and Duration correctly: calculate dates, change timezones, handle daylight saving time, and write stable tests with Clock.
Use mapped types and conditional types to automatically generate types from existing types, including infer, key remapping, type testing, and common pitfalls.
Guide to using Spring Kafka to send messages with KafkaTemplate, receive with @KafkaListener, handle errors with Dead Letter Topic, and write tests with Embedded Kafka.
How to build worker pools in Go using channels, sync.WaitGroup, context, and errgroup for bounded parallelism with cancellation and testing.
Comparing List.of, List.copyOf, and Collections.unmodifiableList: which are copies, which are just views, how they handle null, and when to use each.
Use Pageable, Page, Slice, and Sort from Spring Data JPA for pagination and sorting data, from repository to REST controller, with tests and common pitfalls.
Go has no inheritance. This article explains struct embedding, how methods are promoted, method shadowing pitfalls, and how to combine embedding with interfaces.
Understand CPython's Global Interpreter Lock, why threads don't speed up CPU-bound code, when to use threading, multiprocessing, and the free-threaded build.
Understand the mechanisms of defer, panic, recover in Go, common pitfalls, and when to return error instead of panic.
Comparing types of thread pools in Java 21: fixed, cached, scheduled, work-stealing, virtual thread. How to configure ThreadPoolExecutor and use it safely in Spring Boot.
A guide to packaging a Python library with pyproject.toml, building wheels, testing on TestPyPI, and releasing to PyPI using tokens or Trusted Publishing.
How @Transactional works through proxy, along with common pitfalls like self-invocation, checked exception, rollback-only, and tests that hide errors.
Distinguish between checked and unchecked exceptions, pick the right type, design custom exceptions with context, and avoid common anti-patterns.
How to use @Scheduled with fixedRate, fixedDelay and cron, configure thread pools, handle errors, write tests, and avoid common pitfalls with scheduled tasks.
Why threading fails for CPU-bound code, and how to use multiprocessing, Pool, and ProcessPoolExecutor to harness every CPU core.
Guide to using pprof to collect and analyze CPU, heap, goroutine, block, and mutex profiles in Go applications, from HTTP services to benchmarks.
Use Comparator.comparing, thenComparing, reversed and nullsLast to sort by multiple criteria, along with common mistakes.