Latest Updates




  • I've managed to avoid learning Kubernetes for years, but it's finally time, so I'm setting up SBBP to run with it. I'll probably put Caddy in front. Aside from the learning, the main purpose of this is just so I can easily add the transcribed videos to Readwise.


SIEVE is a smarter change eviction algorithm that also manages to be simpler and faster than most other algorithms. A clever idea that optimizes for quick eviction, taking advantage of the property that in many cache use cases, a large proportion of the fetched objects are actually not fetched often.


  • This podcast with Flo Crivello has a lot of good information on how Lindy is training their AI agents. Most interesting to me was the talk about explicit training phases for agents when they encounter new tasks, where the user can give quick feedback on how the agent is performing on a set of initial work items, and have it adapt in real-time based on that feedback until the performance is acceptable.




Hit an unusual problem today where reading pixels back from a canvas HTML element won't always give you the same value you wrote, if Brave's anti-fingerprinting measures are on. (Anti-aliasing is an issue too, but we knew about that already.) I remember reading something about how browser-fingerprinting libraries can sometimes use techniques like this to determine unique users, but was baffled for a while until turning off Brave's privacy features made the bug go away.




  • Filigree
    • Got the object storage abstraction and configuration finished up over the weekend.
    • Now I"m starting on a "File" type of model, which will allow the template system to generate code that handles uploads, and optionally stores things like file hash, image type, etc. in the database.

See more daily updates...

About Me


I'm currently taking some time off, but previously I co-founded and spent nine years working on Carevoyance (acquired by H1 Insights), a sales acceleration tool that analyzes healthcare data and enables healthcare sellers to zero in on their best prospects and generate custom reports and insights with just a few clicks.

I spent most of my time there creating new data analyses, working on the backend API and database systems, and developing tooling to research data anomalies and automate repetitive tasks. I also successfully transitioned the entire frontend application from AngularJS to SvelteKit.

In the past I worked almost exclusively in C++ and various assembly languages. Now that I'm more in the web ecosystem, I'm mostly writing Javascript for work, using Rust when I can justify it, and grudgingly dealing with Python's package system for AI/ML work.

Before starting my own venture, I interfaced with advanced network switching chips at Arista Networks and worked on JTAG hardware debuggers and embedded operating systems at Green Hills Software. Running a small startup feels very different from working at these companies, and it has its ups and downs, but I love it.


I usually have a few side projects going on, and I have a selection listed on my projects page. There you'll find a bunch of data workflow stuff, a personal dashboard, an AI assistant to amuse my kids, and other things in various states of done-ness.

Sometimes I wish I could code all day and night, but when not hacking on something or spending time with my family, I enjoy good coffee, nature photography, reading nonfiction and sci-fi, and improving my nascent design and UX skills. I'm also active in my church and run the sound board there every few weeks.

Where to find me

Twitter is probably the best way to contact me. You can also email me at daniel at this domain or find me on Github.

About this site

The website is written using SvelteKit, Tailwind, and hosted on Vercel. Icons sourced from the Refactoring UI icon set and iconmonstr.

The prose content on this site is licensed under a Creative Commons Attribution 4.0 International License. The code can be viewed on Github. The underlying code as well as all code examples are licensed under the MIT license.