PROJECTS

Occasionally, I’ve had an idea for an app or extension that I wish existed. While I was a CS major for a brief time in college in the 90s, I’m not really a developer. Sometimes I share ideas with others or ask around for help making something. But with the advent of AI-assisted coding, I’m now able to knock out some of these simple projects ‘on my own.’

These are projects I build for myself, and I share them in case someone else could find them useful. Use them if you want. Tell others if you like them. But don’t worry, I know they’re rough around the edges. It’s just been a great way for me to bring some ideas to life and build new skills at the same time.


Memory Jogger for LinkedIn

While I continue hunting for a new full-time role in early 2026, I am doing a lot more networking. A LOT more. But let’s face it: my memory for faces is pretty good, but my memory for how/where I know a person isn’t always so great.

I’ve needed a way to remind myself of how I know people when I see them posting on LinkedIn. But LinkedIn doesn’t make it easy. They bury the info about when you connected with someone, and they don’t provide any way to jog your memory about how/why you connected with them. There were also a few extensions out there that offered to help with the problem, but most have been discontinued, and none had the feature set that I was looking for:

  • Free!
  • No account setup (or storing data on someone else’s server)
  • Syncs notes across devices using your encrypted Chrome profile.
  • Shows notes easily in the feed with little action

So I decided to solve that problem.

Introducing: Memory Jogger for LinkedIn (see GitHub page to view the source, make suggestions, etc.)

A free Chrome extension that lets you make notes on anyone’s profile. The notes will be visible only to you, stay securely locked and encrypted in your Chrome profile, and sync across your devices.

Note: I welcome feedback and bug reports, but I can’t promise I can always fix every issue. Like many extensions that modify elements on other websites, I am at the mercy of LinkedIn’s web team and whatever changes they might make, which could break this tool. I’ll fix it ASAP when possible, but offer no warranty or assurances that this tool will always work. You will always be able to export notes, though!

Also: Reviews on the Chrome Store listing are appreciated!


ShutterQueue – Universal Uploader for Photographers

I’ve been an amateur/semi-pro photographer for a long time, and I’ve enjoyed participating on various online photography platforms over the decades. But I’ve found it frustrating that most photo-sharing sites have very poor tools for managing and queuing uploads in large batches.

  • Free!
  • Able to queue downloads, schedule them, and upload in batches.
  • Set titles, descriptions, tags, geo, and other metadata once, then have each platform use the data it needs/can use.
  • Support as many open platforms as possible, including specific features like Flickr groups, moderation/safety levels, and other advanced features.

Supported platforms:

  • Flickr – full feature support: titles, descriptions, tags, groups, albums, privacy, safety, location tagging
  • Tumblr – with blog selection, post vs queue, content maturity labels, and privacy controls
  • Bluesky – with threaded long-post support
  • Buffer – which provides support for posting to Instagram, Facebook, Threads, X (Twitter), and LinkedIn (requires also posting to Flickr)
  • PixelFed – with instance selection and privacy-aware behavior
  • Mastodon – with instance selection, privacy-aware behavior, and the ability to repost from PixelFed
  • Lemmy Communities – Including the ability to cross-post from one community to another to avoid duplicate posts

Summary of Key Features

  • Multi-platform posting with target selection
    • Upload to any combination of Flickr, Tumblr, Bluesky, Mastodon, PixelFed, Instagram, Facebook, Threads, X (Twitter), or LinkedIn
    • Choose different platforms for each queued photo
    • Capability-aware warnings: unsupported features on selected platforms are called out without blocking the upload
    • Partial success handling: if one platform fails, others still upload
    • See group/community size for Flickr & Lemmy (member/photo count) at a glance
  • Rich metadata and content composition
    • Add title, description, and tags (individually or in batches)
    • Save and reuse custom tag sets, Lemmy community sets, Flickr group sets, and Flickr album sets
    • Per-platform post-text composition modes (merge title/description/tags, title-only, etc.)
    • Optional description-as-alt-text for accessibility across platforms
    • Platform-specific safety/mature content labeling (maps to each platform’s conventions)
    • Automatic hashtag insertion option for all uploads
  • Advanced geotagging and location privacy
    • Search and set upload location using OpenStreetMap/Nominatim
    • Separate privacy controls for photo content and location data
    • Automatic Flickr geo accuracy mapping
    • Location-aware warnings when uploading to platforms without location support
  • Advanced scheduler with flexible batching
    • For Flickr: Auto-retry for adding photos to groups when user hits the group’s limit of photos per day/week/month
    • Set photo queue to upload every X number of hours (from 1 hour to 1 week)
    • Only upload on specific days of the week or times of day
    • Process in batches of X photos at a time (ex: upload 3 photos every 24 hours)
    • Manually schedule any photo for a specific upload time and date
    • Queue respects manual scheduling chronologically
    • Can be minimized to system tray (Windows) or Menu Bar (Mac) and run silently in the background
  • Queue management and reliability
    • Content-based duplicate detection warns when adding the same file (by SHA-256 hash, not filename)
    • Export full queue to JSON for backup; import later with merge or replace options
    • Duplicate detection runs after import to flag new collisions immediately
    • Automatic image caching for fast queue navigation with hundreds of photos
    • Thumbnail auto-regeneration after queue operations