Howdy!

Welcome to my blog where I write about software development, cycling, and other random nonsense. This is not the only place I write, you can find more words I typed on the Buoyant Data blog, Scribd tech blog, and GitHub.

Jamming on Google Meet with Pulseaudio

For an upcoming hack week I wanted to have some live jam sessions with colleagues on a video call. Mostly I wanted some background music we could listen to while we hacked together, occasionally discussing our work, etc. I don’t normally use Pulseaudio in anger but it seemed like the closest and potentially simplest solution.

Read more →

The AI Coding Margin Squeeze

Words cannot express how excited I am for the coming margin squeeze on every “AI company” that isn’t Anthropic, OpenAI, Microsoft, or Google. The entire industry is built on an unethical foundation, having illegitimately acquired massive amounts of content from practically everybody. The companies selling “AI Coding Assistants” I am particularly excited to see implode.

Read more →

The last data file format

The layers of abstraction in most technology stacks has gotten incredibly deep over the last decade. At some point way down there in the depths of most data applications somebody somewhere has to actually read or write bytes to storage. The flexibility of Apache Parquet has me increasingly convinced that it just might be the last data file format I will need.

Read more →

Solar Laundry

The process of switching to a more electric house, and therefore more renewable, is two parts: remove fossil fuel powered components and remove load. I wrote previously about using a home battery which has really made a big dent in the ability to switch loads towards electricity. I have recently done some more analysis on the humble clothesline.

Read more →

Yes, please repeat yourself.

The oft touted principles of “pragmatic software development” are by and large nonsense. While not unique to software development many people like to choose their dogma and then wield it uncritically when any opportunity arises. “Don’t Repeat Yourself” (DRY)is one of the “principles” that has always irked me.

Read more →

Low latency Parquet reads

The Apache Parquet file format has become the de facto standard for large data systems but increasingly I find that most data engineers are not aware of why it has become so popular. The format is interesting especially when taken together with most cloud-based object storage systems, where some design decisions allow for subsecond or millisecond latencies for parquet readers.

Read more →

All about the gains

The discourse around “AI” has finally started to shift to a very key question: who are the winners and the losers? The fundamental thesis of shoving Large Language Models (LLMs) into everything is that it will increase productivity. Setting aside the question on whether those productivity gains are happening or even possible, the question of who reaps those rewards is starting to become a larger concern by software developers I follow.

Read more →

Good vibes only

I deploy on Friday. I have heard the arguments to the contrary and I still continue to deploy on Friday. The end of the week is as good as any other to deploy! Why wait another two days to realize the value or return-on-investment from the work I have queued up? I feel confident making this judgement call for two important reasons: I am confident in the success of the changes being deployed and I am willing to take ownership for when I’m wrong.

Read more →

Busily writing elsewhere

Writing has been a part of my work for a long time, it helps me think and more importantly it helps me share ideas with other developers. Recently a tremendous amount of my time has been spent writing internal design documents, blog posts, and other materials. By the time it has come to personal blogging my words all been spent.

Read more →