Tips

ChatGPT as a bash command

I recently discovered that ChatGPT’s web chat now uses the faster (but dumber) Turbo model, so I’ve been looking at ways to use the...
Josh
33 sec read

Signed S3 Custom, Secure Urls on CloudFlare

It may sound contrived, but the signing a custom S3 URL which is secured through CloudFlare is a very common and unbelievably challenging process....
Josh
3 min read

How to Upload Photos to Instagram With The Highest…

It never fails. I spend hours building a nice graphic, post it to instagram, and their compression adds a ton of JPG artifacts destroying...
Josh
2 min read

Maybe It’s Time to Retire Mathematical Notation

I was helping my nephew with some math homework and he was stuck on a nasty looking formula. I explained it for several minutes,...
Josh
4 min read

Direct S3 File Uploads for NodeJS

I’m on a mission to document the most challenging parts of software development. Client side uploads to S3 is absolutely top 5. Navigating AWS...
Josh
3 min read

Should I use Mongo or SQL?

5 years ago I co-founded iScout.com – a SAAS which now collects millions of safety reports and training completions. For weeks I struggled to...
Josh
5 min read

Facebook Authentication for NodeJS

For some reason, OAuth always seems overly complicated. Documentation stinks and errors are vague. Abstractions like Passport.js add a mountain of complication while barely...
Josh
1 min read

Google Authentication for NodeJS

Nothing makes me sweat like OAuth. Documentation is sparse and errors are cryptic. Libraries like Passport.js just add a poorly designed abstraction to an...
Josh
2 min read

Setting up a Lets Encrypt Certificate on Heroku

Update (April 2017) Heroku now has first-class support for Let’s Encrypt so installing it is as easy as clicking “Configure SSL” and following their...
Josh
2 min read

iOS Auto Renewing Subscriptions

Auto-renewing subscriptions in iOS are confusing. These are my notes on how the process works and other tips. NOTE: This doc is only for...
Josh
3 min read