Joseph Hale
banner
jhale.dev
Joseph Hale
@jhale.dev
Software Engineer, Musician, Speedcuber | @37signals | ¡Hablo Español!
Pinned
It's officially #MaintainerMonth! To celebrate, I just published psas.dev which has README badges maintainers can use to communicate boundaries for their #opensource projects.
Public Service Announcements | Public Service Announcements
Set boundaries for your project. Tell the world.
psas.dev
And it's now part of Mona OS, the badge's operating system!

github.com/badger/home/...
November 3, 2025 at 7:18 PM
If you're at #GitHubUniverse, I just wrote a custom filesystem app for the hackable badges!
October 29, 2025 at 6:38 PM
#atproto app idea: Sharing personal context between AI model providers...
October 14, 2025 at 5:22 PM
My "Habit Sync for @todoist.com" app is about to get a significant update, so here are some "behind the scenes" of what it took.

- 9 major version upgrades of #ReactNative
- Writing my own component library
- Translating #Java to #Kotlin

@github.com #ZeroToMergedContest
September 20, 2025 at 7:13 AM
"It felt a bit like the opening of 'A Hitchhiker’s Guide to the Galaxy' ..." #RailsWorld 2025
September 15, 2025 at 2:43 PM
"The message was clearly that individuals, like you and me, have the power to build things to improve the world – we don’t have to wait for someone else" #RailsWorld 2025
September 13, 2025 at 11:10 PM
@thehale/react-native-keep-awake is now in the #ReactNative Directory!
September 8, 2025 at 9:33 PM
"Thank you for existing", "I'm 11 years old and ... your library made it possible"

It's amazing how far a single kind gesture can go.
September 8, 2025 at 4:41 PM
This thread reminds me of Excel's formula evaluator, which lifts the values of each expression into the current context.

It's so helpful for the debugging to come to me, where I retain full context.

Picture Source: stackoverflow.com/q/6470263/14...
September 6, 2025 at 10:55 AM
"Error: Invalid file name. Only characters on the basic multilingual plane are supported."

What do you think this error message means?

I ran into it recently while #debugging a migration of several hundred thousand documents. Here's what I learned: (1/4)
How to detect Unicode characters outside the Basic Multilingual Plane
TL;DR 1 2 def is_on_basic_multilingual_plane(char): return int(char.encode().hex(), 16) <= int("FFFF", 16)
jhale.dev
May 12, 2025 at 3:16 PM
It's officially #MaintainerMonth! To celebrate, I just published psas.dev which has README badges maintainers can use to communicate boundaries for their #opensource projects.
Public Service Announcements | Public Service Announcements
Set boundaries for your project. Tell the world.
psas.dev
May 1, 2025 at 1:22 PM
Explore an interactive report of who wrote each line of code in a #git repository!

Git Authorship now supports .𝚖𝚊𝚒𝚕𝚖𝚊𝚙 and .𝚐𝚒𝚝-𝚋𝚕𝚊𝚖𝚎-𝚒𝚐𝚗𝚘𝚛𝚎-𝚛𝚎𝚟𝚜 files to provide even cleaner and more organized reports.
April 2, 2025 at 2:19 PM
New type of post for me... New type of music for my friend @DHeusta...

I had a blast recording the intense Latin chorus! If you've ever felt constrained by others' expectations, Against the Grain is for you!

#AgainstTheGrainSong #DHeusta
#BillboardTop100 <-- coming soon 😜
March 22, 2025 at 5:14 PM
Forgetting the --𝚛𝚖 option when running throwaway #docker containers can clutter your computer.

But there is a short #bash command to remove all those stopped containers

docker rm $(docker ps -a | grep Exited | cut -d " " -f 1)

How it works:
How to remove all stopped Docker containers
A one-line shell command to clean up old, discarded containers
jhale.dev
March 19, 2025 at 2:43 PM
Have you heard of the 𝚐𝚒𝚝 𝚒𝚗𝚜𝚝𝚊𝚠𝚎𝚋 command?

It creates a live website to explore any #git repository on your computer. It's #GitHub from before there was GitHub.

Here's how to set it up:
Today I Learned – Git’s built-in website
Git ships with a built-in web interface for a code repository. Here’s how to set it up!
jhale.dev
March 14, 2025 at 6:53 PM
If the test suite crashes locally, it's hard to convince someone to write tests...

Ran into exactly this recently. We have a major test suite which executes inside a Docker container to match our production environment, but those tests stopped booting on a coworker's laptop.
January 10, 2025 at 6:56 AM
Solved a really involved bug today...

Some of our B2B customers were unable to email invoices to their clients, delaying incoming payments.
January 9, 2025 at 1:27 AM
Well, I'm officially a publisher on #NPM!

Over the weekend I upgraded a #react-native app to the New Architecture, including a custom native module I wrote circa React Native 0.68

github.com/SpeedcuberOS...
GitHub - SpeedcuberOSS/react-native-location-status: Checks if location is enabled on the device
Checks if location is enabled on the device. Contribute to SpeedcuberOSS/react-native-location-status development by creating an account on GitHub.
github.com
December 11, 2024 at 1:04 AM
Reposted by Joseph Hale
Giving specific complements in code reviews is the one practice I’ve seen work everywhere: blog.bethcodes.com/for-delightf...
December 10, 2024 at 3:02 PM
There's something beautiful about watching #playwright auto-click across a browser.

Or maybe I'm simply grateful that I don't have to personally click thousands of buttons to export data from an old application that doesn't provide an API...
December 5, 2024 at 10:36 PM
Try googling "code" XD

The programming language I wrote a few years ago uses a `.code` extension XD

github.com/thehale/code...
December 4, 2024 at 4:42 PM
Just updated my open-source LaTeX resume template "Expressive Resume".

Now with dedicated commands for promotions to a new \𝚛𝚘𝚕𝚎, an academic \𝚍𝚎𝚐𝚛𝚎𝚎, an \𝚊𝚠𝚊𝚛𝚍 or accolade, and a personal \𝚙𝚛𝚘𝚓𝚎𝚌𝚝.

Spacing and formatting has also updated for better readability.

github.com/thehale/expr...
GitHub - thehale/expressive-resume: A beautiful resume/cover letter LaTeX template pair that are extraordinarily easy to use.
A beautiful resume/cover letter LaTeX template pair that are extraordinarily easy to use. - thehale/expressive-resume
github.com
December 4, 2024 at 5:22 AM