Developer • Father • Tinkerer

Stories told through code and craft.

A software developer's journal on building things that matter, raising tiny humans, and the quiet satisfaction of a clean deploy.

Scroll to explore
// who I am

Two decades of shipping software and learning from every failure.

I have been building software since dial-up was the norm. From enterprise backends in Node.js to infrastructure automation, from startup MVPs to large-scale migrations, every project has been a chapter in an ongoing education.

20+
Years Building
100+
Open Source Repos
3
Kids Raised
Cups of Coffee
Developer workspace
// recent writing

Essays on software, systems, and the spaces between.

// the craft

Code should tell a story, too.

pipeline.js
const pipeline = createPipeline({
  source: redis.subscribe('events:raw'),
  transform: [
    validate(schema),
    enrich(userContext),
    deduplicate({ window: '5m' }),
  ],
  sink: postgres.batchInsert('events'),
});

// Graceful shutdown matters
process.on('SIGTERM', async () => {
  await pipeline.drain();
  await pipeline.close();
});

Readable pipelines that degrade gracefully

Every pipeline I build follows the same principle: make the happy path obvious and the failure path recoverable. This pattern uses composable transforms with automatic backpressure handling.

The graceful shutdown sequence ensures every in-flight event is processed before the container exits, preventing data loss during rolling deployments.

Node.js Redis PostgreSQL Streams

Let's build something
worth reading about.

Whether you want to collaborate on a project, discuss an article, or just say hello, I would love to hear from you.