Blog Archive
What Docker Is and Why Containers Exist
Containers solved the 'works on my machine' problem by packaging apps with their dependencies. What Docker actually does under the hood and why it took over deployment.
Firebase AI Logic: Generating and Streaming Gemini Responses in Flutter
Firebase AI Logic wraps the Gemini API for Flutter apps. Install the SDK, generate content, stream responses, and manage API keys safely.
Cloud Functions for Firebase with Dart: The Missing Full-Stack Link
Writing Firebase Cloud Functions in Dart means one language from UI to backend. Setup, function types, deployment, and current limitations.
Flutter Unit Testing: A Practical Guide with Examples
From your first test() to mocking dependencies and testing async logic — a hands-on guide to unit testing Flutter and Dart code.
Widget Previews in Flutter: Using the @Preview Annotation
The Flutter Widget Previewer and @Preview annotation let you iterate on widgets without running the whole app. Setup, usage patterns, and tips.
GenUI SurfaceController: Driving Dynamic UI from LLM Output in Flutter
How the SurfaceController in Flutter's genui package maps A2UI model changes onto live widget surfaces, and how to build custom surfaces.
Primary Constructor Bodies and Initializer Lists in Dart
Primary constructors are reshaping how Dart classes are written. Dive into bodies, initializer lists, and when to keep a classic constructor instead.
Dart Dot Shorthand Syntax: Cleaner Enum and Static Member Access (Dart 3.10+)
Dot shorthands let you omit the type prefix when accessing enum values and static members. Learn the syntax, real use cases in Flutter UI code, and how to migrate.
CVE Scanning with Trivy: Finding Vulnerabilities in Container Images
A practical guide to scanning container images for known vulnerabilities with Trivy — from a one-line local scan to CI gates, ignore policies, and air-gapped setups.
Docker Build Cache: What Invalidates Each Layer
Why changing one line of code re-downloads your dependencies — the exact rules Docker uses to hit or miss the cache, and how to structure a Dockerfile so it hits almost every time.
Base Images Compared: Alpine, Slim, Distroless, and Scratch
The FROM line decides your image size, your CVE count, your glibc-vs-musl headaches, and whether you have a shell to debug with. A practical guide to choosing a base image.
Recruiting Agents: Resume Parsing, Screening, and Bias Guards
A resume-screening agent is a regulated decision system with an LLM in the middle. How to structure parsing and scoring — and the guardrails that keep an agent out of the headlines.