Skip to main content

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.

    AWSCloudInfrastructurePlatform Engineering
  • 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.

    LTILMSTypeScriptOIDCSecurity
  • 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.

    DocumentationKnowledge SharingCultureOrganizationCareer Lessons
  • The Strangler Fig Pattern: Migrating Core Systems Without Breaking Production

    Wrap the old, build the new, route traffic gradually, retire incrementally.

    Platform EngineeringStrangler FigMigration StrategyModernization
  • 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.

    InterviewingEngineering ManagementStart UpsHiring
  • 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

    AWSCloudDevOpsTutorial
  • A vs An

    I get frustrated when "a" and "an" get misused in writing

    EnglishGrammarWriting Tips
  • nohup vs &

    A guide to running long-running processes in SSH sessions using &, nohup, and disown to prevent hangup signals from terminating your commands.

    LinuxSSHSystem AdministrationProcess Management
  • 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.

    ClojureMacrosConditional Logic
  • Clojure @

    A quick guide to understanding the @ symbol (deref) in Clojure and why dereferencing is necessary for atoms, refs, and other reference types.

    ClojureSTMReference Types
  • Queues in Clojure

    Understanding FIFO queues in Clojure using PersistentQueue, with practical examples of queue operations and custom queue creation.

    ClojureData StructuresQueue
  • 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.

    ClojureFunctional ProgrammingHigher Order Functions