Blog

Ultra-lightweight NATS-based modular app framework in Go

An explainer on why I wrote the `app` package for Upspeak. Why I used NATS and how it can be useful for you too.

Jan 01, 2025

Ontology and GraphRAGs to knowledge-centric systems

How systems like Upspeak can go from Knowledge Graphs to GraphRAGs and build towards agentic interfaces for personalised knowledge management.

Dec 31, 2024

From fragmented archives to knowledge graphs

Exploring how intent-driven knowledge systems can transcend traditional archives; addressing challenges of context, ethics, and evolution in an interconnected world.

Dec 16, 2024

A systems approach to archiving and retrieval

One does not simply hoard every bit of data they encounter. Instead, we must prioritize information that is valuable, meaningful, and conducive to our collective understanding of the world. It is okay to forget.

Dec 15, 2024

Combining semver and rolling releases

A hybrid format for combining semver with rolling releases for software versioning.

Sep 16, 2023

Burn

A lyrical scream to rap on the state we are in today.

Apr 22, 2021

Choosing delete strategy in PostgreSQL

Whether to soft delete or hard delete user-generated content in an application's database should depend on the nature of the data being deleted. Here is a high level strategy for making that decision based on users' intentions.

Jan 19, 2018

Store revisions of content in PostgreSQL

A simple way of storing and retrieving older versions of content, a.k.a, record history in PostgreSQL using triggers.

Jan 17, 2018

Styling your <hr> tags

Create a horizontal separator like Medium.com using <hr> tags and some CSS.

Jan 17, 2018

Communication divide continuum

Today's communication technologies still carry on the legacy of divide we face in the real world. Healing this fragmentation requires designing technologies with empathy and inclusivity from the lowest level.

Jan 14, 2018