Blog entries
A curated set of blog entries focused on software engineering and systems, with occasional notes on baking, and running.Type-Erasure Dispatch Pattern in Go
Coordinators tend to rot when they need to manage many concrete types. You start with a small workflow, then add one type switch, then another, and eventually every new backend or model change touches orchestration code.
The type-erasure dispatch pattern is how I got out of this in a multi-database sync system.
The Scaling Failure That Forced the Refactor
Originally I had 6 different database variations to support behind one sync workflow. The design tied capabilities directly to typed interfaces and backend implementations.
What Is a KEG? How I Built My Own Knowledge Graph
A KEG — Knowledge Exchange Graph — is a personal knowledge management system that organizes information as a network of interconnected nodes instead of folders and documents. I’ve been building and refining this system since late 2022, and it’s become the foundation for how I capture, connect, and retrieve everything I know.
This is the story of how it came together.
It Started with Lost Paper
I started jotting notes and random scribbles on scraps of paper and found it genuinely helpful. But paper has a problem: I’d vaguely remember writing something down, want to reference it for a refresher, and the paper would always be gone. I needed a system where I could dump whatever was on my mind and retrieve the thought later — even after I’d completely forgotten about it.
Welcome to My Blog
Hello! I’m Jared, and this is my first post. I’m excited to share my thoughts on software development, Go programming, and building things on the web.
What to Expect
On this blog, I’ll be sharing:
- Technical deep dives into Go and web development
- Project write-ups showcasing things I’ve built
- Best practices and lessons learned from real-world projects
- Notes on tools, frameworks, and interesting technologies
About This Site
This portfolio site is built with Go and uses a custom post management system. Each post is written in Markdown with YAML frontmatter for metadata. It’s a lightweight approach that keeps things simple and performant.
The Vendor Pattern with Composer: When and Why to Commit Dependencies
When working with PHP projects using Composer, you typically have two approaches to managing your vendor/ directory:
- Standard approach: Add
vendor/to.gitignore, commit onlycomposer.jsonandcomposer.lock, and runcomposer installduring deployment - Vendor pattern: Commit the entire
vendor/directory to your repository
While the standard approach is conventional and recommended for most projects, the vendor pattern offers specific advantages in certain scenarios. Let’s explore what it is, when to use it, and the tradeoffs involved.