Jesse Schutt

Writing

Notes from the keyboard and the workshop.

Abstractions and Vacations

Abstraction can be hard to define, but I believe it is a very important skill for developers to hone. I wrote an article detailing my experience with abstraction on the Zaengle blog and here are a few of the high points:

Abstraction is a kind of organization accomplished by delegating responsibilities and information so that each segment isn’t overwhelmed or doing more than its fair share.
Another benefit of abstraction is the freedom it gives to change the internals of a section of code without the fear of breaking larger application logic. If feature A is given input and returns specific output, does it really matter what happens while the logic is inside feature A? That gives me the freedom to design and adjust over time.
Abstraction is a dangerous tool if wielded improperly. A bad abstraction can keep you hopping back and forth in a codebase, scratching your head saying, “Where does this thing happen?

Read the entire article on the Zaengle blog

Renaming a Column with a Foreign Key in Laravel

This database originally used "customer_id" as the column name for the owner of each row, however the actual model being referenced was a "User". Here's how I changed the name of the column (which happened to have a foreign key on it) via Laravel migration:

Deploying a Nuxt Universal App to Vercel

A great explanation of how to deploy a Nuxt SSR app on Vercel with a bonus of showing when to use devDependencies versus dependencies in your package.json file.

Read the article here

Timber Frame Cabin... v2!

Work has started on version 2 of the Northwoods Cabin, beginning with milling of trees into beams.

For When Things Get Gnarly in Eloquent

Jonathan Reinink has written some excellent content around Eloquent and this article is one that I reference frequently. Jonathan walks us through handling sticky situations when we need to get a single record back from a relationship without causing N+1 issues.

Dynamic Relationships in Laravel using Subqueries

5 Ways to Shortcut Experience

Robbing developers of the chance to level up their own experience journey does more harm than good. Recognizing that it is the very process of failing and succeeding that truly matters, and it is what moves junior team members along in a healthy growth pattern.

Eager Loading Polymorphic Relations

Derek MacDonald wrote a nice post about eager loading polymorphic relationships. This has been a difficult item to solve so it's nice to see a documented approach that works for many scenarios. Thanks Derek!

Eager Loading Polymorphic Relations

Building a Laravel / MQTT App on Laravel Forge

Using a simple node script you can subscribe to an MQTT broker and forward messages to a Laravel application. Take a look at this article to see how we connected inexpensive temperature sensors to a web app for logging and reporting issues.

Handling Complex Data Flows

In this post, written for the Zaengle blog, I explore some strategies for navigating multi-step flows. Separating the data from the logic helps make the process more manageable.

"At its core, programming is nothing more than stacking little blocks of logic on each other, building up a structure comprised of detailed organization, intentional design, and functional beauty. Unless those goals are held front and center it is only a matter of time before the system devolves into a convoluted mess of overlapping, overstepping, messy code."

Read the entire article on the Zaengle blog

Interrogations & Conversations

Reframing close-ended questions with open-ended invites conversation and removes the sense of being interrogated.

It's Not You, It's Me.

"Beneffectance" is the name of a cognitive bias that suggests a person will readily claim responsibility for positive outcomes, yet reluctantly admit having a part in negative ones.