Garbage Collection

Collecting the internet's garbage in O(n)

Looking for work, and things worth building

Well, I’ve restarted the blog. Now for the slightly more practical announcement: I’m looking for paid work. Capitalism compels me.

I’ve been building Transpire, turning the emails, PDFs, spreadsheets, data from ERP integrations, and other assorted evidence of supply-chain activity into something people can actually use. You ordered twelve parts, the carrier says delivered, somebody counted eight, and the invoice says twelve. The software should help you deal with that. There are still four parts missing, however green the checkmark might be.

We haven’t found enough paying customers in the time we needed to. I need paid work, and I’d like to keep building software that makes someone’s day better. There’s a lot worth doing with AI inside the software, doing useful work and staying out of the way.

A fair amount of that work has involved coding agents. They write substantial amounts of software, investigate problems, run tests, and review each other’s work. I spend a lot of time figuring out what to ask them to do, questioning what they came back with, and improving the tools they have to work with. Which has turned out to be pretty interesting work in its own right.

The amusing part is how familiar some of this is. Is this benchmark measuring what we think it is? It’s certainly fast, but the database is on a RAM disk, so perhaps we should try it with the part where it actually keeps the data. Does the backup work? Well, have we restored it? I’ve been having these conversations for years. Now some of them are with agents. The questions, and quite often the answers, haven’t changed all that much.

I’ve also been working on the development process itself: the tools and instructions the agents use, how they test their work, and how we figure out whether any of it is helping. If the agents keep writing the same little scripts, perhaps those should be tools they can just use. If they can’t get the application running, they’re going to have a hard time telling whether they broke it. And if they keep ignoring the tools we already have, adding another paragraph of instructions may or may not help. This has become a fairly interesting part of building the product, and I’d like to keep doing it.

Leading engineers is work I enjoy. So is writing software. So is figuring out what we should actually be making. I’ve never really encountered a “purely technical” problem; eventually there are people involved, usually with differing ideas about what the problem was. A role that combines those things would suit me well. A role where I spend all my time managing and none of it building would be a much harder sell.

For those who know me from a different part of my life: I spent nearly fifteen years at Lex Machina, joining when the engineering team was two people and eventually leading a global engineering and product organization of more than thirty. That included building legal analytics systems, growing the team, and taking the company through acquisition and integration. Before that, there was publishing, semantic web work, and a fair amount of XML. There is always more XML.

I’m open to a few shapes this could take: another founder looking for a technical partner, a small team within an established company, or consulting on a problem that needs someone to get properly involved. Consulting might well be through Transpire LLC. The company can still do useful work even if the product hasn’t paid the bills. Interesting people with interesting problems remain a pretty good starting point.

If we’ve worked together before, I’d love to hear from you. If someone comes to mind who I should talk to, introductions would be appreciated. Thoughtful recruiters are welcome too.

My résumé is here, and you can get in touch here.

gc.isReEnabled() === ???

Well, it’s been 12 years, perhaps I should start writing again. So obviously the first thing to do is a bunch of programming work. This blog is no longer in WordPress. Instead it’s running as a Wasm application hosted on edge compute nodes running on Fastly… yeah, okay that’s a bit wonky, but it’s kinda a static site if you look at it sideways? Also did a bit of design work based around the G5 photo I’ve kept as a banner: no more theme, just a global style sheet and some new typography. A few links had broken over the years, so those are mostly fixed. Which I suppose means I have to stop putting off the actual writing. Perhaps I’ll manage more often this time.

Oh, and the source code for the blog and its supporting tooling are available. It’s mostly Astro and some wiring connecting it to Fastly.

Years of Devices

Patrick with many devices

Over the years I’ve had many computers that are now considered “devices”. The following are not so much reviews as a retrospective on what has changed and what hasn’t.

eMate 300

The oldest device in this photo. I used this in school for taking notes and writing. Easily the device with the longest useful battery life. Would go days without recharging with regular use. Charging was fast enough that I never really worried about if it was charged or not. Great keyboard, great form factor. Newton OS was great for note taking and writing. Networking was totally beyond it. Syncing was usually done via IRDA and was fast enough for text, just.

Visor Pro MIA

