Blog

Insights on software engineering, technical consulting, and building AI applications.

software architectureai developmenttesting strategy

Disposable vs Permanent Code

How to distinguish between code that deserves comprehensive testing, and code that should be optimized for rapid iteration.

Read more →
Expected DurationPERTdefinitions

Expected Duration

Defining Expected Duration (E) in PERT and explaining the calculation using the weighted average formula E = (O + 4M + P) / 6.

Read more →
three-point estimationdefinitionsestimation

Three-Point Estimation

Explaining the three-point estimation technique, defining the Optimistic (O), Pessimistic (P), and Most Likely (M) estimates used in PERT.

Read more →
WBSdefinitionsproject management

Work Breakdown Structure (WBS)

Defining the Work Breakdown Structure (WBS) and explaining its crucial role in decomposing project scope into manageable tasks for effective estimation.

Read more →
acceptance criteriadefinitionsuser story

Acceptance Criteria (ACs)

Defining Acceptance Criteria (AC) as the specific, objective, and testable conditions that determine when a user story is successfully implemented.

Read more →
BDDGiven-When-Thendefinitions

Given-When-Then - Applied BDD

Defining Behavior-Driven Development (BDD) and its Given-When-Then (GWT) syntax for writing clear, example-based acceptance criteria that aid understanding and estimation.

Read more →
user storydefinitionsagile

Defining a User Story

Defining a user story in Agile, highlighting its structure and purpose as the key input for development team understanding and estimation efforts.

Read more →
DAFCcode generationcomponent architecture

DAFC CLI Output Example

An example output from the DAFC CLI tool, demonstrating generated code for the wagn-voice-ui library.

Read more →
personalautobiographyreflection

Early Childhood Memories

Reflecting on my earliest childhood memories from Indonesia and Australia, and how they shaped who I am today.

Read more →
productivityhabitsmental-health

Non-Zero Days

Non-Zero Days is a powerful concept for breaking out of productivity ruts by committing to doing at least one small thing every day that moves you toward your goals.

Read more →
samificationdefinitionframework

Samification

Samification is the process where competing technologies, frameworks, or ideas gradually converge toward a single, widely accepted standard.

Read more →
canonical namingaidefinitions

Canonical Naming

Canonical naming is a way for us to delineate the boundaries of entities in a vector space, particularly used for graph-based Retrieval-Augmented Generation (RAG).

Read more →
embeddingaidefinitions

Embeddings

Embeddings allow us to represent meaning in a vector space, allowing us to perform mathematical operations on it.

Read more →
mcpmodel context protocolanthropic

Model Context Protocol (MCP)

Model Context Protocol (MCP) is a new standardized communication protocol, allowing AI models and applications to interact with external data sources and tools in a structured format.

Read more →
retrieval-augmented generationragdefinitions

Retrieval-Augmented Generation (RAG)

Retrieval-Augmented Generation (RAG) is a technique that enhances AI-generated responses by first retrieving relevant information before generating an answer.

Read more →
vibe codingAndrej Karpathydefinitions

Vibe Coding

Vibe coding is a new skill set that allows non-programmers to build SaaS applications or software in general using plain text instructions instead of writing traditional code.

Read more →