Feel free to ask us anything about us or our offerings. Think of this agent as your personal consultant.

BLOG

DEFINITY DISCOURSE

DEFINITY DISCOURSE

Build things to make your life easier by Omar Del Rio

Build things to make your life easier by Omar Del Rio

One of the most significant opportunities that most developers, or anyone with software skills for that matter, have with coding AI tools is to significantly improve our own productivity.

Over the past year and a half, I have built a bunch of tools that help me do many things I found annoying or time-consuming, and even just for the cool factor.

Here are some of the things I use (btw, most of this, perhaps with the exception of the Rust thing, I could have built from scratch, but not nearly as fast and bug-free as with AI coding). Yes, I still read code; shame on me.

adhandler: A Swift command-line tool that lists this Mac’s audio devices and can turn audio HAL plugins on or off. It’s built with make and installs to /usr/local/bin/audiodrv. My Mac Studio audio playback stuttered when launching Signal, so this was I discovered some audio plugins really like to interfere with the audio device enumeration process that Signal does, and messes up audio. This is a known Apple thing that they refuse to improve (long story merits its own post).

Azure-app-registration (azreg): Creates Microsoft Entra ID app registrations from a manifest file (entra.app.json) stored in the app’s repo. Running azreg apply aligns the tenant with that file and writes a .env; running it again changes nothing. This was built to make deploying new applications easier and to automate the process from Claude. It also helps me keep my secrets secure since I never see them, and they are transparently added or removed from my apps (deployed to Vercel with another tool below).

- certs: It gets and renews Let’s Encrypt certificates, including wildcard ones, using DNS challenges with TXT records created via the GoDaddy API. It stores the certificates in /etc/letsencrypt/, and a launchd plist schedules renewal. I hate not having a valid HTTPS environment during local development, so this setup lets me use real, public certificates for my development. Combined with a custom version of Portless from Vercel, it’s magic!

- consolecustom: A zsh script that gives Ghostty terminals a background color and title based on the project you cd into. Each project keeps the same color, and you can switch colors and titles on or off separately. Built for visual separation, it helps a lot when context switching! The color changes are subtle and do not disturb your overall color scheme.

- ipmenubar (IPMenuBar): A SwiftUI menu bar app that displays your public IP address and checks whether your VPN is on. If the IP matches the one you expect, it shows a green dot; otherwise, it shows the IP, along with its location and network details. I built this because sometimes I access private resources that have both public and private interfaces, and I hate discovering I am using the public one only after hitting a limitation.

- local-postgres (pgl): It runs a separate PostgreSQL instance in Docker for each project, each with a stable *.pg.test URL and required TLS. It can switch between projects in about two seconds and roll back a database using snapshots; this branch also adds publishing to Neon. A lifesaver, it lets me manage all my Neon instances and local containers from the CLI; I can download dbs and put them into my containers for testing very quickly.

- markskill: A Claude skill that stores Definity’s brand rules (colors, fonts, logos, layout) along with the approved assets and a PowerPoint template. Claude uses it to create or review Definity materials, keeping them on-brand. Our marketing team created this one, but I modified it to account for some of our internal apps and to make it a bit less strict, since we don’t need to be in local or one-off apps.

- pdfquick: A fast PDF text extractor written in Rust, available as both a library and a command-line tool. It aims to outperform pdftotext, pypdf, and pdfplumber in speed on PDFs with embedded text (no OCR). I built this to process hundreds of PDFs to organize my historical documents folder; all other tools were too slow and had too many features.

- updatead: A shell script that lists Entra ID users and tags each one with a custom accountType (Person, Service, Shared, Room, or Equipment). It can also ask OpenAI to suggest a type for each account and write the suggestions to a CSV for review before applying. Like many companies, our Entra is a historical mix of thousands of accounts for many purposes (after all, our company is more than 20 years old, and we started with local AD servers). This lets me filter and ensure our apps consider only current people.

- vercelhelpers (vh): Pushes a project’s .env.local variables to Vercel, storing secrets as write-only “sensitive” values, and keeps a readable copy in 1Password. It records a fingerprint of each value in Vercel so it can show what differs without reading the secrets back. I got tired and anxious of protecting secrets locally, so this tool makes sure values are in a secure vault while giving me the opportunity to use them as needed without having to worry about leaks. This also helps me rotate secrets much faster than manual editing or CI changes (though this tool could also run in CI with minor changes; this one is more oriented to personal workflows since 1Password is not a “proper” vault).

- windowpilot (WindowPilot): A Swift menu bar app for macOS 14+ that finds an open window, browser tab, or Ghostty terminal by title and switches to it. It has no dependencies and builds as a local .app that isn’t installed or set to launch at login. I know there are many tools that do this, but I have a particular need to list Vivaldi, Brave, Safari, Herdr, and Ghostty tabs - none of the other tools do this exactly as I want. I also added a quick way to open a Teams chat with anyone by typing the name. This one is more of a personal activity hub than a global search. It could maybe be done in Spotlight or Raycast, but it was way easier to build my personal, do-a-few-things-extremely-well version.

Check out Omar's Substack

Check out Omar's Substack

Share Article

Latest News

Engineering digital solutions that transform bold ideas into measurable business results.

© Sieena, Inc. All rights reserved

Stay in the know.

Subscribe to our newsletter for insights and updates.

Engineering digital solutions that transform bold ideas into measurable business results.

© Sieena, Inc. All rights reserved

Stay in the know.

Subscribe to our newsletter for insights and updates.

Engineering digital solutions that transform bold ideas into measurable business results.

© Sieena, Inc. All rights reserved

Stay in the know.

Subscribe to our newsletter for insights and updates.

Engineering digital solutions that transform bold ideas into measurable business results.

© Sieena, Inc. All rights reserved

Stay in the know.

Subscribe to our newsletter for insights and updates.