- Docker – Choosing a Base Image and Keeping It Small
`-slim`, `-alpine` and distroless, what each actually removes, and the musl-versus-glibc surprise that makes Alpine the wrong default for some runtimes. Measured sizes from the pizza images, what genuinely shrinks a build versus what only looks like it does, and why a smaller image matters most at pull time.
- Hasura – Relationships and Nested Queries
Relationships are what make a Hasura API worth using: one round trip returns a listing, its host, its photos and its reviews. Object versus array relationships, how foreign keys suggest them and why you can define one without a foreign key, filtering and ordering a parent by a child's column, and the n+1 question everyone asks. Plus the `Relationship` kind in v3 and what changes when the two sides live in different connectors.
- Lambda Expression
A lambda is a function you can pass to a method as if it were a value. That is the whole idea, and it works because of one rule: a lambda is shorthand for implementing an interface that has exactly one abstract method. Understand that rule and lambdas stop looking like magic. Where they came from…
- Memory — Why Structures Have Different Speeds
The stack, the heap, and why an array of a million ints can be faster to scan than a linked list of a million ints even though both are O(n). Contiguous memory, cache lines, pointer chasing, and what a Java object reference really costs.
- Spring Boot – File Upload
Accepting a MultipartFile, the size limits you have to raise in two different places, and validating what was actually uploaded rather than trusting the filename or the content type the browser claimed. Ends with streaming a file back out again.