The kids found the charger, and the keyboard for my Visor Pro, and even a GPS module. The Visor Pro itself is missing. This little Palm OS device replaced the eMate. In every possible way it was worse. … except that it synced over USB and I could use it with a more modern desktop computer. The keyboard was a 4 fold Stowaway, I broke 2 in the year or two of use this saw. Still no networking ability at all. After just a month or two in college with this I gave up on the idea of a smaller device for note taking and bought a 12in Powerbook.

palmOne Treo

My first network enabled device. I had a phone module (refurbished) for the Visor, but it never really worked right. The web was totally unusable on the Treo, but it did email fine. Also used something to convert webpages, and feeds into palm doc files, would use that to read news and other things on the Treo. Keyboard wasn’t really usable for more then a quick response. Battery life was reasonably awful as well. This was the first device that basically required batter baby sitting from me.

Nokia Internet Tablet 770

Network enabled, but not cell enabled. First device that did mobile web browsing well enough to use. Browser was still very limited and frustrating. Email worked great, multi service IM worked great. Never saw daily use thanks to lack luster battery life, and WiFi only networking.

Nokia N810 Internet Tablet

Best build quality and form factor of any of the devices pictured. Slide out keyboard worked for long emails, short note taking, IM conversations, etc. Camera was horrible, shouldn’t have bothered with it. Used with a bluetooth paired smart phone for 3G internet access. Battery life of N810 was fine, battery life of any cell phone running as a network access point was horrible. Used while traveling, or in long meetings. Attempts to use as GPS device lead to the next item on the list…

TomTom GO720

Dedicated GPS device. Also very bad iPod, MP3 player. Provided decent GPS directions that kept us from getting lost while traveling and moving to a new state. Everything other then the GPS functionality was pointless. Battery life a joke, if the USB power adapter bumped lose on the rough roads around here usually turned off a few minutes later with no warning.

Pair of Nokia 6650 phones

My wife and I used these phones for a long time. Good battery life, good signal, working bluetooth pairing. Calendar syncing never really worked right. Total joke trying to use the web. Wife’s was replaced with an iPhone 4S, mine with the next device.

Google One

Android at this point didn’t really work. I had this phone and would trade of a SIM between it and the Nokia, I never managed more then a day or so without going back to the Nokia. Simple things like TAKING A PHONE CALL, would often fail for odd and confusing reasons. Build quality wise, this was the WORST of the list. Keyboard was worse to use then the Treo.

Samsung Galaxy S

Web browsing worked fine, email worked fine. Typing was about the level of the Treo for speed but I found I did type longer with the soft keyboard then the old hardware one. Anything longer then an email was still painful. GPS sort of worked, but was overcome by the devices spectacular failure. Battery Life, the Galaxy S could NOT make it a whole day of use no matter how much I tried to baby it. I eventually got a custom home rolled kernel with a number of patches and the rest of the CyanogenMod distribution to work, but even then it would limp home with maybe 4% battery left. God help you if you made the mistake of turning on the GPS. Contemplating using more then one battery ended the day Apple shipped enough iPhone 5’s to the San Francisco Apple Store.

iPhone 5

Taking the photo, thus not in the photo. Best mobile web browser ever (Chrome iOS). Best email ever (Gmail). Best camera in a device ever. Totally sucks for note taking. Typing is no better then it was on the Treo. Contact and calendar management has gone no where since the Newton. Battery life… well, it makes it a whole day so battery life is just barely good enough.

Raspberry Pi

The best little computer ever. For less then $150 you can have a complete computer (keyboard, mouse, power supply, monitor) running Debian Linux that fits in your palm. This is magical. You don’t need to write your own board support package for it, you don’t need to flash your own boot loader eproms, you don’t have to hack around in Forth to GET your CPU to start booting in the first place. The computer is fast enough you don’t have to setup a complex cross compiler tool chain to get started, you can just apt-get install gcc. For anyone who worked in the embedded space a decade ago this little box is magical.

Earlier

  1. time vs data
  2. schema.org as RDFa (Part I)
  3. RDF Database Expectations
  4. Prefixes, not that complicated.
  5. Understanding Microdata, now with more understanding
  6. Trying to understand Microdata? RDFa?
  7. shutdown -r now
  8. Returning a Power Adapter for an External Hard drive
  9. Gratuitous Baby Photos
  10. gc.isenabled() == True