I’m a product engineer and systems architect. I run Pilvy, a consultancy specializing in API scaling, cybersecurity, systems integration, and business process outsourcing. I’m open to consulting engagements, so feel free to get in touch: [email protected]

Embedding Go in a Rust Program

A simple example of adding a Go library to a Rust program, and then using the bindgen FFI to call Go functions from Rust.

<span title='2023-02-15 00:00:00 +0000 UTC'>February 15, 2023</span>&nbsp;·&nbsp;5 min

Technical Architecture of KVdb

I discuss the technical architecture of KVdb.io, a recent side project-turned-product and some pitfalls of overengineering early stage products.

<span title='2019-11-06 00:00:00 +0000 UTC'>November 6, 2019</span>&nbsp;·&nbsp;12 min

CloudPlay: A Music Player for YouTube, etc.

CloudPlay: A Music Player for YouTube, etc. Last year, I had an idea that seemed to improve every time I thought about it. What started out as a solution to fix the problem of quickly finding music on YouTube to play in the car, turned into a realization of how everything is shifting to the omniscient and omnipresent “cloud.” It’s become clear in recent years that people want cross-platform access to their music....

<span title='2012-08-09 00:00:00 +0000 UTC'>August 9, 2012</span>&nbsp;·&nbsp;3 min

Introducing Dialoggs

Introducing Dialoggs This week my friend Drew Wilson and I launched Dialoggs into private beta. Simply put, Dialoggs is what you get when you combine the social network of Twitter, a few privacy controls from Facebook, and the multimedia features of Tumblr. Just like Twitter, you can follow other users on Dialoggs and they can follow you. You can send a private message to any user who follows you, much like a Twitter DM....

<span title='2012-04-27 00:00:00 +0000 UTC'>April 27, 2012</span>&nbsp;·&nbsp;4 min

Kauai, Hawaii

Kauai, Hawaii Relax. Slow down. Take it easy. That’s what I had in mind when I decided on a vacation in Kauai, the oldest Hawaiian island. Also known as the Garden Isle, Kauai has fewer than 70,000 inhabitants, and a rich history including being the first landing site of James Cook, and the last island in the archipelago to join the Kingdom of Hawaii. When you land at Lihue Airport it becomes apparent why you’re on the Garden Isle....

<span title='2011-11-26 00:00:00 +0000 UTC'>November 26, 2011</span>&nbsp;·&nbsp;8 min

RESTalytics — our Node Knockout entry

RESTalytics — our Node Knockout entry This past weekend I took part in Node Knockout, a 48-hour coding competition where teams have to build an app in node.js from scratch. On the team were Drew Wilson (design), Kevin Thompson (frontend), and Aashay Desai and myself on the backend. Our entry, RESTalytics, is a sweet-looking analytics dashboard for monitoring REST API usage. We also developed a drop-in library (node-restalytics) to be used with any node....

<span title='2011-08-29 00:00:00 +0000 UTC'>August 29, 2011</span>&nbsp;·&nbsp;3 min

Compass + Sassy CSS = giddiness

Compass + Sassy CSS = giddiness The designer in me has been wanting to break out for some time, and since going back to freelancing, I’ve found some extra time and ran out of excuses to brush up on CSS. In the spirit of DRY, I’ve discovered Compass, a CSS framework that makes it easier to write cleaner HTML and make CSS a bit more “programmable.” For me, defining variables and abstracting cross-browser CSS are the biggest benefits so far....

<span title='2011-05-01 00:00:00 +0000 UTC'>May 1, 2011</span>&nbsp;·&nbsp;2 min

Speak It, Baby!

Speak It, Baby! This past weekend, I attended Semantic Seed’s StartUp Camp (Mobile Edition) Bay Area in Santa Clara. On Friday night, I pitched an idea about a notification platform that calls people when certain things happen. The first use case would be to build a Twitter client using purely old-school audio telephony, so that even someone with a landline phone could use Twitter. My idea received enough votes to be one of the dozen or so teams to start working....

<span title='2011-01-31 00:00:00 +0000 UTC'>January 31, 2011</span>&nbsp;·&nbsp;3 min

Continuous availability deployment of node.js apps

Continuous availability deployment of node.js apps I’ve been thinking about the problem of highly available node.js applications and how to keep things running smoothly when deploying new code. Ideally, when deploying, you don’t want to lose existing connections, and users should never see HTTP 502, 503, or 504 proxy errors. Although it’s possible to perform hot-code replacement in node.js, it’s not an approach I think is mature yet in handling all the little corner cases that may come up....

<span title='2010-11-30 00:00:00 +0000 UTC'>November 30, 2010</span>&nbsp;·&nbsp;3 min

How to share Backbone.js models with node.js

How to share Backbone.js models with node.js I’ve been building a node.js app for a project for a while now, and I just redesigned the architecture of the client (a single-page HTML5 app) to use Backbone.js. The problem that I needed to solve was the ability to reuse common data models and business logic both on the client and the server, so that I wouldn’t have to have two different representations of the same model....

<span title='2010-11-27 00:00:00 +0000 UTC'>November 27, 2010</span>&nbsp;·&nbsp;4 min

On my own

On my own It’s been two months since I left my software engineering job at IBM to explore the world of consulting on my own. At first, consulting projects have excited me because of the freedom to choose what to work on and how to do it. Of course, with freedom comes great responsibility to make wise decisions that you have to stand by. I’ve seen people create great things and I’m part of some now, but I’m starting to feel another startup itch of my own....

<span title='2010-07-14 00:00:00 +0000 UTC'>July 14, 2010</span>&nbsp;·&nbsp;2 min