Josh Liebowitz

Software engineer, hardware builder, serial hobbyist, pilot, and founder of My Dog Hates Technology.

Portrait of Josh Liebowitz

I'm a full-stack software engineer who likes iOS apps, developer tools, and building hardware to solve whatever problems my family recognizes (or doesn't). I currently make Tidecast, SnugStories, Defrag and Chill, and GR Recipe Reveal.

In the past I worked on Apple's iTunes University (iTunes U), the Twitter App, Google's Science Journal (now owned and operated by Arduino), and many Activity-related features in the Oura iOS App.

See me on LinkedIn.

Developer tools

I worked on Crashlytics/Fabric before its acquisition by Google. I also worked in release automation and shared primary responsibility for fastlane while at Google.

See more on GitHub.

Products and experiments

SnugStories began with a family need: give my child a way to hear stories in familiar voices, even when those people live across the country. Tidecast began with a practical question before going to the coast: what will the tide be doing?

Defrag and Chill recreates two old disk utilities as a browser-based simulation purely for the plot (and nostalgia). GR Recipe Reveal reads the hidden camera settings stored in RICOH GR photos and surfaces those "recipes" for future reuse.

Hardware and firmware

I do microsoldering and write firmware for ESP32 and Nordic nRF devices. I like being able to work on the board myself, then write the code that makes it do something. Sometimes the fix needs a debugger. Sometimes it needs a soldering iron.

Home automation gives me plenty of excuses to do both. I build hardware and automations around things I want to work differently at home. The goal is for my family to use the result without needing a tour of how I wired it together.

AI on my own hardware

I've also been getting AI models to run on hardware I own: local inference across NVIDIA Spark machines, plus image generation and editing on Apple Silicon. A lot of the work is in the plumbing. I work on model gateways, reproducible deployment recipes, and switching models without cutting off work already in progress. Context length, memory use, and how long you wait for an answer all matter once you're actually using the thing.

I'm building Ostrich Bench, a native Mac app for testing how models handle code, tool calls, terminal tasks, and long conversations. It keeps the settings and raw results with each run so I can compare changes and go back through the failures. I want to know what works for the jobs I give these models, including where they fall apart.

Outside software

I enjoy flying planes, hiking, photography, coastal outings, music, and time with family. See my photography or follow @taquitos.