Me

Tag: Software Development

  • Flexible Association Managers in Rails 7 APIs

    Adding association management methods to Rails models Photo by Transly Translation Agency on Unsplash If you’re a Rails developer, you’re probably familiar with updating associated records through the association_name_ids= setter method. That strategy works well, but often leads to cluttered controller methods for managing record associations. In a current project, I found myself wanting a more convenient…

  • How to Turn ChatGPT into a Voice-Enabled Chatbot in 60 Lines of Code

    Turn ChatGPT into a Voice-Enabled Chatbot in 60 Lines of Code I recently found an article about someone who built a Zapier integration between Alexa and ChatGPT. Although it was a cool project, I realized it wasn’t necessary to use a third-party platform or Home Speaker to interact with ChatGPT using voice. All the required functionality…

  • The Triangle of Scalability

    3-dimensions of scalability to consider when curating a tech stack. Like in Seth McFarlane’s movie A Million Ways to Die in the West, there are a million ways to fail when building a tech company. Many of those ways, sadly, are entirely out of our control. Geo-political shifts, financial market volatility, new tech innovations, talent scarcity,…

  • Why should you NOT use a GraphQL API Client

    GraphQL Clients are not necessary for making GraphQL API Calls, and often complete overkill for the job at hand. Imagine that your friend purchases a semi-truck because, “they run a lot of errands.” Any sane person would tell that friend that they’ve gone a little too far. Even the most modest, budget vehicle would likely do…

  • What Actually Makes Demos, MVPs and Full-products Different?

    Definitions for Demos, MVPs and Full-builds to help you determine which one your startup needs Photo by Startup Stock Photos from Pexels Word definitions are really, really important. When I ask the barista for my “large cold-brew, no milk and no sugar” each morning, 2-minutes later I’ll have exactly what I asked for. The reason that works…