Thoughts & Opinions
Sometimes thoughts, sometimes opinions, rarely edited.
-
Cloud Resource Tagging
The question isn't whether your infrastructure will get complex, it's whether you'll be able to understand it when it does.
-
Implementing LTI 1.3 OIDC Flow in TypeScript
LTI 1.3 replaced OAuth 1.0 with OpenID Connection and JWT-based authentication. If you're building a Tool Provider, this guide walks through the complete implementation in TypeScript.
-
Hidden Systems Aren't Complex, They're Just Hidden
If you're the person who knows how the system works, you have the responsibility to make it knowable.
-
The Strangler Fig Pattern: Migrating Core Systems Without Breaking Production
Wrap the old, build the new, route traffic gradually, retire incrementally.
-
Building an Interview
The mega-corps optimize for false negatives because they can. Small companies face catastrophic risk from false positives. The interview process that works for one can fail disastrously for the other.
-
Set Up Billing Alarms Please
You and I both don't want to see you get smacked with a wild AWS bill. Well, I get a chuckle out of it sometimes
-
A vs An
I get frustrated when "a" and "an" get misused in writing
-
nohup vs &
A guide to running long-running processes in SSH sessions using &, nohup, and disown to prevent hangup signals from terminating your commands.
-
Another Useful If Macro
Creating custom if-seq and if-pred macros in Clojure for more flexible conditional logic with automatic binding and predicate testing.
-
Clojure @
A quick guide to understanding the @ symbol (deref) in Clojure and why dereferencing is necessary for atoms, refs, and other reference types.
-
Queues in Clojure
Understanding FIFO queues in Clojure using PersistentQueue, with practical examples of queue operations and custom queue creation.
-
An Introduction to Map, Filter, Reduce
A comprehensive guide to higher order functions in functional programming, covering map, filter, and reduce with practical Clojure examples.